kopia lustrzana https://github.com/ryukoposting/Signal-Android
rodzic
89b918fbd2
commit
50b37e0402
|
@ -51,8 +51,15 @@ data class NotificationProfileSchedule(
|
|||
return LocalTime.of(start / 100, start % 100)
|
||||
}
|
||||
|
||||
fun startDateTime(now: LocalDateTime): LocalDateTime {
|
||||
return start.toLocalDateTime(now)
|
||||
fun startDateTime(localNow: LocalDateTime): LocalDateTime {
|
||||
val localStart: LocalDateTime = start.toLocalDateTime(localNow)
|
||||
val localEnd: LocalDateTime = end.toLocalDateTime(localNow)
|
||||
|
||||
return if (end < start && (daysEnabled.contains(localStart.dayOfWeek.minus(1)) && localNow.isBetween(localStart.minusDays(1), localEnd))) {
|
||||
localStart.minusDays(1)
|
||||
} else {
|
||||
localStart
|
||||
}
|
||||
}
|
||||
|
||||
fun endTime(): LocalTime {
|
||||
|
|
|
@ -151,4 +151,15 @@ class NotificationProfilesTest {
|
|||
val profiles = listOf(first.copy(schedule = schedule))
|
||||
assertThat("active profile is first", NotificationProfiles.getActiveProfile(profiles, monday830am.toMillis(ZoneOffset.UTC), utc), `is`(profiles[0]))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `when profile is manually disabled and schedule is on but with start after end and now is before end then return null`() {
|
||||
signalStore.dataSet.putLong(NotificationProfileValues.KEY_MANUALLY_ENABLED_PROFILE, 0)
|
||||
signalStore.dataSet.putLong(NotificationProfileValues.KEY_MANUALLY_ENABLED_UNTIL, 0)
|
||||
signalStore.dataSet.putLong(NotificationProfileValues.KEY_MANUALLY_DISABLED_AT, sunday830am.toMillis(ZoneOffset.UTC))
|
||||
|
||||
val schedule = NotificationProfileSchedule(id = 3L, enabled = true, start = 2200, end = 1000, daysEnabled = DayOfWeek.values().toSet())
|
||||
val profiles = listOf(first.copy(schedule = schedule))
|
||||
assertThat("active profile is null", NotificationProfiles.getActiveProfile(profiles, sunday9am.toMillis(ZoneOffset.UTC), utc), nullValue())
|
||||
}
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue