kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix crash when delete scheduled message dialog is open and message sends.
rodzic
0cb0ef977c
commit
14cd216668
|
@ -64,6 +64,7 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
||||||
override val themeResId: Int = R.style.Widget_Signal_FixedRoundedCorners_Messages
|
override val themeResId: Int = R.style.Widget_Signal_FixedRoundedCorners_Messages
|
||||||
|
|
||||||
private var firstRender: Boolean = true
|
private var firstRender: Boolean = true
|
||||||
|
private var deleteDialog: AlertDialog? = null
|
||||||
|
|
||||||
private lateinit var messageAdapter: ConversationAdapter
|
private lateinit var messageAdapter: ConversationAdapter
|
||||||
private lateinit var callback: Callback
|
private lateinit var callback: Callback
|
||||||
|
@ -112,7 +113,8 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
||||||
|
|
||||||
disposables += viewModel.getMessages(requireContext()).subscribe { messages ->
|
disposables += viewModel.getMessages(requireContext()).subscribe { messages ->
|
||||||
if (messages.isEmpty()) {
|
if (messages.isEmpty()) {
|
||||||
dismiss()
|
deleteDialog?.dismiss()
|
||||||
|
dismissAllowingStateLoss()
|
||||||
}
|
}
|
||||||
|
|
||||||
messageAdapter.submitList(messages) {
|
messageAdapter.submitList(messages) {
|
||||||
|
@ -176,7 +178,10 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleDeleteMessage(messageRecord: MessageRecord) {
|
private fun handleDeleteMessage(messageRecord: MessageRecord) {
|
||||||
buildDeleteScheduledMessageConfirmationDialog(messageRecord).show()
|
deleteDialog?.dismiss()
|
||||||
|
deleteDialog = buildDeleteScheduledMessageConfirmationDialog(messageRecord)
|
||||||
|
.setOnDismissListener { deleteDialog = null }
|
||||||
|
.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleCopyMessage(message: ConversationMessage) {
|
private fun handleCopyMessage(message: ConversationMessage) {
|
||||||
|
@ -221,17 +226,19 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun deleteMessage(messageId: Long) {
|
private fun deleteMessage(messageId: Long) {
|
||||||
|
context?.let { context ->
|
||||||
val progressDialog = SignalProgressDialog.show(
|
val progressDialog = SignalProgressDialog.show(
|
||||||
context = requireContext(),
|
context = context,
|
||||||
message = resources.getString(R.string.ScheduledMessagesBottomSheet_deleting_progress_message),
|
message = resources.getString(R.string.ScheduledMessagesBottomSheet_deleting_progress_message),
|
||||||
indeterminate = true
|
indeterminate = true
|
||||||
)
|
)
|
||||||
SimpleTask.run(viewLifecycleOwner.lifecycle, {
|
SimpleTask.run({
|
||||||
SignalDatabase.messages.deleteScheduledMessage(messageId)
|
SignalDatabase.messages.deleteScheduledMessage(messageId)
|
||||||
}, {
|
}, {
|
||||||
progressDialog.dismiss()
|
progressDialog.dismiss()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onReschedule(scheduledTime: Long, messageId: Long) {
|
override fun onReschedule(scheduledTime: Long, messageId: Long) {
|
||||||
viewModel.rescheduleMessage(messageId, scheduledTime)
|
viewModel.rescheduleMessage(messageId, scheduledTime)
|
||||||
|
|
Ładowanie…
Reference in New Issue