From eb4be81dceff40cea4f08c5332cd48b282f72f0c Mon Sep 17 00:00:00 2001 From: "daniel.boehrs" Date: Mon, 26 Nov 2018 14:49:15 +0100 Subject: [PATCH] disallow multi select #101 --- .../thoughtcrime/securesms/BlockedContactsActivity.java | 1 + .../securesms/ContactSelectionListFragment.java | 8 ++++---- .../securesms/contacts/ContactSelectionListAdapter.java | 8 +++++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/org/thoughtcrime/securesms/BlockedContactsActivity.java b/src/org/thoughtcrime/securesms/BlockedContactsActivity.java index 8553ba01d..02c0296e5 100644 --- a/src/org/thoughtcrime/securesms/BlockedContactsActivity.java +++ b/src/org/thoughtcrime/securesms/BlockedContactsActivity.java @@ -95,6 +95,7 @@ public class BlockedContactsActivity extends PassphraseRequiredActionBarActivity ContactSelectionListAdapter adapter = new ContactSelectionListAdapter(getActivity(), GlideApp.with(this), this, + false, false); recyclerView.setAdapter(adapter); swipeRefreshLayout.setRefreshing(false); diff --git a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java index bd4f4941c..d33063498 100644 --- a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -33,7 +33,6 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.view.ActionMode; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.util.SparseIntArray; import android.view.LayoutInflater; import android.view.Menu; @@ -240,9 +239,10 @@ public class ContactSelectionListFragment extends Fragment private void initializeCursor() { ContactSelectionListAdapter adapter = new ContactSelectionListAdapter(getActivity(), - GlideApp.with(this), - new ListClickListener(), - isMulti()); + GlideApp.with(this), + new ListClickListener(), + isMulti(), + true); selectedContacts = adapter.getSelectedContacts(); recyclerView.setAdapter(adapter); recyclerView.addItemDecoration(new StickyHeaderDecoration(adapter, true, true)); diff --git a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java index 7c1f7a88c..da8876646 100644 --- a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java +++ b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java @@ -74,6 +74,7 @@ public class ContactSelectionListAdapter extends RecyclerView.Adapter private @NonNull int[] dcContactList = new int[0]; private String query; private final boolean multiSelect; + private final boolean longPressSelect; private final LayoutInflater li; private final TypedArray drawables; private final ItemClickListener clickListener; @@ -169,6 +170,9 @@ public class ContactSelectionListAdapter extends RecyclerView.Adapter } private void toggleSelection() { + if (!longPressSelect) { + return; + } int adapterPosition = getAdapterPosition(); int contactId = getContactId(adapterPosition); boolean enabled = actionModeSelection.indexOfKey(adapterPosition) > -1; @@ -248,7 +252,8 @@ public class ContactSelectionListAdapter extends RecyclerView.Adapter public ContactSelectionListAdapter(@NonNull Context context, @NonNull GlideRequests glideRequests, @Nullable ItemClickListener clickListener, - boolean multiSelect) + boolean multiSelect, + boolean longPressSelect) { super(); this.context = context; @@ -258,6 +263,7 @@ public class ContactSelectionListAdapter extends RecyclerView.Adapter this.drawables = context.obtainStyledAttributes(STYLE_ATTRIBUTES); this.multiSelect = multiSelect; this.clickListener = clickListener; + this.longPressSelect = longPressSelect; } @Override