Changed the approach

pull/1356/head
Jakub Kalinowski 3 years ago
parent 71417df2c9
commit d7293d7a8e

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

@ -234,10 +234,8 @@ class ListHabitsScreen
frequency: Frequency, frequency: Frequency,
callback: ListHabitsBehavior.NumberPickerCallback 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( override fun showCheckmarkDialog(
selectedValue: Int, selectedValue: Int,

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

Loading…
Cancel
Save