Browse Source

Nicer disabled state when using public conversations

Mario Danic 6 years ago
parent
commit
0ad443bb31

+ 6 - 0
app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java

@@ -153,6 +153,12 @@ public class UserItem extends AbstractFlexibleItem<UserItem.UserItemViewHolder>
                     .apply(RequestOptions.bitmapTransform(new CircleCrop()))
                     .into(holder.avatarFlipView.getFrontImageView());
         }
+
+        if (!isEnabled()) {
+            holder.itemView.setAlpha(0.38f);
+        } else {
+            holder.itemView.setAlpha(1.0f);
+        }
     }
 
     @Override

+ 25 - 0
app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java

@@ -940,6 +940,31 @@ public class ContactsController extends BaseController implements SearchView.OnQ
     void toggleCallHeader() {
         toggleNewCallHeaderVisibility(isPublicCall);
         isPublicCall = !isPublicCall;
+
+        if (isPublicCall) {
+            List<Integer> selectedPositions = adapter.getSelectedPositions();
+            for (int selectedPosition : selectedPositions) {
+                if (adapter.getItem(selectedPosition) instanceof UserItem) {
+                    UserItem userItem = (UserItem) adapter.getItem(selectedPosition);
+                    if ("groups".equals(userItem.getModel().getSource())) {
+                        ((UserItem) adapter.getItem(selectedPosition)).flipItemSelection();
+                        adapter.toggleSelection(selectedPosition);
+                    }
+                }
+            }
+
+
+        }
+
+        for (int i = 0; i < adapter.getItemCount(); i++) {
+            if (adapter.getItem(i) instanceof UserItem) {
+                UserItem userItem = (UserItem) adapter.getItem(i);
+                if ("groups".equals(userItem.getModel().getSource())) {
+                    userItem.setEnabled(!isPublicCall);
+                }
+            }
+        }
+
         checkAndHandleDoneMenuItem();
     }