diff --git a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java index f2ced4b21..bb8d38ede 100644 --- a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java @@ -77,7 +77,7 @@ public class AccountSelectionListFragment extends DialogFragment // hack to make onContextItemSelected() work with DialogFragment, // see https://stackoverflow.com/questions/15929026/oncontextitemselected-does-not-get-called-in-a-dialogfragment MenuItem.OnMenuItemClickListener listener = item -> { - onContextItemSelected(item); + onContextItemSelected(item, v); return true; }; for (int i = 0, n = menu.size(); i < n; i++) { @@ -86,15 +86,11 @@ public class AccountSelectionListFragment extends DialogFragment // /hack } - @Override - public boolean onContextItemSelected(MenuItem item) { - AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); + private void onContextItemSelected(MenuItem item, View view) { switch (item.getItemId()) { case R.id.delete: - onDeleteAccount(((AccountSelectionListItem) info.targetView).getAccountId()); - return true; - default: - return super.onContextItemSelected(item); + onDeleteAccount(((AccountSelectionListItem) view).getAccountId()); + break; } } diff --git a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java index 46d800cde..37bc7d5c0 100644 --- a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java +++ b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListItem.java @@ -82,7 +82,11 @@ public class AccountSelectionListItem extends LinearLayout { updateUnreadIndicator(unreadCount, isMuted); setText(name, addr); - fragment.registerForContextMenu(this); + if (!selected && accountId != DcContact.DC_CONTACT_ID_ADD_ACCOUNT) { + fragment.registerForContextMenu(this); + } else { + fragment.unregisterForContextMenu(this); + } } public void unbind(GlideRequests glideRequests) {