From b94f5501d9eb16620505ec658337884ec48ebd25 Mon Sep 17 00:00:00 2001 From: Clark Date: Fri, 27 Jan 2023 11:26:39 -0500 Subject: [PATCH] Disable scheduling of voice note messages. --- .../securesms/components/SendButton.kt | 5 ++-- .../ConversationParentFragment.java | 26 ++++++++++++------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.kt b/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.kt index 02c795aeff..804f6044fe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/SendButton.kt @@ -174,7 +174,7 @@ class SendButton(context: Context, attributeSet: AttributeSet?) : AppCompatImage val scheduleListener = scheduledSendListener if (availableSendTypes.size == 1) { - return if (scheduleListener != null) { + return if (scheduleListener?.canSchedule() == true) { scheduleListener.onSendScheduled() true } else if (!SignalStore.misc().smsExportPhase.allowSmsFeatures()) { @@ -202,7 +202,7 @@ class SendButton(context: Context, attributeSet: AttributeSet?) : AppCompatImage action = { setSendType(option) } ) }.toMutableList() - if (allowScheduling && listener != null) { + if (allowScheduling && listener?.canSchedule() == true) { items += ActionItem( iconRes = R.drawable.ic_calendar_24, title = context.getString(R.string.conversation_activity__option_schedule_message), @@ -222,5 +222,6 @@ class SendButton(context: Context, attributeSet: AttributeSet?) : AppCompatImage interface ScheduledSendListener { fun onSendScheduled() + fun canSchedule(): Boolean } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java index 45ae8daa43..1bb7d7c4ba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -2086,15 +2086,23 @@ public class ConversationParentFragment extends Fragment attachButton.setOnLongClickListener(new AttachButtonLongClickListener()); sendButton.setOnClickListener(sendButtonListener); if (FeatureFlags.scheduledMessageSends()) { - sendButton.setScheduledSendListener(() -> { - ScheduleMessageContextMenu.show(sendButton, (ViewGroup) requireView(), time -> { - if (time == -1) { - ScheduleMessageTimePickerBottomSheet.showSchedule(getChildFragmentManager()); - } else { - sendMessage(null, time); - } - return Unit.INSTANCE; - }); + sendButton.setScheduledSendListener(new SendButton.ScheduledSendListener() { + @Override + public void onSendScheduled() { + ScheduleMessageContextMenu.show(sendButton, (ViewGroup) requireView(), time -> { + if (time == -1) { + ScheduleMessageTimePickerBottomSheet.showSchedule(getChildFragmentManager()); + } else { + sendMessage(null, time); + } + return Unit.INSTANCE; + }); + } + + @Override + public boolean canSchedule() { + return !(inputPanel.isRecordingInLockedMode() || draftViewModel.getVoiceNoteDraft() != null); + } }); } sendButton.setEnabled(true);