feat(core-reminders): ReminderOverride.minutesOrEmpty
This commit is contained in:
1 parent
d4970ba2bc
commit
1cc7f8f71d
3 files changed
+12
No files matched your search
@@ -57,6 +57,8 @@ are no binary releases; "version" tracks the shared `version` in the root build
|
||||
- **`core-locale`** — `relativeTimeAgo(epochMillis, nowMillis, minResolution)`,
|
||||
the platform-localised "5 minutes ago" Calendula's backup and special-dates
|
||||
status lines build through `DateUtils.getRelativeTimeSpanString`.
|
||||
- **`core-reminders`** — `ReminderOverride.minutesOrEmpty()`, the lead times of
|
||||
a `Minutes` override and empty for `Inherit`/`None`.
|
||||
|
||||
- **`identity`** — a pure-black (AMOLED) dark theme. `ColorScheme.toPureBlack()`
|
||||
sets `background`, `surface`, `surfaceDim` and `surfaceContainerLowest` to
|
||||
|
||||
@@ -19,6 +19,9 @@ sealed interface ReminderOverride {
|
||||
data class Minutes(val minutes: List<Int>) : ReminderOverride
|
||||
}
|
||||
|
||||
/** The lead times of a [ReminderOverride.Minutes]; empty for [ReminderOverride.Inherit] and [ReminderOverride.None]. */
|
||||
fun ReminderOverride.minutesOrEmpty(): List<Int> = (this as? ReminderOverride.Minutes)?.minutes.orEmpty()
|
||||
|
||||
/** Distinct, ascending lead times — the canonical form stored and resolved. */
|
||||
fun List<Int>.normalizeReminders(): List<Int> = distinct().sorted()
|
||||
|
||||
|
||||
@@ -64,4 +64,11 @@ class ReminderModelTest {
|
||||
assertThat(reminderOverrideForMinutes(emptyList(), allowInherit = false))
|
||||
.isEqualTo(ReminderOverride.None)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `minutesOrEmpty reads the lead times and is empty otherwise`() {
|
||||
assertThat(ReminderOverride.Minutes(listOf(10, 60)).minutesOrEmpty()).containsExactly(10, 60).inOrder()
|
||||
assertThat(ReminderOverride.Inherit.minutesOrEmpty()).isEmpty()
|
||||
assertThat(ReminderOverride.None.minutesOrEmpty()).isEmpty()
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user