diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt index 6075bc8eb..0ed6e824d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsFragment.kt @@ -33,6 +33,7 @@ class ConversationListTabsFragment : Fragment(R.layout.conversation_list_tabs) { private lateinit var chatsPill: ImageView private lateinit var storiesPill: ImageView + private var shouldBeImmediate = true private var pillAnimator: Animator? = null override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -63,9 +64,10 @@ class ConversationListTabsFragment : Fragment(R.layout.conversation_list_tabs) { viewModel.onStoriesSelected() } - update(viewModel.stateSnapshot, true) - - viewModel.state.observe(viewLifecycleOwner) { update(it, false) } + viewModel.state.observe(viewLifecycleOwner) { + update(it, shouldBeImmediate) + shouldBeImmediate = false + } } private fun update(state: ConversationListTabsState, immediate: Boolean) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsViewModel.kt index 48eef63e3..5c24a90e3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/tabs/ConversationListTabsViewModel.kt @@ -1,6 +1,7 @@ package org.thoughtcrime.securesms.stories.tabs import androidx.lifecycle.LiveData +import androidx.lifecycle.Transformations import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import io.reactivex.rxjava3.core.Observable @@ -15,7 +16,7 @@ class ConversationListTabsViewModel(repository: ConversationListTabRepository) : private val store = Store(ConversationListTabsState()) val stateSnapshot: ConversationListTabsState = store.state - val state: LiveData = store.stateLiveData + val state: LiveData = Transformations.distinctUntilChanged(store.stateLiveData) val disposables = CompositeDisposable() private val internalTabClickEvents: Subject = PublishSubject.create()