From 6a5c23440803dce5437cb8d280a19427f092f61a Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 23 Aug 2021 10:40:40 -0300 Subject: [PATCH] Always recalculate shown items when we update menu state in multiselect. --- .../securesms/conversation/ConversationFragment.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index 8cc5bb5756..7c8ce6e498 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -793,7 +793,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect }); } - private void setCorrectMenuVisibility(@NonNull Menu menu) { + private void setCorrectActionModeMenuVisibility(@NonNull Menu menu) { Set selectedParts = getListAdapter().getSelectedItems(); if (actionMode != null && selectedParts.size() == 0) { @@ -810,6 +810,8 @@ public class ConversationFragment extends LoggingFragment implements Multiselect menu.findItem(R.id.menu_context_resend).setVisible(menuState.shouldShowResendAction()); menu.findItem(R.id.menu_context_copy).setVisible(menuState.shouldShowCopyAction()); menu.findItem(R.id.menu_context_delete_message).setVisible(menuState.shouldShowDeleteAction()); + + AdaptiveActionsToolbar.adjustMenuActions(menu, 10, requireActivity().getWindow().getDecorView().getMeasuredWidth()); } private @Nullable ConversationAdapter getListAdapter() { @@ -1388,7 +1390,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect if (getListAdapter().getSelectedItems().size() == 0) { actionMode.finish(); } else { - setCorrectMenuVisibility(actionMode.getMenu()); + setCorrectActionModeMenuVisibility(actionMode.getMenu()); actionMode.setTitle(calculateSelectedItemCount()); } } @@ -1878,8 +1880,7 @@ public class ConversationFragment extends LoggingFragment implements Multiselect WindowUtil.setLightStatusBar(getActivity().getWindow()); } - setCorrectMenuVisibility(menu); - AdaptiveActionsToolbar.adjustMenuActions(menu, 10, requireActivity().getWindow().getDecorView().getMeasuredWidth()); + setCorrectActionModeMenuVisibility(menu); listener.onMessageActionToolbarOpened(); return true; }