Checking if a dialog was already created

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

@ -50,7 +50,6 @@ class NumberPickerFactory
@Inject constructor(
@ActivityContext private val context: Context
) {
@SuppressLint("SetTextI18n")
fun create(
value: Double,
@ -60,6 +59,7 @@ class NumberPickerFactory
frequency: Frequency,
callback: ListHabitsBehavior.NumberPickerCallback
): AlertDialog {
numberPickerExists = true
val inflater = LayoutInflater.from(context)
val view = inflater.inflate(R.layout.number_picker_dialog, null)
@ -113,6 +113,7 @@ class NumberPickerFactory
}
.setOnDismissListener {
callback.onNumberPickerDismissed()
numberPickerExists = false
}
if (frequency == DAILY) {
@ -169,6 +170,16 @@ class NumberPickerFactory
val inputMethodManager = context.getSystemService(InputMethodManager::class.java)
inputMethodManager?.showSoftInput(v, 0)
}
companion object {
private var numberPickerExists = false
fun numberPickerAlreadyExists(): Boolean = numberPickerExists
fun setNumberPickerExists(value: Boolean) {
numberPickerExists = value
}
}
}
class SeparatorWatcherInputFilter(private val nextPicker: NumberPicker) : InputFilter {

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

@ -20,6 +20,7 @@ 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
@ -173,7 +174,16 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener {
frequency: Frequency,
callback: ListHabitsBehavior.NumberPickerCallback
) {
NumberPickerFactory(this@ShowHabitActivity).create(value, unit, notes, dateString, frequency, callback).show()
if(!NumberPickerFactory.numberPickerAlreadyExists()) {
NumberPickerFactory(this@ShowHabitActivity).create(
value,
unit,
notes,
dateString,
frequency,
callback
).show()
}
}
override fun showCheckmarkDialog(

Loading…
Cancel
Save