From 3b9cfc8e5ac2c0dc5c74c161ceae7811c8bd5be7 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 9 Dec 2021 13:28:50 -0500 Subject: [PATCH] Fix unable to select contact from list bug. --- .../securesms/ContactSelectionListFragment.java | 4 ++-- .../notifications/profiles/SelectRecipientsFragment.kt | 4 ++-- .../securesms/contacts/ContactSelectionListItem.java | 9 ++++++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java index 0ababe0e58..f2dac8f5d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -765,8 +765,8 @@ public final class ContactSelectionListFragment extends LoggingFragment public interface OnContactSelectedListener { /** Provides an opportunity to disallow selecting an item. Call the callback with false to disallow, or true to allow it. */ - void onBeforeContactSelected(Optional recipientId, String number, Consumer callback); - void onContactDeselected(Optional recipientId, String number); + void onBeforeContactSelected(Optional recipientId, @Nullable String number, Consumer callback); + void onContactDeselected(Optional recipientId, @Nullable String number); void onSelectionChanged(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt index 7df4daf6ac..818d3c1c21 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt @@ -113,7 +113,7 @@ class SelectRecipientsFragment : LoggingFragment(), ContactSelectionListFragment return mode or ContactsCursorLoader.DisplayMode.FLAG_HIDE_GROUPS_V1 } - override fun onBeforeContactSelected(recipientId: Optional, number: String, callback: Consumer) { + override fun onBeforeContactSelected(recipientId: Optional, number: String?, callback: Consumer) { if (recipientId.isPresent) { viewModel.select(recipientId.get()) callback.accept(true) @@ -123,7 +123,7 @@ class SelectRecipientsFragment : LoggingFragment(), ContactSelectionListFragment } } - override fun onContactDeselected(recipientId: Optional, number: String) { + override fun onContactDeselected(recipientId: Optional, number: String?) { if (recipientId.isPresent) { viewModel.deselect(recipientId.get()) updateAddToProfile() diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java index 3d6bb9b9bd..84dc4a04e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java @@ -71,6 +71,14 @@ public class ContactSelectionListItem extends ConstraintLayout implements Recipi ViewUtil.setTextViewGravityStart(this.nameView, getContext()); } + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (recipient != null) { + recipient.observeForever(this); + } + } + @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); @@ -150,7 +158,6 @@ public class ContactSelectionListItem extends ConstraintLayout implements Recipi public void unbind() { if (recipient != null) { recipient.removeForeverObserver(this); - recipient = null; } }