diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt
index 58db019a3..404c18e9c 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/NumberPickerFactory.kt
@@ -48,6 +48,7 @@ class NumberPickerFactory
value: Double,
unit: String,
notes: String,
+ dateString: String,
callback: ListHabitsBehavior.NumberPickerCallback
): AlertDialog {
val inflater = LayoutInflater.from(context)
@@ -82,7 +83,7 @@ class NumberPickerFactory
etNotes.setText(notes)
val dialog = AlertDialog.Builder(context)
.setView(view)
- .setTitle(R.string.change_value)
+ .setTitle(dateString)
.setPositiveButton(R.string.save) { _, _ ->
picker.clearFocus()
val v = picker.value + 0.01 * picker2.value
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt
index ea2ad85b0..f9a9bfef5 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt
@@ -228,9 +228,10 @@ class ListHabitsScreen
value: Double,
unit: String,
notes: String,
+ dateString: String,
callback: ListHabitsBehavior.NumberPickerCallback
) {
- numberPickerFactory.create(value, unit, notes, callback).show()
+ numberPickerFactory.create(value, unit, notes, dateString, callback).show()
}
override fun showCheckmarkDialog(
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt
index 9dd01b521..e42cd57bf 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt
@@ -166,9 +166,10 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener {
value: Double,
unit: String,
notes: String,
+ dateString: String,
callback: ListHabitsBehavior.NumberPickerCallback,
) {
- NumberPickerFactory(this@ShowHabitActivity).create(value, unit, notes, callback).show()
+ NumberPickerFactory(this@ShowHabitActivity).create(value, unit, notes, dateString, callback).show()
}
override fun showCheckmarkDialog(
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/NumericalCheckmarkWidgetActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/NumericalCheckmarkWidgetActivity.kt
index cdc516e9a..c557ed942 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/NumericalCheckmarkWidgetActivity.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/NumericalCheckmarkWidgetActivity.kt
@@ -80,6 +80,7 @@ class NumericalCheckmarkWidgetActivity : Activity(), ListHabitsBehavior.NumberPi
entry.value / 1000.0,
data.habit.unit,
entry.notes,
+ today.toDialogDateString(),
this
).show()
}
diff --git a/uhabits-android/src/main/res/drawable/dialog_bg_input_box.xml b/uhabits-android/src/main/res/drawable/dialog_bg_input_box.xml
new file mode 100644
index 000000000..0f2a651a7
--- /dev/null
+++ b/uhabits-android/src/main/res/drawable/dialog_bg_input_box.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uhabits-android/src/main/res/layout/number_picker_dialog.xml b/uhabits-android/src/main/res/layout/number_picker_dialog.xml
index 8fc33e764..0bfa7df54 100644
--- a/uhabits-android/src/main/res/layout/number_picker_dialog.xml
+++ b/uhabits-android/src/main/res/layout/number_picker_dialog.xml
@@ -19,63 +19,95 @@
-->
+ android:orientation="vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="12dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp">
-
-
-
-
-
-
-
-
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:padding="5dp"
+ android:baselineAligned="false">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+ android:orientation="horizontal"
+ android:padding="5dp"
+ android:baselineAligned="false">
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uhabits-android/src/main/res/values/attrs.xml b/uhabits-android/src/main/res/values/attrs.xml
index 081878e5b..b00eaf69b 100644
--- a/uhabits-android/src/main/res/values/attrs.xml
+++ b/uhabits-android/src/main/res/values/attrs.xml
@@ -43,6 +43,7 @@
+
diff --git a/uhabits-android/src/main/res/values/strings.xml b/uhabits-android/src/main/res/values/strings.xml
index c908816c1..6aeb30eb7 100644
--- a/uhabits-android/src/main/res/values/strings.xml
+++ b/uhabits-android/src/main/res/values/strings.xml
@@ -181,7 +181,7 @@
By status
Export
Press-and-hold to change the value
- Change value
+ Value
Calendar
Unit
Target Type
diff --git a/uhabits-android/src/main/res/values/styles.xml b/uhabits-android/src/main/res/values/styles.xml
index 0a3e9da10..46d40c46c 100644
--- a/uhabits-android/src/main/res/values/styles.xml
+++ b/uhabits-android/src/main/res/values/styles.xml
@@ -63,6 +63,7 @@
- @color/grey_200
- @color/grey_800
- false
+ - @color/white
+
+
+
+
+
diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Timestamp.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Timestamp.kt
index feb118ce5..2233237c0 100644
--- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Timestamp.kt
+++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Timestamp.kt
@@ -20,6 +20,7 @@ package org.isoron.uhabits.core.models
import org.isoron.platform.time.LocalDate
import org.isoron.uhabits.core.utils.DateFormats.Companion.getCSVDateFormat
+import org.isoron.uhabits.core.utils.DateFormats.Companion.getDialogDateFormat
import org.isoron.uhabits.core.utils.DateUtils
import org.isoron.uhabits.core.utils.DateUtils.Companion.getStartOfTodayCalendar
import org.isoron.uhabits.core.utils.DateUtils.Companion.truncate
@@ -81,6 +82,10 @@ data class Timestamp(var unixTime: Long) : Comparable {
return day
}
+ fun toDialogDateString(): String {
+ return getDialogDateFormat().format(Date(unixTime))
+ }
+
override fun toString(): String {
return getCSVDateFormat().format(Date(unixTime))
}
diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt
index 9139da08b..124f17445 100644
--- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt
+++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt
@@ -54,7 +54,8 @@ open class ListHabitsBehavior @Inject constructor(
screen.showNumberPicker(
oldValue / 1000,
habit.unit,
- entry.notes
+ entry.notes,
+ timestamp.toDialogDateString(),
) { newValue: Double, newNotes: String, ->
val value = (newValue * 1000).roundToInt()
commandRunner.run(CreateRepetitionCommand(habitList, habit, timestamp, value, newNotes))
@@ -159,6 +160,7 @@ open class ListHabitsBehavior @Inject constructor(
value: Double,
unit: String,
notes: String,
+ dateString: String,
callback: NumberPickerCallback
)
fun showCheckmarkDialog(
diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt
index ae738f932..5e71c4590 100644
--- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt
+++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt
@@ -110,7 +110,8 @@ class HistoryCardPresenter(
screen.showNumberPicker(
oldValue / 1000.0,
habit.unit,
- entry.notes
+ entry.notes,
+ timestamp.toDialogDateString(),
) { newValue: Double, newNotes: String ->
val thousands = (newValue * 1000).roundToInt()
commandRunner.run(
@@ -195,6 +196,7 @@ class HistoryCardPresenter(
value: Double,
unit: String,
notes: String,
+ dateString: String,
callback: ListHabitsBehavior.NumberPickerCallback,
)
fun showCheckmarkDialog(
diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt
index fc18d5374..8b7b4253b 100644
--- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt
+++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateFormats.kt
@@ -41,5 +41,8 @@ class DateFormats {
@JvmStatic fun getCSVDateFormat(): SimpleDateFormat =
fromSkeleton("yyyy-MM-dd", Locale.US)
+
+ @JvmStatic fun getDialogDateFormat(): SimpleDateFormat =
+ fromSkeleton("MMM dd, yyyy", Locale.US)
}
}
diff --git a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt
index df58affa6..8192583ad 100644
--- a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt
+++ b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehaviorTest.kt
@@ -79,7 +79,7 @@ class ListHabitsBehaviorTest : BaseUnitTest() {
@Test
fun testOnEdit() {
behavior.onEdit(habit2, getToday())
- verify(screen).showNumberPicker(eq(0.1), eq("miles"), eq(""), picker.capture())
+ verify(screen).showNumberPicker(eq(0.1), eq("miles"), eq(""), eq("Jan 25, 2015"), picker.capture())
picker.lastValue.onNumberPicked(100.0, "")
val today = getTodayWithOffset()
assertThat(habit2.computedEntries.get(today).value, equalTo(100000))