diff --git a/src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java b/src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java index 3db6aa5a105cd74b3d796de8ea4645b10cc53be3..4b6ec2bb72fd08f5bc84bbd4357b0018fdba7f63 100644 --- a/src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java @@ -27,9 +27,10 @@ import eu.siacs.conversations.ui.adapter.ListItemAdapter; public abstract class AbstractSearchableListItemActivity extends XmppActivity implements TextView.OnEditorActionListener { protected ActivityChooseContactBinding binding; private final List listItems = new ArrayList<>(); - private ArrayAdapter mListItemsAdapter; + private ListItemAdapter mListItemsAdapter; - private EditText mSearchEditText; + protected MenuItem mMenuSearchView; + protected EditText mSearchEditText; private final MenuItem.OnActionExpandListener mOnActionExpandListener = new MenuItem.OnActionExpandListener() { @@ -84,7 +85,7 @@ public abstract class AbstractSearchableListItemActivity extends XmppActivity im return mSearchEditText; } - public ArrayAdapter getListItemAdapter() { + public ListItemAdapter getListItemAdapter() { return mListItemsAdapter; } @@ -102,13 +103,13 @@ public abstract class AbstractSearchableListItemActivity extends XmppActivity im @Override public boolean onCreateOptionsMenu(final Menu menu) { getMenuInflater().inflate(R.menu.choose_contact, menu); - final MenuItem menuSearchView = menu.findItem(R.id.action_search); - final View mSearchView = menuSearchView.getActionView(); + mMenuSearchView = menu.findItem(R.id.action_search); + final View mSearchView = mMenuSearchView.getActionView(); mSearchEditText = mSearchView.findViewById(R.id.search_field); mSearchEditText.addTextChangedListener(mSearchTextWatcher); mSearchEditText.setHint(R.string.search_contacts); mSearchEditText.setOnEditorActionListener(this); - menuSearchView.setOnActionExpandListener(mOnActionExpandListener); + mMenuSearchView.setOnActionExpandListener(mOnActionExpandListener); return true; } diff --git a/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java b/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java index e5f6f633d99e1edd665fb9e3a33dc9279f536209..6fe57a0cda475284aba4ffac33b113835dc40a2a 100644 --- a/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java @@ -136,6 +136,15 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity im final SharedPreferences preferences = getPreferences(); this.startSearching = intent.getBooleanExtra("direct_search", false) && preferences.getBoolean("start_searching", getResources().getBoolean(R.bool.start_searching)); + getListItemAdapter().refreshSettings(); + getListItemAdapter().setOnTagClickedListener((tag) -> { + if (mMenuSearchView != null) { + mMenuSearchView.expandActionView(); + mSearchEditText.setText(""); + mSearchEditText.append(tag); + filterContacts(tag); + } + }); } private void onFabClicked(View v) {