Basic tag nav in create group chat view

Stephen Paul Weber created

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

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<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;
 	}
 

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) {