aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/util/MucDetailsContextMenuHelper.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-09-27 21:56:44 +0200
committerChristian Schneppe <christian@pix-art.de>2018-09-27 21:56:44 +0200
commit68adf4c7e9bf9ca68dd81305accd12b56de38b4c (patch)
tree5ca45d9e96ccb823a15554e4525cf73bdece97ed /src/main/java/de/pixart/messenger/ui/util/MucDetailsContextMenuHelper.java
parentdc9a87b7ea2af1f751e84e73f053fee38d5237ac (diff)
bring back private group messages for all muc and fix broken highlight in muc
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/ui/util/MucDetailsContextMenuHelper.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/util/MucDetailsContextMenuHelper.java b/src/main/java/de/pixart/messenger/ui/util/MucDetailsContextMenuHelper.java
index dc338e02c..f4777e8f3 100644
--- a/src/main/java/de/pixart/messenger/ui/util/MucDetailsContextMenuHelper.java
+++ b/src/main/java/de/pixart/messenger/ui/util/MucDetailsContextMenuHelper.java
@@ -25,6 +25,8 @@ import rocks.xmpp.addr.Jid;
public final class MucDetailsContextMenuHelper {
public static void configureMucDetailsContextMenu(Activity activity, Menu menu, Conversation conversation, User user) {
final boolean advancedMode = PreferenceManager.getDefaultSharedPreferences(activity).getBoolean("advanced_muc_mode", false);
+ final MucOptions mucOptions = conversation.getMucOptions();
+ MenuItem sendPrivateMessage = menu.findItem(R.id.send_private_message);
if (user != null && user.getRealJid() != null) {
MenuItem showContactDetails = menu.findItem(R.id.action_contact_details);
MenuItem startConversation = menu.findItem(R.id.start_conversation);
@@ -35,6 +37,7 @@ public final class MucDetailsContextMenuHelper {
MenuItem removeFromRoom = menu.findItem(R.id.remove_from_room);
MenuItem banFromConference = menu.findItem(R.id.ban_from_conference);
MenuItem invite = menu.findItem(R.id.invite);
+ MenuItem highlightInMuc = menu.findItem(R.id.highlight_in_muc);
startConversation.setVisible(true);
final Contact contact = user.getContact();
final User self = conversation.getMucOptions().getSelf();
@@ -44,6 +47,11 @@ public final class MucDetailsContextMenuHelper {
if (activity instanceof ConferenceDetailsActivity && user.getRole() == MucOptions.Role.NONE) {
invite.setVisible(true);
}
+ if (activity instanceof ConversationsActivity) {
+ highlightInMuc.setVisible(false);
+ } else if (activity instanceof ConferenceDetailsActivity) {
+ highlightInMuc.setVisible(true);
+ }
if (self.getAffiliation().ranks(MucOptions.Affiliation.ADMIN) &&
self.getAffiliation().outranks(user.getAffiliation())) {
if (advancedMode) {
@@ -66,9 +74,9 @@ public final class MucDetailsContextMenuHelper {
removeAdminPrivileges.setVisible(true);
}
}
+ sendPrivateMessage.setVisible(true);
+ sendPrivateMessage.setEnabled(mucOptions.allowPm());
} else {
- final MucOptions mucOptions = conversation.getMucOptions();
- MenuItem sendPrivateMessage = menu.findItem(R.id.send_private_message);
sendPrivateMessage.setVisible(true);
sendPrivateMessage.setEnabled(user != null && mucOptions.allowPm() && user.getRole().ranks(MucOptions.Role.VISITOR));
}
@@ -122,6 +130,9 @@ public final class MucDetailsContextMenuHelper {
case R.id.invite:
activity.xmppConnectionService.directInvite(conversation, jid);
return true;
+ case R.id.highlight_in_muc:
+ activity.highlightInMuc(conversation, user.getName());
+ return true;
default:
return false;
}