From b5f662b23ca14634d74c2fb149d35825719418f6 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 8 May 2024 19:31:07 -0500 Subject: [PATCH] Gate schedule menu on version and text to send --- .../java/eu/siacs/conversations/ui/ConversationFragment.java | 5 ++--- .../conversations/ui/util/ConversationMenuConfigurator.java | 5 ++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index fbf7c3525691748840d4e8d33328c649eaf5e04b..3dc498e2af453a384cf18c0e5348b4e8cf403063 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -1355,7 +1355,7 @@ public class ConversationFragment extends XmppFragment } else { menuUnmute.setVisible(false); } - ConversationMenuConfigurator.configureAttachmentMenu(conversation, menu); + ConversationMenuConfigurator.configureAttachmentMenu(conversation, menu, TextUtils.isEmpty(binding.textinput.getText())); ConversationMenuConfigurator.configureEncryptionMenu(conversation, menu); if (conversation.getBooleanAttribute(Conversation.ATTRIBUTE_PINNED_ON_TOP, false)) { menuTogglePinned.setTitle(R.string.remove_from_favorites); @@ -1629,7 +1629,7 @@ public class ConversationFragment extends XmppFragment MenuItem newItem = menu.add(item.getGroupId(), item.getItemId(), item.getOrder(), item.getTitle()); newItem.setIcon(item.getIcon()); } - ConversationMenuConfigurator.configureAttachmentMenu(conversation, menu); + ConversationMenuConfigurator.configureAttachmentMenu(conversation, menu, TextUtils.isEmpty(binding.textinput.getText())); return; } @@ -2023,7 +2023,6 @@ public class ConversationFragment extends XmppFragment } private void scheduleMessage() { - // TODO: also gate menu option in UI behind version check // TODO: upgrade to material you/3 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { final Calendar now = Calendar.getInstance(); diff --git a/src/main/java/eu/siacs/conversations/ui/util/ConversationMenuConfigurator.java b/src/main/java/eu/siacs/conversations/ui/util/ConversationMenuConfigurator.java index 70235cf62531b409ce598f23cfdff0c98e7993c3..14c35d2c32aae0ab814c0224088a0bc029badf45 100644 --- a/src/main/java/eu/siacs/conversations/ui/util/ConversationMenuConfigurator.java +++ b/src/main/java/eu/siacs/conversations/ui/util/ConversationMenuConfigurator.java @@ -51,7 +51,7 @@ public class ConversationMenuConfigurator { microphoneAvailable = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MICROPHONE); } - public static void configureAttachmentMenu(@NonNull Conversation conversation, Menu menu) { + public static void configureAttachmentMenu(@NonNull Conversation conversation, Menu menu, boolean isTextEmpty) { final MenuItem menuAttach = menu.findItem(R.id.action_attach_file); final boolean visible; @@ -63,6 +63,9 @@ public class ConversationMenuConfigurator { if (menuAttach != null) menuAttach.setVisible(visible); if (visible) menu.findItem(R.id.attach_record_voice).setVisible(microphoneAvailable); menu.findItem(R.id.attach_subject).setVisible(conversation.getNextEncryption() == Message.ENCRYPTION_NONE); + if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N || isTextEmpty) { + menu.findItem(R.id.attach_schedule).setVisible(false); + } } public static void configureEncryptionMenu(@NonNull Conversation conversation, Menu menu) {