Select the default clock if current clock id was not found

Bug: 295371293
Test: Manually tested invalid clock ids
Change-Id: I98d96bf72cbe09895b644a5a53f86499bf74bfab
This commit is contained in:
Hawkwood Glazier
2023-08-17 15:47:48 +00:00
parent 9c708647d4
commit 0e0b36e2e9
2 changed files with 31 additions and 0 deletions

View File

@@ -409,6 +409,18 @@ open class ClockRegistry(
scope.launch(bgDispatcher) { mutateSetting { it.copy(seedColor = value) } }
}
// Returns currentClockId if clock is connected, otherwise DEFAULT_CLOCK_ID. Since this
// is dependent on which clocks are connected, it may change when a clock is installed or
// removed from the device (unlike currentClockId).
// TODO: Merge w/ CurrentClockId when we convert to a flow. We shouldn't need both behaviors.
val activeClockId: String
get() {
if (!availableClocks.containsKey(currentClockId)) {
return DEFAULT_CLOCK_ID
}
return currentClockId
}
init {
// Register default clock designs
for (clock in defaultClockProvider.getClocks()) {

View File

@@ -226,6 +226,25 @@ class ClockRegistryTest : SysuiTestCase() {
assertEquals(mockClock, clock)
}
@Test
fun activeClockId_changeAfterPluginConnected() {
val plugin1 = FakeClockPlugin()
.addClock("clock_1", "clock 1")
.addClock("clock_2", "clock 2")
val plugin2 = FakeClockPlugin()
.addClock("clock_3", "clock 3", { mockClock })
.addClock("clock_4", "clock 4")
registry.applySettings(ClockSettings("clock_3", null))
pluginListener.onPluginLoaded(plugin1, mockContext, mockPluginLifecycle)
assertEquals(DEFAULT_CLOCK_ID, registry.activeClockId)
pluginListener.onPluginLoaded(plugin2, mockContext, mockPluginLifecycle)
assertEquals("clock_3", registry.activeClockId)
}
@Test
fun createDefaultClock_pluginDisconnected() {
val plugin1 = FakeClockPlugin()