From 89e075c56e600e9362af83575d350445da761845 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 2 Oct 2019 10:05:43 -0400 Subject: [PATCH] Use recipientId's in ContactSelectionListAdapter. --- .../securesms/ContactSelectionActivity.java | 5 +++-- .../ContactSelectionListFragment.java | 21 ++++++++++--------- .../securesms/GroupCreateActivity.java | 6 +++--- .../securesms/InviteActivity.java | 5 +++-- .../securesms/NewConversationActivity.java | 5 +++-- .../PushContactSelectionActivity.java | 8 +++---- .../thoughtcrime/securesms/ShareActivity.java | 7 +++---- .../contacts/ContactSelectionListAdapter.java | 6 +++--- .../contacts/ContactSelectionListItem.java | 4 ++-- 9 files changed, 35 insertions(+), 32 deletions(-) diff --git a/src/org/thoughtcrime/securesms/ContactSelectionActivity.java b/src/org/thoughtcrime/securesms/ContactSelectionActivity.java index 01f9182b12..6320a73667 100644 --- a/src/org/thoughtcrime/securesms/ContactSelectionActivity.java +++ b/src/org/thoughtcrime/securesms/ContactSelectionActivity.java @@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.components.ContactFilterToolbar; import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode; +import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.DirectoryHelper; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; @@ -113,10 +114,10 @@ public abstract class ContactSelectionActivity extends PassphraseRequiredActionB } @Override - public void onContactSelected(String number) {} + public void onContactSelected(RecipientId recipientId) {} @Override - public void onContactDeselected(String number) {} + public void onContactDeselected(RecipientId recipientId) {} private static class RefreshDirectoryTask extends AsyncTask { diff --git a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java index e1e95cd5aa..e4eb0bbbce 100644 --- a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -50,6 +50,7 @@ import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.permissions.Permissions; +import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.DirectoryHelper; import org.thoughtcrime.securesms.util.StickyHeaderDecoration; import org.thoughtcrime.securesms.util.TextSecurePreferences; @@ -80,7 +81,7 @@ public final class ContactSelectionListFragment extends Fragment public static final String RECENTS = "recents"; private TextView emptyText; - private Set selectedContacts; + private Set selectedContacts; private OnContactSelectedListener onContactSelectedListener; private SwipeRefreshLayout swipeRefresh; private View showContactsLayout; @@ -161,8 +162,8 @@ public final class ContactSelectionListFragment extends Fragment Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults); } - public @NonNull List getSelectedContacts() { - List selected = new LinkedList<>(); + public @NonNull List getSelectedContacts() { + List selected = new LinkedList<>(); if (selectedContacts != null) { selected.addAll(selectedContacts); } @@ -323,14 +324,14 @@ public final class ContactSelectionListFragment extends Fragment private class ListClickListener implements ContactSelectionListAdapter.ItemClickListener { @Override public void onItemClick(ContactSelectionListItem contact) { - if (!isMulti() || !selectedContacts.contains(contact.getNumber())) { - selectedContacts.add(contact.getNumber()); + if (!isMulti() || !selectedContacts.contains(contact.getRecipientId())) { + selectedContacts.add(contact.getRecipientId()); contact.setChecked(true); - if (onContactSelectedListener != null) onContactSelectedListener.onContactSelected(contact.getNumber()); + if (onContactSelectedListener != null) onContactSelectedListener.onContactSelected(contact.getRecipientId()); } else { - selectedContacts.remove(contact.getNumber()); + selectedContacts.remove(contact.getRecipientId()); contact.setChecked(false); - if (onContactSelectedListener != null) onContactSelectedListener.onContactDeselected(contact.getNumber()); + if (onContactSelectedListener != null) onContactSelectedListener.onContactDeselected(contact.getRecipientId()); } } } @@ -344,8 +345,8 @@ public final class ContactSelectionListFragment extends Fragment } public interface OnContactSelectedListener { - void onContactSelected(String number); - void onContactDeselected(String number); + void onContactSelected(RecipientId recipientId); + void onContactDeselected(RecipientId recipientId); } public interface InviteCallback { diff --git a/src/org/thoughtcrime/securesms/GroupCreateActivity.java b/src/org/thoughtcrime/securesms/GroupCreateActivity.java index 24b26815a5..531e3df3c2 100644 --- a/src/org/thoughtcrime/securesms/GroupCreateActivity.java +++ b/src/org/thoughtcrime/securesms/GroupCreateActivity.java @@ -284,10 +284,10 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity switch (reqCode) { case PICK_CONTACT: - List selected = data.getStringArrayListExtra("contacts"); + List selected = data.getParcelableArrayListExtra("contacts"); - for (String contact : selected) { - Recipient recipient = Recipient.external(this, contact); + for (RecipientId id : selected) { + Recipient recipient = Recipient.resolved(id); addSelectedContacts(recipient); } break; diff --git a/src/org/thoughtcrime/securesms/InviteActivity.java b/src/org/thoughtcrime/securesms/InviteActivity.java index bea92bfd9f..3e11114733 100644 --- a/src/org/thoughtcrime/securesms/InviteActivity.java +++ b/src/org/thoughtcrime/securesms/InviteActivity.java @@ -29,6 +29,7 @@ import org.thoughtcrime.securesms.components.ContactFilterToolbar.OnFilterChange import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.recipients.Recipient; +import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.sms.MessageSender; import org.thoughtcrime.securesms.sms.OutgoingTextMessage; import org.thoughtcrime.securesms.util.ViewUtil; @@ -97,12 +98,12 @@ public class InviteActivity extends PassphraseRequiredActionBarActivity implemen } @Override - public void onContactSelected(String number) { + public void onContactSelected(RecipientId recipientId) { updateSmsButtonText(); } @Override - public void onContactDeselected(String number) { + public void onContactDeselected(RecipientId recipientId) { updateSmsButtonText(); } diff --git a/src/org/thoughtcrime/securesms/NewConversationActivity.java b/src/org/thoughtcrime/securesms/NewConversationActivity.java index a39dba25d3..f82cea711e 100644 --- a/src/org/thoughtcrime/securesms/NewConversationActivity.java +++ b/src/org/thoughtcrime/securesms/NewConversationActivity.java @@ -27,6 +27,7 @@ import org.thoughtcrime.securesms.conversation.ConversationActivity; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.recipients.Recipient; +import org.thoughtcrime.securesms.recipients.RecipientId; /** * Activity container for starting a new conversation. @@ -49,8 +50,8 @@ public class NewConversationActivity extends ContactSelectionActivity } @Override - public void onContactSelected(String number) { - Recipient recipient = Recipient.external(this, number); + public void onContactSelected(RecipientId recipientId) { + Recipient recipient = Recipient.resolved(recipientId); Intent intent = new Intent(this, ConversationActivity.class); intent.putExtra(ConversationActivity.RECIPIENT_EXTRA, recipient.getId()); diff --git a/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java b/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java index 056e94906b..144aed7cdf 100644 --- a/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java +++ b/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java @@ -19,6 +19,8 @@ package org.thoughtcrime.securesms; import android.content.Intent; import android.os.Bundle; +import org.thoughtcrime.securesms.recipients.RecipientId; + import java.util.ArrayList; import java.util.List; @@ -41,11 +43,9 @@ public class PushContactSelectionActivity extends ContactSelectionActivity { getToolbar().setNavigationIcon(R.drawable.ic_check_white_24dp); getToolbar().setNavigationOnClickListener(v -> { Intent resultIntent = getIntent(); - List selectedContacts = contactsFragment.getSelectedContacts(); + List selectedContacts = contactsFragment.getSelectedContacts(); - if (selectedContacts != null) { - resultIntent.putStringArrayListExtra("contacts", new ArrayList<>(selectedContacts)); - } + resultIntent.putParcelableArrayListExtra("contacts", new ArrayList<>(selectedContacts)); setResult(RESULT_OK, resultIntent); finish(); diff --git a/src/org/thoughtcrime/securesms/ShareActivity.java b/src/org/thoughtcrime/securesms/ShareActivity.java index 9121c07b80..74c3b40d9b 100644 --- a/src/org/thoughtcrime/securesms/ShareActivity.java +++ b/src/org/thoughtcrime/securesms/ShareActivity.java @@ -272,9 +272,9 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity } @Override - public void onContactSelected(String number) { + public void onContactSelected(RecipientId recipientId) { SimpleTask.run(this.getLifecycle(), () -> { - Recipient recipient = Recipient.external(this, number); + Recipient recipient = Recipient.resolved(recipientId); long existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(recipient); return new Pair<>(existingThread, recipient); }, result -> { @@ -284,8 +284,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity } @Override - public void onContactDeselected(String number) { - + public void onContactDeselected(RecipientId recipientId) { } @Override diff --git a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java index 23f338a423..d8327211d0 100644 --- a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java +++ b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java @@ -70,7 +70,7 @@ public class ContactSelectionListAdapter extends CursorRecyclerViewAdapter selectedContacts = new HashSet<>(); + private final Set selectedContacts = new HashSet<>(); public abstract static class ViewHolder extends RecyclerView.ViewHolder { @@ -189,7 +189,7 @@ public class ContactSelectionListAdapter extends CursorRecyclerViewAdapter getSelectedContacts() { + public Set getSelectedContacts() { return selectedContacts; } diff --git a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java index cb0016f264..8532074e38 100644 --- a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java +++ b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java @@ -129,8 +129,8 @@ public class ContactSelectionListItem extends LinearLayout implements RecipientF } } - public String getNumber() { - return number; + public @Nullable RecipientId getRecipientId() { + return recipient != null ? recipient.getId() : null; } @Override