From 62d85e68788b3890ee76a2e80b348f67d734f235 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 25 Aug 2021 19:47:48 -0400 Subject: [PATCH] Stop listening to database changes in conversation list when not visible. --- .../conversationlist/ConversationListFragment.java | 2 ++ .../conversationlist/ConversationListViewModel.java | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java index 3da4186aad..c566be3116 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java @@ -320,6 +320,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode super.onStart(); ConversationFragment.prepare(requireContext()); ApplicationDependencies.getAppForegroundObserver().addListener(appForegroundObserver); + viewModel.onStart(); } @Override @@ -335,6 +336,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode public void onStop() { super.onStop(); ApplicationDependencies.getAppForegroundObserver().removeListener(appForegroundObserver); + viewModel.onStop(); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java index d33cf8fe72..ebb7423c68 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java @@ -96,8 +96,6 @@ class ConversationListViewModel extends ViewModel { return DatabaseFactory.getThreadDatabase(application).getArchivedConversationListCount() == 0; } }); - - ApplicationDependencies.getDatabaseObserver().registerConversationListObserver(observer); } public LiveData hasNoConversations() { @@ -142,6 +140,14 @@ class ConversationListViewModel extends ViewModel { coldStart = false; } + void onStart() { + ApplicationDependencies.getDatabaseObserver().registerConversationListObserver(observer); + } + + void onStop() { + ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer); + } + void onMegaphoneCompleted(@NonNull Megaphones.Event event) { megaphone.postValue(null); megaphoneRepository.markFinished(event);