diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java index f0b20bfa4..5d8a9c03c 100644 --- a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java @@ -419,6 +419,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers getMenuInflater().inflate(R.menu.muc_details_context, menu); final User user = (User) tag; final User self = mConversation.getMucOptions().getSelf(); + final Jid jid = user.getFullJid(); this.mSelectedUser = user; String name; final Contact contact = user.getContact(); @@ -432,6 +433,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers menu.setHeaderTitle(name); if (user.getRealJid() != null) { MenuItem highlightInMuc = menu.findItem(R.id.highlight_in_muc); + MenuItem sendPrivateMessage = menu.findItem(R.id.send_private_message); MenuItem startConversation = menu.findItem(R.id.start_conversation); MenuItem giveMembership = menu.findItem(R.id.give_membership); MenuItem removeMembership = menu.findItem(R.id.remove_membership); @@ -445,6 +447,13 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers if (user.getRole() == MucOptions.Role.NONE) { invite.setVisible(true); } + if (jid != null && !jid.isBareJid()) { + if (mConversation.getMucOptions().isUserInRoom(jid)) { + sendPrivateMessage.setVisible(true); + } else { + sendPrivateMessage.setVisible(false); + } + } if (self.getAffiliation().ranks(MucOptions.Affiliation.ADMIN) && self.getAffiliation().outranks(user.getAffiliation())) { if (mAdvancedMode) { @@ -479,6 +488,13 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers case R.id.highlight_in_muc: highlightInMuc(mConversation, mSelectedUser.getName()); return true; + case R.id.send_private_message: + if (mConversation.getMucOptions().allowPm()) { + privateMsgInMuc(mConversation, mSelectedUser.getName()); + } else { + Toast.makeText(this, R.string.private_messages_are_disabled, Toast.LENGTH_SHORT).show(); + } + return true; case R.id.start_conversation: startConversation(mSelectedUser); return true; @@ -503,13 +519,6 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers xmppConnectionService.changeRoleInConference(mConversation, mSelectedUser.getName(), MucOptions.Role.NONE, this); } return true; - case R.id.send_private_message: - if (mConversation.getMucOptions().allowPm()) { - privateMsgInMuc(mConversation, mSelectedUser.getName()); - } else { - Toast.makeText(this, R.string.private_messages_are_disabled, Toast.LENGTH_SHORT).show(); - } - return true; case R.id.invite: xmppConnectionService.directInvite(mConversation, jid); return true; |