mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-23 18:30:20 +01:00
@@ -1840,7 +1840,8 @@ class ConversationFragment :
|
||||
slide: Slide? = null,
|
||||
contacts: List<Contact> = emptyList(),
|
||||
quote: QuoteModel? = null,
|
||||
clearCompose: Boolean = true
|
||||
clearCompose: Boolean = true,
|
||||
scheduledDate: Long = -1
|
||||
) {
|
||||
sendMessage(
|
||||
slideDeck = slide?.let { SlideDeck().apply { addSlide(slide) } },
|
||||
@@ -1852,7 +1853,8 @@ class ConversationFragment :
|
||||
messageToEdit = null,
|
||||
quote = quote,
|
||||
linkPreviews = emptyList(),
|
||||
bypassPreSendSafetyNumberCheck = true
|
||||
bypassPreSendSafetyNumberCheck = true,
|
||||
scheduledDate = scheduledDate
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1892,19 +1894,24 @@ class ConversationFragment :
|
||||
}
|
||||
|
||||
if (inputPanel.isRecordingInLockedMode) {
|
||||
inputPanel.releaseRecordingLock()
|
||||
inputPanel.releaseRecordingLockAndSend()
|
||||
return
|
||||
}
|
||||
|
||||
if (slideDeck == null) {
|
||||
val voiceNote: DraftTable.Draft? = draftViewModel.voiceNoteDraft
|
||||
if (voiceNote != null) {
|
||||
sendMessageWithoutComposeInput(slide = AudioSlide.createFromVoiceNoteDraft(voiceNote), clearCompose = true)
|
||||
sendMessageWithoutComposeInput(
|
||||
slide = AudioSlide.createFromVoiceNoteDraft(voiceNote),
|
||||
quote = quote,
|
||||
clearCompose = true,
|
||||
scheduledDate = scheduledDate
|
||||
)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if (body.isNullOrBlank() && slideDeck?.containsMediaSlide() != true && preUploadResults.isEmpty() && contacts.isEmpty()) {
|
||||
if (body.isBlank() && slideDeck?.containsMediaSlide() != true && preUploadResults.isEmpty() && contacts.isEmpty()) {
|
||||
Log.i(TAG, "Unable to send due to empty message")
|
||||
toast(R.string.ConversationActivity_message_is_empty_exclamation)
|
||||
return
|
||||
@@ -3970,6 +3977,10 @@ class ConversationFragment :
|
||||
}
|
||||
|
||||
override fun onSendScheduled() {
|
||||
if (inputPanel.isRecordingInLockedMode) {
|
||||
inputPanel.onSaveRecordDraft()
|
||||
}
|
||||
|
||||
ScheduleMessageContextMenu.show(sendButton, (requireView() as ViewGroup)) { time ->
|
||||
if (time == -1L) {
|
||||
showSchedule(childFragmentManager)
|
||||
@@ -3978,10 +3989,6 @@ class ConversationFragment :
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun canSchedule(): Boolean {
|
||||
return !(inputPanel.isRecordingInLockedMode || draftViewModel.voiceNoteDraft != null)
|
||||
}
|
||||
}
|
||||
|
||||
private inner class ComposeTextEventsListener :
|
||||
@@ -4126,6 +4133,11 @@ class ConversationFragment :
|
||||
voiceMessageRecordingDelegate.onRecorderCanceled(byUser)
|
||||
}
|
||||
|
||||
override fun onRecorderSaveDraft() {
|
||||
voiceMessageRecordingDelegate.onRecordSaveDraft()
|
||||
inputPanel.voiceNoteDraft = draftViewModel.voiceNoteDraft
|
||||
}
|
||||
|
||||
override fun onRecorderPermissionRequired() {
|
||||
Permissions
|
||||
.with(this@ConversationFragment)
|
||||
|
||||
@@ -69,6 +69,12 @@ class VoiceMessageRecordingDelegate(
|
||||
}
|
||||
}
|
||||
|
||||
fun onRecordSaveDraft() {
|
||||
voiceRecorderWakeLock.release()
|
||||
vibrateAndResetOrientation(50)
|
||||
session?.saveDraft()
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun vibrateAndResetOrientation(milliseconds: Long) {
|
||||
val activity = fragment.activity
|
||||
|
||||
Reference in New Issue
Block a user