mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 01:08:50 -06:00
Implement NumberPopup
This commit is contained in:
@@ -53,14 +53,8 @@ open class ListHabitsBehavior @Inject constructor(
|
||||
fun onEdit(location: ScreenLocation, habit: Habit, timestamp: Timestamp?) {
|
||||
val entry = habit.computedEntries.get(timestamp!!)
|
||||
if (habit.type == HabitType.NUMERICAL) {
|
||||
val oldValue = entry.value.toDouble()
|
||||
screen.showNumberPicker(
|
||||
oldValue / 1000,
|
||||
habit.unit,
|
||||
entry.notes,
|
||||
timestamp.toDialogDateString(),
|
||||
habit.frequency
|
||||
) { newValue: Double, newNotes: String, ->
|
||||
val oldValue = entry.value.toDouble() / 1000
|
||||
screen.showNumberPopup(oldValue, entry.notes, location) { newValue: Double, newNotes: String ->
|
||||
val value = (newValue * 1000).roundToInt()
|
||||
commandRunner.run(CreateRepetitionCommand(habitList, habit, timestamp, value, newNotes))
|
||||
}
|
||||
@@ -170,6 +164,12 @@ open class ListHabitsBehavior @Inject constructor(
|
||||
frequency: Frequency,
|
||||
callback: NumberPickerCallback
|
||||
)
|
||||
fun showNumberPopup(
|
||||
value: Double,
|
||||
notes: String,
|
||||
location: ScreenLocation,
|
||||
callback: NumberPickerCallback
|
||||
)
|
||||
fun showCheckmarkPopup(
|
||||
selectedValue: Int,
|
||||
notes: String,
|
||||
|
||||
@@ -34,7 +34,6 @@ import org.hamcrest.core.IsEqual.equalTo
|
||||
import org.isoron.platform.gui.ScreenLocation
|
||||
import org.isoron.uhabits.core.BaseUnitTest
|
||||
import org.isoron.uhabits.core.models.Entry
|
||||
import org.isoron.uhabits.core.models.Frequency
|
||||
import org.isoron.uhabits.core.models.Habit
|
||||
import org.isoron.uhabits.core.preferences.Preferences
|
||||
import org.isoron.uhabits.core.utils.DateUtils.Companion.getToday
|
||||
@@ -81,12 +80,10 @@ class ListHabitsBehaviorTest : BaseUnitTest() {
|
||||
@Test
|
||||
fun testOnEdit() {
|
||||
behavior.onEdit(ScreenLocation(0.0, 0.0), habit2, getToday())
|
||||
verify(screen).showNumberPicker(
|
||||
verify(screen).showNumberPopup(
|
||||
eq(0.1),
|
||||
eq("miles"),
|
||||
eq(""),
|
||||
eq("Jan 25, 2015"),
|
||||
eq(Frequency.DAILY),
|
||||
any(),
|
||||
picker.capture()
|
||||
)
|
||||
picker.lastValue.onNumberPicked(100.0, "")
|
||||
|
||||
Reference in New Issue
Block a user