Disable scheduling of voice note messages.

This commit is contained in:
Clark 2023-01-27 11:26:39 -05:00 committed by Greyson Parrelli
parent 834283ba9b
commit b94f5501d9
2 changed files with 20 additions and 11 deletions

View file

@ -174,7 +174,7 @@ class SendButton(context: Context, attributeSet: AttributeSet?) : AppCompatImage
val scheduleListener = scheduledSendListener val scheduleListener = scheduledSendListener
if (availableSendTypes.size == 1) { if (availableSendTypes.size == 1) {
return if (scheduleListener != null) { return if (scheduleListener?.canSchedule() == true) {
scheduleListener.onSendScheduled() scheduleListener.onSendScheduled()
true true
} else if (!SignalStore.misc().smsExportPhase.allowSmsFeatures()) { } else if (!SignalStore.misc().smsExportPhase.allowSmsFeatures()) {
@ -202,7 +202,7 @@ class SendButton(context: Context, attributeSet: AttributeSet?) : AppCompatImage
action = { setSendType(option) } action = { setSendType(option) }
) )
}.toMutableList() }.toMutableList()
if (allowScheduling && listener != null) { if (allowScheduling && listener?.canSchedule() == true) {
items += ActionItem( items += ActionItem(
iconRes = R.drawable.ic_calendar_24, iconRes = R.drawable.ic_calendar_24,
title = context.getString(R.string.conversation_activity__option_schedule_message), title = context.getString(R.string.conversation_activity__option_schedule_message),
@ -222,5 +222,6 @@ class SendButton(context: Context, attributeSet: AttributeSet?) : AppCompatImage
interface ScheduledSendListener { interface ScheduledSendListener {
fun onSendScheduled() fun onSendScheduled()
fun canSchedule(): Boolean
} }
} }

View file

@ -2086,7 +2086,9 @@ public class ConversationParentFragment extends Fragment
attachButton.setOnLongClickListener(new AttachButtonLongClickListener()); attachButton.setOnLongClickListener(new AttachButtonLongClickListener());
sendButton.setOnClickListener(sendButtonListener); sendButton.setOnClickListener(sendButtonListener);
if (FeatureFlags.scheduledMessageSends()) { if (FeatureFlags.scheduledMessageSends()) {
sendButton.setScheduledSendListener(() -> { sendButton.setScheduledSendListener(new SendButton.ScheduledSendListener() {
@Override
public void onSendScheduled() {
ScheduleMessageContextMenu.show(sendButton, (ViewGroup) requireView(), time -> { ScheduleMessageContextMenu.show(sendButton, (ViewGroup) requireView(), time -> {
if (time == -1) { if (time == -1) {
ScheduleMessageTimePickerBottomSheet.showSchedule(getChildFragmentManager()); ScheduleMessageTimePickerBottomSheet.showSchedule(getChildFragmentManager());
@ -2095,6 +2097,12 @@ public class ConversationParentFragment extends Fragment
} }
return Unit.INSTANCE; return Unit.INSTANCE;
}); });
}
@Override
public boolean canSchedule() {
return !(inputPanel.isRecordingInLockedMode() || draftViewModel.getVoiceNoteDraft() != null);
}
}); });
} }
sendButton.setEnabled(true); sendButton.setEnabled(true);