Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6194a276 authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

Select the default clock if current clock id was not found

Bug: 295371293
Test: Manually tested invalid clock ids
Change-Id: I98d96bf72cbe09895b644a5a53f86499bf74bfab
Merged-In: I98d96bf72cbe09895b644a5a53f86499bf74bfab
parent 7db9c570
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -401,6 +401,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()) {
+19 −0
Original line number Diff line number Diff line
@@ -223,6 +223,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()