Changed the approach

This commit is contained in:
Jakub Kalinowski
2022-04-21 20:41:58 +02:00
parent 71417df2c9
commit d7293d7a8e
3 changed files with 18 additions and 22 deletions

View File

@@ -59,7 +59,9 @@ class NumberPickerFactory
frequency: Frequency,
callback: ListHabitsBehavior.NumberPickerCallback
): AlertDialog {
numberPickerExists = true
clearCurrentDialog()
val inflater = LayoutInflater.from(context)
val view = inflater.inflate(R.layout.number_picker_dialog, null)
@@ -113,7 +115,7 @@ class NumberPickerFactory
}
.setOnDismissListener {
callback.onNumberPickerDismissed()
numberPickerExists = false
currentDialog = null
}
if (frequency == DAILY) {
@@ -154,6 +156,7 @@ class NumberPickerFactory
false
}
currentDialog = dialog
return dialog
}
@@ -172,12 +175,10 @@ class NumberPickerFactory
}
companion object {
private var numberPickerExists = false
fun numberPickerAlreadyExists(): Boolean = numberPickerExists
fun setNumberPickerExists(value: Boolean) {
numberPickerExists = value
private var currentDialog: AlertDialog? = null
fun clearCurrentDialog() {
currentDialog?.dismiss()
currentDialog = null
}
}
}

View File

@@ -234,9 +234,7 @@ class ListHabitsScreen
frequency: Frequency,
callback: ListHabitsBehavior.NumberPickerCallback
) {
if (!NumberPickerFactory.numberPickerAlreadyExists()) {
numberPickerFactory.create(value, unit, notes, dateString, frequency, callback).show()
}
numberPickerFactory.create(value, unit, notes, dateString, frequency, callback).show()
}
override fun showCheckmarkDialog(

View File

@@ -20,7 +20,6 @@ package org.isoron.uhabits.activities.habits.show
import android.content.ContentUris
import android.os.Bundle
import android.util.Log
import android.view.HapticFeedbackConstants
import android.view.Menu
import android.view.MenuItem
@@ -174,16 +173,14 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener {
frequency: Frequency,
callback: ListHabitsBehavior.NumberPickerCallback
) {
if(!NumberPickerFactory.numberPickerAlreadyExists()) {
NumberPickerFactory(this@ShowHabitActivity).create(
value,
unit,
notes,
dateString,
frequency,
callback
).show()
}
NumberPickerFactory(this@ShowHabitActivity).create(
value,
unit,
notes,
dateString,
frequency,
callback
).show()
}
override fun showCheckmarkDialog(