@@ -3471,11 +3471,14 @@ public class ConversationFragment extends XmppFragment
private boolean showBlockSubmenu(View view) {
final Jid jid = conversation.getJid();
- final boolean showReject = conversation.getContact().getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
+ final int mode = conversation.getMode();
+ final var contact = mode == Conversation.MODE_SINGLE ? conversation.getContact() : null;
+ final boolean showReject = contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
PopupMenu popupMenu = new PopupMenu(getActivity(), view);
popupMenu.inflate(R.menu.block);
popupMenu.getMenu().findItem(R.id.block_contact).setVisible(jid.getLocal() != null);
popupMenu.getMenu().findItem(R.id.reject).setVisible(showReject);
+ popupMenu.getMenu().findItem(R.id.add_contact).setVisible(!contact.showInRoster());
popupMenu.setOnMenuItemClickListener(
menuItem -> {
Blockable blockable;
@@ -3485,6 +3488,9 @@ public class ConversationFragment extends XmppFragment
conversation.getContact());
updateSnackBar(conversation);
return true;
+ case R.id.add_contact:
+ mAddBackClickListener.onClick(view);
+ return true;
case R.id.block_domain:
blockable =
conversation
@@ -3524,8 +3530,8 @@ public class ConversationFragment extends XmppFragment
&& contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
showSnackbar(
R.string.contact_added_you,
- R.string.add_back,
- this.mAddBackClickListener,
+ R.string.options,
+ this.mBlockClickListener,
this.mLongPressBlockListener);
} else if (contact != null
&& contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
@@ -3609,7 +3615,10 @@ public class ConversationFragment extends XmppFragment
&& !conversation.isBlocked()
&& conversation.isWithStranger()) {
showSnackbar(
- R.string.received_message_from_stranger, R.string.block, mBlockClickListener);
+ R.string.received_message_from_stranger,
+ R.string.options,
+ this.mBlockClickListener,
+ this.mLongPressBlockListener);
} else {
hideSnackbar();
}
@@ -1072,4 +1072,5 @@
<string name="pref_fullscreen_notification_summary">Allow this app to show incoming call notifications that take up the full screen when the device is locked.</string>
<string name="unsupported_operation">Unsupported operation</string>
<string name="schedule_message">Send later</string>
+ <string name="options">Options</string>
</resources>