Show banned users to admins

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/entities/MucOptions.java          | 6 
src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java | 2 
src/main/java/eu/siacs/conversations/ui/MucUsersActivity.java          | 2 
3 files changed, 7 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/MucOptions.java 🔗

@@ -413,10 +413,14 @@ public class MucOptions {
     }
 
     public ArrayList<User> getUsers(boolean includeOffline) {
+        return getUsers(true, false);
+    }
+
+    public ArrayList<User> getUsers(boolean includeOffline, boolean includeOutcast) {
         synchronized (users) {
             ArrayList<User> users = new ArrayList<>();
             for (User user : this.users) {
-                if (!user.isDomain() && (includeOffline ? user.getAffiliation().ranks(Affiliation.NONE) : user.getRole().ranks(Role.PARTICIPANT))) {
+                if (!user.isDomain() && (includeOffline ? (includeOutcast || user.getAffiliation().ranks(Affiliation.NONE)) : user.getRole().ranks(Role.PARTICIPANT))) {
                     users.add(user);
                 }
             }

src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java 🔗

@@ -668,7 +668,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
         });
         this.mUserPreviewAdapter.submitList(MucOptions.sub(users, GridManager.getCurrentColumnCount(binding.users)));
         this.binding.invite.setVisibility(mucOptions.canInvite() ? View.VISIBLE : View.GONE);
-        this.binding.showUsers.setVisibility(users.size() > 0 ? View.VISIBLE : View.GONE);
+        this.binding.showUsers.setVisibility(mucOptions.getUsers(true, mucOptions.getSelf().getAffiliation().ranks(MucOptions.Affiliation.ADMIN)).size() > 0 ? View.VISIBLE : View.GONE);
         this.binding.showUsers.setText(getResources().getQuantityString(R.plurals.view_users, users.size(), users.size()));
         this.binding.usersWrapper.setVisibility(users.size() > 0 || mucOptions.canInvite() ? View.VISIBLE : View.GONE);
         if (users.size() == 0) {

src/main/java/eu/siacs/conversations/ui/MucUsersActivity.java 🔗

@@ -60,7 +60,7 @@ public class MucUsersActivity extends XmppActivity implements XmppConnectionServ
 
     private void loadAndSubmitUsers() {
         if (mConversation != null) {
-            allUsers = mConversation.getMucOptions().getUsers();
+            allUsers = mConversation.getMucOptions().getUsers(true, mConversation.getMucOptions().getSelf().getAffiliation().ranks(MucOptions.Affiliation.ADMIN));
             submitFilteredList(mSearchEditText != null ? mSearchEditText.getText().toString() : null);
         }
     }