From 667304c81e4ae0ecded46692012e1faf3bf4848c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 11 Jan 2021 16:00:07 -0500 Subject: [PATCH] Cause LiveRecipient.refresh() to force a LiveData change. --- .../thoughtcrime/securesms/recipients/LiveRecipient.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java index 09dffb3cac..29632d4837 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipient.java @@ -39,6 +39,7 @@ public final class LiveRecipient { private final AtomicReference recipient; private final RecipientDatabase recipientDatabase; private final GroupDatabase groupDatabase; + private final MutableLiveData refreshForceNotify; LiveRecipient(@NonNull Context context, @NonNull MutableLiveData liveData, @NonNull Recipient defaultRecipient) { this.context = context.getApplicationContext(); @@ -52,7 +53,10 @@ public final class LiveRecipient { o.onRecipientChanged(recipient); } }; - this.observableLiveData = LiveDataUtil.distinctUntilChanged(liveData, Recipient::hasSameContent); + this.refreshForceNotify = new MutableLiveData<>(System.currentTimeMillis()); + this.observableLiveData = LiveDataUtil.combineLatest(LiveDataUtil.distinctUntilChanged(liveData, Recipient::hasSameContent), + refreshForceNotify, + (recipient, force) -> recipient); } public @NonNull RecipientId getId() { @@ -172,6 +176,7 @@ public final class LiveRecipient { } set(recipient); + refreshForceNotify.postValue(new Object()); } public @NonNull LiveData getLiveData() {