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