mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-07 17:48:52 -06:00
Resolved the PR comments
This commit is contained in:
@@ -26,7 +26,6 @@ import android.view.View
|
|||||||
import android.view.View.GONE
|
import android.view.View.GONE
|
||||||
import android.view.View.VISIBLE
|
import android.view.View.VISIBLE
|
||||||
import org.isoron.uhabits.R
|
import org.isoron.uhabits.R
|
||||||
import org.isoron.uhabits.activities.common.dialogs.MultipleDialogsHandler.Companion.dismissCurrent
|
|
||||||
import org.isoron.uhabits.core.models.Entry.Companion.NO
|
import org.isoron.uhabits.core.models.Entry.Companion.NO
|
||||||
import org.isoron.uhabits.core.models.Entry.Companion.SKIP
|
import org.isoron.uhabits.core.models.Entry.Companion.SKIP
|
||||||
import org.isoron.uhabits.core.models.Entry.Companion.UNKNOWN
|
import org.isoron.uhabits.core.models.Entry.Companion.UNKNOWN
|
||||||
@@ -36,6 +35,7 @@ import org.isoron.uhabits.core.preferences.Preferences
|
|||||||
import org.isoron.uhabits.databinding.CheckmarkPopupBinding
|
import org.isoron.uhabits.databinding.CheckmarkPopupBinding
|
||||||
import org.isoron.uhabits.utils.InterfaceUtils.getFontAwesome
|
import org.isoron.uhabits.utils.InterfaceUtils.getFontAwesome
|
||||||
import org.isoron.uhabits.utils.dimBehind
|
import org.isoron.uhabits.utils.dimBehind
|
||||||
|
import org.isoron.uhabits.utils.dismissCurrentAndShow
|
||||||
import org.isoron.uhabits.utils.dp
|
import org.isoron.uhabits.utils.dp
|
||||||
import org.isoron.uhabits.utils.sres
|
import org.isoron.uhabits.utils.sres
|
||||||
|
|
||||||
@@ -118,8 +118,7 @@ class CheckmarkPopup(
|
|||||||
view.unknownBtn.setOnClickListener { onClick(UNKNOWN) }
|
view.unknownBtn.setOnClickListener { onClick(UNKNOWN) }
|
||||||
dialog.setCanceledOnTouchOutside(true)
|
dialog.setCanceledOnTouchOutside(true)
|
||||||
dialog.dimBehind()
|
dialog.dimBehind()
|
||||||
dialog.dismissCurrent()
|
dialog.dismissCurrentAndShow()
|
||||||
dialog.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun save() {
|
fun save() {
|
||||||
|
|||||||
@@ -18,10 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.isoron.uhabits.activities.common.dialogs
|
package org.isoron.uhabits.activities.common.dialogs
|
||||||
|
|
||||||
import android.app.Dialog
|
|
||||||
import android.os.Bundle
|
|
||||||
import com.android.colorpicker.ColorPickerDialog
|
import com.android.colorpicker.ColorPickerDialog
|
||||||
import org.isoron.uhabits.activities.common.dialogs.MultipleDialogsHandler.Companion.dismissCurrent
|
|
||||||
import org.isoron.uhabits.core.ui.callbacks.OnColorPickedCallback
|
import org.isoron.uhabits.core.ui.callbacks.OnColorPickedCallback
|
||||||
import org.isoron.uhabits.utils.toPaletteColor
|
import org.isoron.uhabits.utils.toPaletteColor
|
||||||
|
|
||||||
@@ -35,10 +32,4 @@ class ColorPickerDialog : ColorPickerDialog() {
|
|||||||
callback.onColorPicked(pc)
|
callback.onColorPicked(pc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
||||||
val dialog = super.onCreateDialog(savedInstanceState)
|
|
||||||
dialog.dismissCurrent()
|
|
||||||
return dialog
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import android.content.Context
|
|||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import org.isoron.uhabits.R
|
import org.isoron.uhabits.R
|
||||||
import org.isoron.uhabits.activities.common.dialogs.MultipleDialogsHandler.Companion.dismissCurrent
|
|
||||||
import org.isoron.uhabits.core.ui.callbacks.OnConfirmedCallback
|
import org.isoron.uhabits.core.ui.callbacks.OnConfirmedCallback
|
||||||
import org.isoron.uhabits.inject.ActivityContext
|
import org.isoron.uhabits.inject.ActivityContext
|
||||||
|
|
||||||
@@ -46,7 +45,5 @@ class ConfirmDeleteDialog(
|
|||||||
BUTTON_NEGATIVE,
|
BUTTON_NEGATIVE,
|
||||||
res.getString(R.string.no)
|
res.getString(R.string.no)
|
||||||
) { dialog: DialogInterface?, which: Int -> }
|
) { dialog: DialogInterface?, which: Int -> }
|
||||||
|
|
||||||
this.dismissCurrent()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import androidx.appcompat.app.AlertDialog
|
|||||||
import androidx.appcompat.app.AppCompatDialogFragment
|
import androidx.appcompat.app.AppCompatDialogFragment
|
||||||
import kotlinx.android.synthetic.main.frequency_picker_dialog.view.*
|
import kotlinx.android.synthetic.main.frequency_picker_dialog.view.*
|
||||||
import org.isoron.uhabits.R
|
import org.isoron.uhabits.R
|
||||||
import org.isoron.uhabits.activities.common.dialogs.MultipleDialogsHandler.Companion.dismissCurrent
|
|
||||||
|
|
||||||
class FrequencyPickerDialog(
|
class FrequencyPickerDialog(
|
||||||
var freqNumerator: Int,
|
var freqNumerator: Int,
|
||||||
@@ -112,12 +111,10 @@ class FrequencyPickerDialog(
|
|||||||
if (hasFocus) check(contentView.xTimesPerYDaysRadioButton)
|
if (hasFocus) check(contentView.xTimesPerYDaysRadioButton)
|
||||||
}
|
}
|
||||||
|
|
||||||
val dialog = AlertDialog.Builder(requireActivity())
|
return AlertDialog.Builder(requireActivity())
|
||||||
.setView(contentView)
|
.setView(contentView)
|
||||||
.setPositiveButton(R.string.save) { _, _ -> onSaveClicked() }
|
.setPositiveButton(R.string.save) { _, _ -> onSaveClicked() }
|
||||||
.create()
|
.create()
|
||||||
dialog.dismissCurrent()
|
|
||||||
return dialog
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addBeforeAfterText(
|
private fun addBeforeAfterText(
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
package org.isoron.uhabits.activities.common.dialogs
|
|
||||||
|
|
||||||
import android.app.Dialog
|
|
||||||
import java.lang.ref.WeakReference
|
|
||||||
|
|
||||||
class MultipleDialogsHandler {
|
|
||||||
companion object {
|
|
||||||
var currentDialog: WeakReference<Dialog> = WeakReference(null)
|
|
||||||
|
|
||||||
fun Dialog.dismissCurrent() {
|
|
||||||
currentDialog.get()?.dismiss()
|
|
||||||
currentDialog = WeakReference(this)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -27,11 +27,11 @@ import android.view.MotionEvent.ACTION_DOWN
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.View.GONE
|
import android.view.View.GONE
|
||||||
import android.view.View.VISIBLE
|
import android.view.View.VISIBLE
|
||||||
import org.isoron.uhabits.activities.common.dialogs.MultipleDialogsHandler.Companion.dismissCurrent
|
|
||||||
import org.isoron.uhabits.core.models.Entry
|
import org.isoron.uhabits.core.models.Entry
|
||||||
import org.isoron.uhabits.core.preferences.Preferences
|
import org.isoron.uhabits.core.preferences.Preferences
|
||||||
import org.isoron.uhabits.databinding.CheckmarkPopupBinding
|
import org.isoron.uhabits.databinding.CheckmarkPopupBinding
|
||||||
import org.isoron.uhabits.utils.dimBehind
|
import org.isoron.uhabits.utils.dimBehind
|
||||||
|
import org.isoron.uhabits.utils.dismissCurrentAndShow
|
||||||
import org.isoron.uhabits.utils.dp
|
import org.isoron.uhabits.utils.dp
|
||||||
import org.isoron.uhabits.utils.requestFocusWithKeyboard
|
import org.isoron.uhabits.utils.requestFocusWithKeyboard
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
@@ -104,8 +104,7 @@ class NumberPopup(
|
|||||||
view.value.requestFocusWithKeyboard()
|
view.value.requestFocusWithKeyboard()
|
||||||
dialog.setCanceledOnTouchOutside(true)
|
dialog.setCanceledOnTouchOutside(true)
|
||||||
dialog.dimBehind()
|
dialog.dimBehind()
|
||||||
dialog.dismissCurrent()
|
dialog.dismissCurrentAndShow()
|
||||||
dialog.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun save() {
|
fun save() {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import android.os.Bundle
|
|||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.appcompat.app.AppCompatDialogFragment
|
import androidx.appcompat.app.AppCompatDialogFragment
|
||||||
import org.isoron.uhabits.R
|
import org.isoron.uhabits.R
|
||||||
import org.isoron.uhabits.activities.common.dialogs.MultipleDialogsHandler.Companion.dismissCurrent
|
|
||||||
import org.isoron.uhabits.core.models.WeekdayList
|
import org.isoron.uhabits.core.models.WeekdayList
|
||||||
import org.isoron.uhabits.core.utils.DateUtils
|
import org.isoron.uhabits.core.utils.DateUtils
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
@@ -75,9 +74,7 @@ class WeekdayPickerDialog :
|
|||||||
android.R.string.cancel
|
android.R.string.cancel
|
||||||
) { _: DialogInterface?, _: Int -> dismiss() }
|
) { _: DialogInterface?, _: Int -> dismiss() }
|
||||||
|
|
||||||
val dialog = builder.create()
|
return builder.create()
|
||||||
dialog.dismissCurrent()
|
|
||||||
return dialog
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setListener(listener: OnWeekdaysPickedListener?) {
|
fun setListener(listener: OnWeekdaysPickedListener?) {
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ import org.isoron.uhabits.R
|
|||||||
import org.isoron.uhabits.activities.AndroidThemeSwitcher
|
import org.isoron.uhabits.activities.AndroidThemeSwitcher
|
||||||
import org.isoron.uhabits.activities.common.dialogs.ColorPickerDialogFactory
|
import org.isoron.uhabits.activities.common.dialogs.ColorPickerDialogFactory
|
||||||
import org.isoron.uhabits.activities.common.dialogs.FrequencyPickerDialog
|
import org.isoron.uhabits.activities.common.dialogs.FrequencyPickerDialog
|
||||||
import org.isoron.uhabits.activities.common.dialogs.MultipleDialogsHandler.Companion.dismissCurrent
|
|
||||||
import org.isoron.uhabits.activities.common.dialogs.WeekdayPickerDialog
|
import org.isoron.uhabits.activities.common.dialogs.WeekdayPickerDialog
|
||||||
import org.isoron.uhabits.core.commands.CommandRunner
|
import org.isoron.uhabits.core.commands.CommandRunner
|
||||||
import org.isoron.uhabits.core.commands.CreateHabitCommand
|
import org.isoron.uhabits.core.commands.CreateHabitCommand
|
||||||
@@ -60,6 +59,7 @@ import org.isoron.uhabits.core.models.Reminder
|
|||||||
import org.isoron.uhabits.core.models.WeekdayList
|
import org.isoron.uhabits.core.models.WeekdayList
|
||||||
import org.isoron.uhabits.databinding.ActivityEditHabitBinding
|
import org.isoron.uhabits.databinding.ActivityEditHabitBinding
|
||||||
import org.isoron.uhabits.utils.ColorUtils
|
import org.isoron.uhabits.utils.ColorUtils
|
||||||
|
import org.isoron.uhabits.utils.dismissCurrentAndShow
|
||||||
import org.isoron.uhabits.utils.formatTime
|
import org.isoron.uhabits.utils.formatTime
|
||||||
import org.isoron.uhabits.utils.toFormattedString
|
import org.isoron.uhabits.utils.toFormattedString
|
||||||
|
|
||||||
@@ -157,23 +157,23 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
val colorPickerDialogFactory = ColorPickerDialogFactory(this)
|
val colorPickerDialogFactory = ColorPickerDialogFactory(this)
|
||||||
binding.colorButton.setOnClickListener {
|
binding.colorButton.setOnClickListener {
|
||||||
val dialog = colorPickerDialogFactory.create(color, themeSwitcher.currentTheme)
|
val picker = colorPickerDialogFactory.create(color, themeSwitcher.currentTheme)
|
||||||
dialog.setListener { paletteColor ->
|
picker.setListener { paletteColor ->
|
||||||
this.color = paletteColor
|
this.color = paletteColor
|
||||||
updateColors()
|
updateColors()
|
||||||
}
|
}
|
||||||
dialog.show(supportFragmentManager, "colorPicker")
|
picker.dismissCurrentAndShow(supportFragmentManager, "colorPicker")
|
||||||
}
|
}
|
||||||
|
|
||||||
populateFrequency()
|
populateFrequency()
|
||||||
binding.booleanFrequencyPicker.setOnClickListener {
|
binding.booleanFrequencyPicker.setOnClickListener {
|
||||||
val dialog = FrequencyPickerDialog(freqNum, freqDen)
|
val picker = FrequencyPickerDialog(freqNum, freqDen)
|
||||||
dialog.onFrequencyPicked = { num, den ->
|
picker.onFrequencyPicked = { num, den ->
|
||||||
freqNum = num
|
freqNum = num
|
||||||
freqDen = den
|
freqDen = den
|
||||||
populateFrequency()
|
populateFrequency()
|
||||||
}
|
}
|
||||||
dialog.show(supportFragmentManager, "frequencyPicker")
|
picker.dismissCurrentAndShow(supportFragmentManager, "frequencyPicker")
|
||||||
}
|
}
|
||||||
|
|
||||||
populateTargetType()
|
populateTargetType()
|
||||||
@@ -191,8 +191,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
}
|
}
|
||||||
val dialog = builder.create()
|
val dialog = builder.create()
|
||||||
dialog.dismissCurrent()
|
dialog.dismissCurrentAndShow()
|
||||||
dialog.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.numericalFrequencyPicker.setOnClickListener {
|
binding.numericalFrequencyPicker.setOnClickListener {
|
||||||
@@ -238,7 +237,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
is24HourMode,
|
is24HourMode,
|
||||||
androidColor
|
androidColor
|
||||||
)
|
)
|
||||||
dialog.show(supportFragmentManager, "timePicker")
|
dialog.dismissCurrentAndShow(supportFragmentManager, "timePicker")
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.reminderDatePicker.setOnClickListener {
|
binding.reminderDatePicker.setOnClickListener {
|
||||||
@@ -250,7 +249,7 @@ class EditHabitActivity : AppCompatActivity() {
|
|||||||
populateReminder()
|
populateReminder()
|
||||||
}
|
}
|
||||||
dialog.setSelectedDays(reminderDays)
|
dialog.setSelectedDays(reminderDays)
|
||||||
dialog.show(supportFragmentManager, "dayPicker")
|
dialog.dismissCurrentAndShow(supportFragmentManager, "dayPicker")
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.buttonSave.setOnClickListener {
|
binding.buttonSave.setOnClickListener {
|
||||||
|
|||||||
@@ -62,12 +62,7 @@ import org.isoron.uhabits.intents.IntentFactory
|
|||||||
import org.isoron.uhabits.tasks.ExportDBTaskFactory
|
import org.isoron.uhabits.tasks.ExportDBTaskFactory
|
||||||
import org.isoron.uhabits.tasks.ImportDataTask
|
import org.isoron.uhabits.tasks.ImportDataTask
|
||||||
import org.isoron.uhabits.tasks.ImportDataTaskFactory
|
import org.isoron.uhabits.tasks.ImportDataTaskFactory
|
||||||
import org.isoron.uhabits.utils.copyTo
|
import org.isoron.uhabits.utils.*
|
||||||
import org.isoron.uhabits.utils.currentTheme
|
|
||||||
import org.isoron.uhabits.utils.restartWithFade
|
|
||||||
import org.isoron.uhabits.utils.showMessage
|
|
||||||
import org.isoron.uhabits.utils.showSendEmailScreen
|
|
||||||
import org.isoron.uhabits.utils.showSendFileScreen
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -163,7 +158,7 @@ class ListHabitsScreen
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun showDeleteConfirmationScreen(callback: OnConfirmedCallback, quantity: Int) {
|
override fun showDeleteConfirmationScreen(callback: OnConfirmedCallback, quantity: Int) {
|
||||||
ConfirmDeleteDialog(activity, callback, quantity).show()
|
ConfirmDeleteDialog(activity, callback, quantity).dismissCurrentAndShow()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun showEditHabitsScreen(selected: List<Habit>) {
|
override fun showEditHabitsScreen(selected: List<Habit>) {
|
||||||
@@ -224,7 +219,8 @@ class ListHabitsScreen
|
|||||||
override fun showColorPicker(defaultColor: PaletteColor, callback: OnColorPickedCallback) {
|
override fun showColorPicker(defaultColor: PaletteColor, callback: OnColorPickedCallback) {
|
||||||
val picker = colorPickerFactory.create(defaultColor, themeSwitcher.currentTheme!!)
|
val picker = colorPickerFactory.create(defaultColor, themeSwitcher.currentTheme!!)
|
||||||
picker.setListener(callback)
|
picker.setListener(callback)
|
||||||
picker.show(activity.supportFragmentManager, "picker")
|
//picker.show(activity.supportFragmentManager, "picker")
|
||||||
|
picker.dialog?.dismissCurrentAndShow()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun showNumberPopup(
|
override fun showNumberPopup(
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ import org.isoron.uhabits.core.ui.screens.habits.show.ShowHabitPresenter
|
|||||||
import org.isoron.uhabits.core.ui.views.OnDateClickedListener
|
import org.isoron.uhabits.core.ui.views.OnDateClickedListener
|
||||||
import org.isoron.uhabits.intents.IntentFactory
|
import org.isoron.uhabits.intents.IntentFactory
|
||||||
import org.isoron.uhabits.utils.currentTheme
|
import org.isoron.uhabits.utils.currentTheme
|
||||||
|
import org.isoron.uhabits.utils.dismissCurrentAndShow
|
||||||
import org.isoron.uhabits.utils.showMessage
|
import org.isoron.uhabits.utils.showMessage
|
||||||
import org.isoron.uhabits.utils.showSendFileScreen
|
import org.isoron.uhabits.utils.showSendFileScreen
|
||||||
import org.isoron.uhabits.widgets.WidgetUpdater
|
import org.isoron.uhabits.widgets.WidgetUpdater
|
||||||
@@ -228,7 +229,7 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun showDeleteConfirmationScreen(callback: OnConfirmedCallback) {
|
override fun showDeleteConfirmationScreen(callback: OnConfirmedCallback) {
|
||||||
ConfirmDeleteDialog(this@ShowHabitActivity, callback, 1).show()
|
ConfirmDeleteDialog(this@ShowHabitActivity, callback, 1).dismissCurrentAndShow()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun close() {
|
override fun close() {
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package org.isoron.uhabits.utils
|
||||||
|
|
||||||
|
import android.app.Dialog
|
||||||
|
import androidx.fragment.app.DialogFragment
|
||||||
|
import androidx.fragment.app.FragmentManager
|
||||||
|
import java.lang.ref.WeakReference
|
||||||
|
|
||||||
|
var currentDialog: WeakReference<Dialog> = WeakReference(null)
|
||||||
|
|
||||||
|
fun Dialog.dismissCurrentAndShow() {
|
||||||
|
currentDialog.get()?.dismiss()
|
||||||
|
currentDialog = WeakReference(this)
|
||||||
|
show()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun DialogFragment.dismissCurrentAndShow(fragmentManager: FragmentManager, tag: String) {
|
||||||
|
currentDialog.get()?.dismiss()
|
||||||
|
show(fragmentManager, tag)
|
||||||
|
fragmentManager.executePendingTransactions()
|
||||||
|
currentDialog = WeakReference(this.dialog)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user