From 019f0f5e589c34c996dfb886d13f8deb0f43dc10 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 27 Jan 2019 15:11:43 +0100 Subject: add context menu for muc user adapter --- .../messenger/ui/adapter/UserPreviewAdapter.java | 30 ++++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'src/main/java/de/pixart/messenger/ui/adapter/UserPreviewAdapter.java') diff --git a/src/main/java/de/pixart/messenger/ui/adapter/UserPreviewAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/UserPreviewAdapter.java index 5104ef86c..105503243 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/UserPreviewAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/UserPreviewAdapter.java @@ -4,8 +4,10 @@ import android.databinding.DataBindingUtil; import android.support.annotation.NonNull; import android.support.v7.recyclerview.extensions.ListAdapter; import android.support.v7.widget.RecyclerView; +import android.view.ContextMenu; import android.view.LayoutInflater; import android.view.Menu; +import android.view.View; import android.view.ViewGroup; import android.widget.PopupMenu; @@ -18,7 +20,9 @@ import de.pixart.messenger.ui.XmppActivity; import de.pixart.messenger.ui.util.AvatarWorkerTask; import de.pixart.messenger.ui.util.MucDetailsContextMenuHelper; -public class UserPreviewAdapter extends ListAdapter { +public class UserPreviewAdapter extends ListAdapter implements View.OnCreateContextMenuListener { + + private MucOptions.User selectedUser = null; public UserPreviewAdapter() { super(UserAdapter.DIFF); @@ -40,23 +44,21 @@ public class UserPreviewAdapter extends ListAdapter { - final XmppActivity activity = XmppActivity.find(v); - if (activity == null) { - return true; - } - final PopupMenu popupMenu = new PopupMenu(activity, v); - popupMenu.inflate(R.menu.muc_details_context); - final Menu menu = popupMenu.getMenu(); - MucDetailsContextMenuHelper.configureMucDetailsContextMenu(activity, menu, user.getConversation(), user); - popupMenu.setOnMenuItemClickListener(menuItem -> MucDetailsContextMenuHelper.onContextItemSelected(menuItem, user, user.getConversation(), activity)); - popupMenu.show(); - return true; + selectedUser = user; + return false; }); } - public void setUserList(List users) { - submitList(users); + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { + MucDetailsContextMenuHelper.onCreateContextMenu(menu, v); + } + + public MucOptions.User getSelectedUser() { + return selectedUser; } -- cgit v1.2.3