From afbc132faac95e87bd725c21560c6ff20aa90b4a Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 5 Jun 2020 21:14:36 -0400 Subject: [PATCH] Fix conversation item and data source memory leaks. --- .../securesms/conversation/ConversationDataSource.java | 5 ++++- .../securesms/conversation/ConversationItem.java | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java index b879a49dfb..76abb7671a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationDataSource.java @@ -49,7 +49,10 @@ class ConversationDataSource extends PositionalDataSource { } }; - invalidator.observe(this::invalidate); + invalidator.observe(() -> { + invalidate(); + context.getContentResolver().unregisterContentObserver(contentObserver); + }); context.getContentResolver().registerContentObserver(DatabaseContentProviders.Conversation.getUriForThread(threadId), true, contentObserver); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index 7d8c6075c2..065febd50c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -377,6 +377,9 @@ public class ConversationItem extends LinearLayout implements BindableConversati if (recipient != null) { recipient.removeForeverObserver(this); } + if (conversationRecipient != null) { + conversationRecipient.removeForeverObserver(this); + } } public MessageRecord getMessageRecord() {