From 0ad443bb310059f8b5bb28c03afaba74943d9180 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 23 Oct 2018 23:16:54 +0200 Subject: [PATCH] Nicer disabled state when using public conversations --- .../talk/adapters/items/UserItem.java | 6 +++++ .../talk/controllers/ContactsController.java | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java index 6def9f1ec..27d846858 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java @@ -153,6 +153,12 @@ public class UserItem extends AbstractFlexibleItem .apply(RequestOptions.bitmapTransform(new CircleCrop())) .into(holder.avatarFlipView.getFrontImageView()); } + + if (!isEnabled()) { + holder.itemView.setAlpha(0.38f); + } else { + holder.itemView.setAlpha(1.0f); + } } @Override diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java b/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java index 037ad2508..544ea9cad 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java +++ b/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 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(); }