mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 17:48:33 +00:00
Use recipientId's in ContactSelectionListAdapter.
This commit is contained in:
parent
d026498a8c
commit
89e075c56e
@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.logging.Log;
|
|||||||
|
|
||||||
import org.thoughtcrime.securesms.components.ContactFilterToolbar;
|
import org.thoughtcrime.securesms.components.ContactFilterToolbar;
|
||||||
import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode;
|
import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode;
|
||||||
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
import org.thoughtcrime.securesms.util.DirectoryHelper;
|
import org.thoughtcrime.securesms.util.DirectoryHelper;
|
||||||
import org.thoughtcrime.securesms.util.DynamicLanguage;
|
import org.thoughtcrime.securesms.util.DynamicLanguage;
|
||||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
||||||
@ -113,10 +114,10 @@ public abstract class ContactSelectionActivity extends PassphraseRequiredActionB
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactSelected(String number) {}
|
public void onContactSelected(RecipientId recipientId) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactDeselected(String number) {}
|
public void onContactDeselected(RecipientId recipientId) {}
|
||||||
|
|
||||||
private static class RefreshDirectoryTask extends AsyncTask<Context, Void, Void> {
|
private static class RefreshDirectoryTask extends AsyncTask<Context, Void, Void> {
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@ import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode;
|
|||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.mms.GlideApp;
|
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||||
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
import org.thoughtcrime.securesms.util.DirectoryHelper;
|
import org.thoughtcrime.securesms.util.DirectoryHelper;
|
||||||
import org.thoughtcrime.securesms.util.StickyHeaderDecoration;
|
import org.thoughtcrime.securesms.util.StickyHeaderDecoration;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
@ -80,7 +81,7 @@ public final class ContactSelectionListFragment extends Fragment
|
|||||||
public static final String RECENTS = "recents";
|
public static final String RECENTS = "recents";
|
||||||
|
|
||||||
private TextView emptyText;
|
private TextView emptyText;
|
||||||
private Set<String> selectedContacts;
|
private Set<RecipientId> selectedContacts;
|
||||||
private OnContactSelectedListener onContactSelectedListener;
|
private OnContactSelectedListener onContactSelectedListener;
|
||||||
private SwipeRefreshLayout swipeRefresh;
|
private SwipeRefreshLayout swipeRefresh;
|
||||||
private View showContactsLayout;
|
private View showContactsLayout;
|
||||||
@ -161,8 +162,8 @@ public final class ContactSelectionListFragment extends Fragment
|
|||||||
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
|
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NonNull List<String> getSelectedContacts() {
|
public @NonNull List<RecipientId> getSelectedContacts() {
|
||||||
List<String> selected = new LinkedList<>();
|
List<RecipientId> selected = new LinkedList<>();
|
||||||
if (selectedContacts != null) {
|
if (selectedContacts != null) {
|
||||||
selected.addAll(selectedContacts);
|
selected.addAll(selectedContacts);
|
||||||
}
|
}
|
||||||
@ -323,14 +324,14 @@ public final class ContactSelectionListFragment extends Fragment
|
|||||||
private class ListClickListener implements ContactSelectionListAdapter.ItemClickListener {
|
private class ListClickListener implements ContactSelectionListAdapter.ItemClickListener {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(ContactSelectionListItem contact) {
|
public void onItemClick(ContactSelectionListItem contact) {
|
||||||
if (!isMulti() || !selectedContacts.contains(contact.getNumber())) {
|
if (!isMulti() || !selectedContacts.contains(contact.getRecipientId())) {
|
||||||
selectedContacts.add(contact.getNumber());
|
selectedContacts.add(contact.getRecipientId());
|
||||||
contact.setChecked(true);
|
contact.setChecked(true);
|
||||||
if (onContactSelectedListener != null) onContactSelectedListener.onContactSelected(contact.getNumber());
|
if (onContactSelectedListener != null) onContactSelectedListener.onContactSelected(contact.getRecipientId());
|
||||||
} else {
|
} else {
|
||||||
selectedContacts.remove(contact.getNumber());
|
selectedContacts.remove(contact.getRecipientId());
|
||||||
contact.setChecked(false);
|
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 {
|
public interface OnContactSelectedListener {
|
||||||
void onContactSelected(String number);
|
void onContactSelected(RecipientId recipientId);
|
||||||
void onContactDeselected(String number);
|
void onContactDeselected(RecipientId recipientId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface InviteCallback {
|
public interface InviteCallback {
|
||||||
|
@ -284,10 +284,10 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
|||||||
|
|
||||||
switch (reqCode) {
|
switch (reqCode) {
|
||||||
case PICK_CONTACT:
|
case PICK_CONTACT:
|
||||||
List<String> selected = data.getStringArrayListExtra("contacts");
|
List<RecipientId> selected = data.getParcelableArrayListExtra("contacts");
|
||||||
|
|
||||||
for (String contact : selected) {
|
for (RecipientId id : selected) {
|
||||||
Recipient recipient = Recipient.external(this, contact);
|
Recipient recipient = Recipient.resolved(id);
|
||||||
addSelectedContacts(recipient);
|
addSelectedContacts(recipient);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -29,6 +29,7 @@ import org.thoughtcrime.securesms.components.ContactFilterToolbar.OnFilterChange
|
|||||||
import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode;
|
import org.thoughtcrime.securesms.contacts.ContactsCursorLoader.DisplayMode;
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||||
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
||||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||||
@ -97,12 +98,12 @@ public class InviteActivity extends PassphraseRequiredActionBarActivity implemen
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactSelected(String number) {
|
public void onContactSelected(RecipientId recipientId) {
|
||||||
updateSmsButtonText();
|
updateSmsButtonText();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactDeselected(String number) {
|
public void onContactDeselected(RecipientId recipientId) {
|
||||||
updateSmsButtonText();
|
updateSmsButtonText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ import org.thoughtcrime.securesms.conversation.ConversationActivity;
|
|||||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Activity container for starting a new conversation.
|
* Activity container for starting a new conversation.
|
||||||
@ -49,8 +50,8 @@ public class NewConversationActivity extends ContactSelectionActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactSelected(String number) {
|
public void onContactSelected(RecipientId recipientId) {
|
||||||
Recipient recipient = Recipient.external(this, number);
|
Recipient recipient = Recipient.resolved(recipientId);
|
||||||
|
|
||||||
Intent intent = new Intent(this, ConversationActivity.class);
|
Intent intent = new Intent(this, ConversationActivity.class);
|
||||||
intent.putExtra(ConversationActivity.RECIPIENT_EXTRA, recipient.getId());
|
intent.putExtra(ConversationActivity.RECIPIENT_EXTRA, recipient.getId());
|
||||||
|
@ -19,6 +19,8 @@ package org.thoughtcrime.securesms;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -41,11 +43,9 @@ public class PushContactSelectionActivity extends ContactSelectionActivity {
|
|||||||
getToolbar().setNavigationIcon(R.drawable.ic_check_white_24dp);
|
getToolbar().setNavigationIcon(R.drawable.ic_check_white_24dp);
|
||||||
getToolbar().setNavigationOnClickListener(v -> {
|
getToolbar().setNavigationOnClickListener(v -> {
|
||||||
Intent resultIntent = getIntent();
|
Intent resultIntent = getIntent();
|
||||||
List<String> selectedContacts = contactsFragment.getSelectedContacts();
|
List<RecipientId> selectedContacts = contactsFragment.getSelectedContacts();
|
||||||
|
|
||||||
if (selectedContacts != null) {
|
resultIntent.putParcelableArrayListExtra("contacts", new ArrayList<>(selectedContacts));
|
||||||
resultIntent.putStringArrayListExtra("contacts", new ArrayList<>(selectedContacts));
|
|
||||||
}
|
|
||||||
|
|
||||||
setResult(RESULT_OK, resultIntent);
|
setResult(RESULT_OK, resultIntent);
|
||||||
finish();
|
finish();
|
||||||
|
@ -272,9 +272,9 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactSelected(String number) {
|
public void onContactSelected(RecipientId recipientId) {
|
||||||
SimpleTask.run(this.getLifecycle(), () -> {
|
SimpleTask.run(this.getLifecycle(), () -> {
|
||||||
Recipient recipient = Recipient.external(this, number);
|
Recipient recipient = Recipient.resolved(recipientId);
|
||||||
long existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(recipient);
|
long existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(recipient);
|
||||||
return new Pair<>(existingThread, recipient);
|
return new Pair<>(existingThread, recipient);
|
||||||
}, result -> {
|
}, result -> {
|
||||||
@ -284,8 +284,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactDeselected(String number) {
|
public void onContactDeselected(RecipientId recipientId) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -70,7 +70,7 @@ public class ContactSelectionListAdapter extends CursorRecyclerViewAdapter<ViewH
|
|||||||
private final ItemClickListener clickListener;
|
private final ItemClickListener clickListener;
|
||||||
private final GlideRequests glideRequests;
|
private final GlideRequests glideRequests;
|
||||||
|
|
||||||
private final Set<String> selectedContacts = new HashSet<>();
|
private final Set<RecipientId> selectedContacts = new HashSet<>();
|
||||||
|
|
||||||
public abstract static class ViewHolder extends RecyclerView.ViewHolder {
|
public abstract static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ public class ContactSelectionListAdapter extends CursorRecyclerViewAdapter<ViewH
|
|||||||
|
|
||||||
viewHolder.unbind(glideRequests);
|
viewHolder.unbind(glideRequests);
|
||||||
viewHolder.bind(glideRequests, id, contactType, name, number, labelText, color, multiSelect);
|
viewHolder.bind(glideRequests, id, contactType, name, number, labelText, color, multiSelect);
|
||||||
viewHolder.setChecked(selectedContacts.contains(number));
|
viewHolder.setChecked(selectedContacts.contains(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -222,7 +222,7 @@ public class ContactSelectionListAdapter extends CursorRecyclerViewAdapter<ViewH
|
|||||||
return getHeaderString(position);
|
return getHeaderString(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<String> getSelectedContacts() {
|
public Set<RecipientId> getSelectedContacts() {
|
||||||
return selectedContacts;
|
return selectedContacts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,8 +129,8 @@ public class ContactSelectionListItem extends LinearLayout implements RecipientF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNumber() {
|
public @Nullable RecipientId getRecipientId() {
|
||||||
return number;
|
return recipient != null ? recipient.getId() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user