Skip to content

Commit

Permalink
Do not reload interests if language is same
Browse files Browse the repository at this point in the history
  • Loading branch information
ashiagr committed Jul 23, 2020
1 parent 2843b0f commit 7ac80c2
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import org.wordpress.android.ui.reader.discover.interests.ReaderInterestsViewMod
import org.wordpress.android.ui.reader.discover.interests.ReaderInterestsViewModel.UiState.LoadingUiState
import org.wordpress.android.ui.reader.viewmodels.ReaderViewModel
import org.wordpress.android.ui.utils.UiHelpers
import org.wordpress.android.util.LocaleManager
import org.wordpress.android.util.WPActivityUtils
import javax.inject.Inject

Expand Down Expand Up @@ -79,7 +80,7 @@ class ReaderInterestsFragment : Fragment(R.layout.reader_interests_fragment_layo
}
})

viewModel.start(parentViewModel)
viewModel.start(parentViewModel, LocaleManager.getLanguage(WordPress.getContext()))
}

private fun updateDoneButton(doneButtonUiState: DoneButtonUiState) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,25 @@ import javax.inject.Inject
class ReaderInterestsViewModel @Inject constructor(
private val readerTagRepository: ReaderTagRepository
) : ViewModel() {
private var isStarted = false
private lateinit var currentLanguage: String
private lateinit var parentViewModel: ReaderViewModel

private val _uiState: MutableLiveData<UiState> = MutableLiveData()
val uiState: LiveData<UiState> = _uiState

fun start(parentViewModel: ReaderViewModel) {
fun start(parentViewModel: ReaderViewModel, currentLanguage: String) {
this.parentViewModel = parentViewModel
if (isStarted && isLanguageSame(currentLanguage)) {
return
}
loadUserTags()
this.currentLanguage = currentLanguage
isStarted = true
}

private fun isLanguageSame(currentLanguage: String) = this.currentLanguage == currentLanguage

private fun loadUserTags() {
updateUiState(LoadingUiState)
viewModelScope.launch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import org.wordpress.android.ui.reader.repository.ReaderRepositoryCommunication.
import org.wordpress.android.ui.reader.repository.ReaderTagRepository
import org.wordpress.android.ui.reader.viewmodels.ReaderViewModel

private const val CURRENT_LANGUAGE = "en"
@RunWith(MockitoJUnitRunner::class)
class ReaderInterestsViewModelTest {
@Rule
Expand Down Expand Up @@ -372,7 +373,10 @@ class ReaderInterestsViewModelTest {
assertThat(contentLoadFailedUiState.titleResId).isEqualTo(R.string.reader_error_generic_title)
}

private fun initViewModel() = viewModel.start(parentViewModel)
private fun initViewModel() = viewModel.start(
parentViewModel = parentViewModel,
currentLanguage = CURRENT_LANGUAGE
)

@ExperimentalCoroutinesApi
private fun <T> testWithEmptyUserTags(block: suspend CoroutineScope.() -> T) {
Expand Down

0 comments on commit 7ac80c2

Please sign in to comment.