From e39c0bf643893d61018c8ae5162171ea284cb183 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 29 Jun 2021 19:04:09 +0200 Subject: [PATCH] improve dialog queue --- .../ui/views/dialogs/HabiticaAlertDialog.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt index 92cc48cee..3e1d2ed9a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt @@ -301,10 +301,21 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context, R.style. } private fun addToQueue(dialog: HabiticaAlertDialog) { - if (dialogQueue.isEmpty()) { + if (checkIfQueueAvailable()) { dialog.show() } dialogQueue.add(dialog) } + + private fun checkIfQueueAvailable(): Boolean { + val currentDialog = dialogQueue.firstOrNull() ?: return true + if (currentDialog.isShowing) { + return false + } else { + // The Dialog was probably dismissed in a weird way. Clear it out so that the queue doesn't get stuck + dialogQueue.removeAt(0) + return true + } + } } } \ No newline at end of file