From 061de5205e198eac51cf54af5fd9b2e4faebe4d2 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 8 Jan 2015 00:23:26 +0100 Subject: [PATCH] some clean ups for affiliation change context menu --- .../conversations/ui/ConferenceDetailsActivity.java | 10 ++++++++-- src/main/res/menu/muc_details_context.xml | 4 ++++ src/main/res/values/strings.xml | 8 ++++---- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java index 5272c9226..2185c3afd 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java @@ -245,6 +245,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers MenuItem giveAdminPrivileges = menu.findItem(R.id.give_admin_privileges); MenuItem removeAdminPrivileges = menu.findItem(R.id.remove_admin_privileges); MenuItem removeFromRoom = menu.findItem(R.id.remove_from_room); + MenuItem banFromConference = menu.findItem(R.id.ban_from_conference); startConversation.setVisible(true); if (self.getAffiliation().ranks(MucOptions.Affiliation.ADMIN) && self.getAffiliation().outranks(user.getAffiliation())) { @@ -254,13 +255,15 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers } else { removeMembership.setVisible(true); } + banFromConference.setVisible(true); + } else { + removeFromRoom.setVisible(true); } if (user.getAffiliation() != MucOptions.Affiliation.ADMIN) { giveAdminPrivileges.setVisible(true); } else { removeAdminPrivileges.setVisible(true); } - removeFromRoom.setVisible(true); } } @@ -289,6 +292,9 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers case R.id.remove_from_room: removeFromRoom(mSelectedUser); return true; + case R.id.ban_from_conference: + xmppConnectionService.changeAffiliationInConference(mConversation,mSelectedUser.getJid(), MucOptions.Affiliation.OUTCAST,this); + return true; default: return super.onContextItemSelected(item); } @@ -299,7 +305,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers xmppConnectionService.changeAffiliationInConference(mConversation,user.getJid(), MucOptions.Affiliation.NONE,this); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.ban_user_from_conference); + builder.setTitle(R.string.ban_from_conference); builder.setMessage(getString(R.string.removing_from_public_conference,user.getName())); builder.setNegativeButton(R.string.cancel,null); builder.setPositiveButton(R.string.ban_now,new DialogInterface.OnClickListener() { diff --git a/src/main/res/menu/muc_details_context.xml b/src/main/res/menu/muc_details_context.xml index ad9f174ad..dc0f5d3eb 100644 --- a/src/main/res/menu/muc_details_context.xml +++ b/src/main/res/menu/muc_details_context.xml @@ -21,6 +21,10 @@ android:id="@+id/remove_membership" android:title="@string/remove_membership" android:visible="false"/> + Member Advanced mode Grant membership - Remove membership + Revoke membership Grant admin privileges - Remove admin privileges - Remove from room + Revoke admin privileges + Remove from conference Could not change affiliation - Ban user from conference + Ban from conference You are trying to remove %s from a public conference. The only way to do that is to ban that user for ever. Ban now