diff --git a/app/src/main/java/com/futsch1/medtimer/helpers/Interval.kt b/app/src/main/java/com/futsch1/medtimer/helpers/Interval.kt index c8346cc6f..5e31e3315 100644 --- a/app/src/main/java/com/futsch1/medtimer/helpers/Interval.kt +++ b/app/src/main/java/com/futsch1/medtimer/helpers/Interval.kt @@ -5,13 +5,14 @@ import com.futsch1.medtimer.R import com.futsch1.medtimer.model.ReminderTime enum class IntervalUnit { - MINUTES, HOURS, DAYS + MINUTES, HOURS, DAYS, WEEKS } private fun getMinutes(unit: IntervalUnit, value: Int) = when (unit) { IntervalUnit.MINUTES -> value IntervalUnit.HOURS -> value * 60 IntervalUnit.DAYS -> value * 60 * 24 + IntervalUnit.WEEKS -> value * 60 * 24 * 7 } class Interval(var minutesValue: Int, var maxMinutesValue: Int = MAX_INTERVAL_MINUTES) { @@ -24,6 +25,7 @@ class Interval(var minutesValue: Int, var maxMinutesValue: Int = MAX_INTERVAL_MI fun getUnit(): IntervalUnit { return when { + minutesValue % (60 * 24 * 7) == 0 -> IntervalUnit.WEEKS minutesValue % (60 * 24) == 0 -> IntervalUnit.DAYS minutesValue % 60 == 0 -> IntervalUnit.HOURS else -> IntervalUnit.MINUTES @@ -35,6 +37,7 @@ class Interval(var minutesValue: Int, var maxMinutesValue: Int = MAX_INTERVAL_MI IntervalUnit.MINUTES -> minutesValue IntervalUnit.HOURS -> minutesValue / 60 IntervalUnit.DAYS -> minutesValue / (60 * 24) + IntervalUnit.WEEKS -> minutesValue / (60 * 24 * 7) } } @@ -43,6 +46,7 @@ class Interval(var minutesValue: Int, var maxMinutesValue: Int = MAX_INTERVAL_MI IntervalUnit.MINUTES -> minutesValue IntervalUnit.HOURS -> minutesValue / 60 IntervalUnit.DAYS -> minutesValue / (60 * 24) + IntervalUnit.WEEKS -> minutesValue / (60 * 24 * 7) } } @@ -63,11 +67,12 @@ class Interval(var minutesValue: Int, var maxMinutesValue: Int = MAX_INTERVAL_MI IntervalUnit.MINUTES -> R.plurals.minutes IntervalUnit.HOURS -> R.plurals.hours IntervalUnit.DAYS -> R.plurals.days + IntervalUnit.WEEKS -> R.plurals.weeks } return "$value ${context.resources.getQuantityString(textId, value)}" } companion object { - const val MAX_INTERVAL_MINUTES = 31 * 60 * 24 + const val MAX_INTERVAL_MINUTES = 365 * 60 * 24 } } diff --git a/app/src/main/java/com/futsch1/medtimer/medicine/editors/IntervalEditor.kt b/app/src/main/java/com/futsch1/medtimer/medicine/editors/IntervalEditor.kt index 64a996238..27c65bb8f 100644 --- a/app/src/main/java/com/futsch1/medtimer/medicine/editors/IntervalEditor.kt +++ b/app/src/main/java/com/futsch1/medtimer/medicine/editors/IntervalEditor.kt @@ -56,6 +56,7 @@ class IntervalEditor( IntervalUnit.MINUTES -> timeEditLayout.context.getString(R.string.minutes_string) IntervalUnit.HOURS -> timeEditLayout.context.getString(R.string.hours_string) IntervalUnit.DAYS -> timeEditLayout.context.getString(R.string.days_string) + IntervalUnit.WEEKS -> timeEditLayout.context.getString(R.string.weeks_string) } } @@ -83,6 +84,7 @@ class IntervalEditor( private fun checkedIntervalUnit(checkedId: Int) = when (checkedId) { intervalUnitToggle.getChildAt(0).id -> IntervalUnit.MINUTES intervalUnitToggle.getChildAt(1).id -> IntervalUnit.HOURS - else -> IntervalUnit.DAYS + intervalUnitToggle.getChildAt(2).id -> IntervalUnit.DAYS + else -> IntervalUnit.WEEKS } } diff --git a/app/src/main/res/layout/dialog_new_reminder.xml b/app/src/main/res/layout/dialog_new_reminder.xml index eb8f97cfd..c85ba22f3 100644 --- a/app/src/main/res/layout/dialog_new_reminder.xml +++ b/app/src/main/res/layout/dialog_new_reminder.xml @@ -69,7 +69,7 @@