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:
@@ -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()) {
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user