Fix crash when delete scheduled message dialog is open and message sends.
This commit is contained in:
parent
0cb0ef977c
commit
14cd216668
1 changed files with 19 additions and 12 deletions
|
@ -64,6 +64,7 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
|||
override val themeResId: Int = R.style.Widget_Signal_FixedRoundedCorners_Messages
|
||||
|
||||
private var firstRender: Boolean = true
|
||||
private var deleteDialog: AlertDialog? = null
|
||||
|
||||
private lateinit var messageAdapter: ConversationAdapter
|
||||
private lateinit var callback: Callback
|
||||
|
@ -112,7 +113,8 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
|||
|
||||
disposables += viewModel.getMessages(requireContext()).subscribe { messages ->
|
||||
if (messages.isEmpty()) {
|
||||
dismiss()
|
||||
deleteDialog?.dismiss()
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
messageAdapter.submitList(messages) {
|
||||
|
@ -176,7 +178,10 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
|||
}
|
||||
|
||||
private fun handleDeleteMessage(messageRecord: MessageRecord) {
|
||||
buildDeleteScheduledMessageConfirmationDialog(messageRecord).show()
|
||||
deleteDialog?.dismiss()
|
||||
deleteDialog = buildDeleteScheduledMessageConfirmationDialog(messageRecord)
|
||||
.setOnDismissListener { deleteDialog = null }
|
||||
.show()
|
||||
}
|
||||
|
||||
private fun handleCopyMessage(message: ConversationMessage) {
|
||||
|
@ -221,16 +226,18 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
|||
}
|
||||
|
||||
private fun deleteMessage(messageId: Long) {
|
||||
val progressDialog = SignalProgressDialog.show(
|
||||
context = requireContext(),
|
||||
message = resources.getString(R.string.ScheduledMessagesBottomSheet_deleting_progress_message),
|
||||
indeterminate = true
|
||||
)
|
||||
SimpleTask.run(viewLifecycleOwner.lifecycle, {
|
||||
SignalDatabase.messages.deleteScheduledMessage(messageId)
|
||||
}, {
|
||||
progressDialog.dismiss()
|
||||
})
|
||||
context?.let { context ->
|
||||
val progressDialog = SignalProgressDialog.show(
|
||||
context = context,
|
||||
message = resources.getString(R.string.ScheduledMessagesBottomSheet_deleting_progress_message),
|
||||
indeterminate = true
|
||||
)
|
||||
SimpleTask.run({
|
||||
SignalDatabase.messages.deleteScheduledMessage(messageId)
|
||||
}, {
|
||||
progressDialog.dismiss()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
override fun onReschedule(scheduledTime: Long, messageId: Long) {
|
||||
|
|
Loading…
Add table
Reference in a new issue