Change summary
src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java | 13
src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java | 9
2 files changed, 16 insertions(+), 6 deletions(-)
Detailed changes
@@ -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<ListItem> listItems = new ArrayList<>();
- private ArrayAdapter<ListItem> 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<ListItem> 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;
}
@@ -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) {