From cf3dd70600263ee84a6943c24d438a1d1f693691 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Thu, 22 Sep 2022 09:04:58 -0400 Subject: [PATCH] Prevent Chats icon from animating when returning from other activity. --- .../stories/tabs/ConversationListTabsFragment.kt | 8 +++++--- .../stories/tabs/ConversationListTabsViewModel.kt | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) 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()