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

Commit b66fa5ec authored by Matías Hernández's avatar Matías Hernández Committed by Android (Google) Code Review
Browse files

Merge "Show expected end of DND on tile subtitle, if available" into main

parents 6164ab95 b641913f
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -114,14 +114,19 @@ class FakeZenModeRepository : ZenModeRepository {
        activeModesDurations.remove(id)
    }

    // Update the active state while maintaining the mode's position in the list
    /** Updates a [ZenMode]'s active state, preserving its position in the list. */
    private fun updateModeActiveState(id: String, isActive: Boolean) {
        updateMode(id) { TestModeBuilder(it).setActive(isActive).build() }
    }

    /** Updates a [ZenMode], preserving its position in the list. */
    fun updateMode(id: String, update: (original: ZenMode) -> ZenMode) {
        val modes = mutableModesFlow.value.toMutableList()
        val index = modes.indexOfFirst { it.id == id }
        if (index < 0) {
            throw IllegalArgumentException("mode $id not found")
        }
        modes[index] = TestModeBuilder(modes[index]).setActive(isActive).build()
        modes[index] = update(modes[index])
        mutableModesFlow.value = modes
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -184,12 +184,12 @@ class ModesDndTileTest : SysuiTestCase() {
                    state = Tile.STATE_INACTIVE
                    secondaryLabel = "Old secondary label"
                }
            val model = ModesDndTileModel(isActivated = true)
            val model = ModesDndTileModel(isActivated = true, extraStatus = "Until 14:30")

            underTest.handleUpdateState(tileState, model)

            assertThat(tileState.state).isEqualTo(Tile.STATE_ACTIVE)
            assertThat(tileState.secondaryLabel).isEqualTo("On")
            assertThat(tileState.secondaryLabel).isEqualTo("Until 14:30")
        }

    @Test
@@ -206,6 +206,6 @@ class ModesDndTileTest : SysuiTestCase() {
            underTest.handleUpdateState(tileState, null)

            assertThat(tileState.state).isEqualTo(Tile.STATE_ACTIVE)
            assertThat(tileState.secondaryLabel).isEqualTo("On")
            assertThat(tileState.secondaryLabel).isEqualTo(null) // Tile will use default On text
        }
}
+4 −4
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ class ModesDndTileUserActionInteractorTest : SysuiTestCase() {
            zenModeRepository.activateMode(MANUAL_DND)
            assertThat(dndMode?.isActive).isTrue()

            underTest.handleInput(QSTileInputTestKtx.click(data = ModesDndTileModel(true)))
            underTest.handleInput(QSTileInputTestKtx.click(data = ModesDndTileModel(true, null)))

            assertThat(dndMode?.isActive).isFalse()
        }
@@ -90,7 +90,7 @@ class ModesDndTileUserActionInteractorTest : SysuiTestCase() {
            val dndMode by collectLastValue(zenModeInteractor.dndMode)
            assertThat(dndMode?.isActive).isFalse()

            underTest.handleInput(QSTileInputTestKtx.click(data = ModesDndTileModel(false)))
            underTest.handleInput(QSTileInputTestKtx.click(data = ModesDndTileModel(false, null)))

            assertThat(dndMode?.isActive).isTrue()
        }
@@ -101,7 +101,7 @@ class ModesDndTileUserActionInteractorTest : SysuiTestCase() {
            zenModeRepository.activateMode(MANUAL_DND)
            runCurrent()

            underTest.handleInput(QSTileInputTestKtx.longClick(ModesDndTileModel(true)))
            underTest.handleInput(QSTileInputTestKtx.longClick(ModesDndTileModel(true, null)))

            QSTileIntentUserInputHandlerSubject.assertThat(inputHandler).handledOneIntentInput {
                assertThat(it.intent.`package`).isEqualTo(SETTINGS_PACKAGE)
@@ -118,7 +118,7 @@ class ModesDndTileUserActionInteractorTest : SysuiTestCase() {
            zenModeRepository.deactivateMode(MANUAL_DND)
            runCurrent()

            underTest.handleInput(QSTileInputTestKtx.longClick(ModesDndTileModel(false)))
            underTest.handleInput(QSTileInputTestKtx.longClick(ModesDndTileModel(false, null)))

            QSTileIntentUserInputHandlerSubject.assertThat(inputHandler).handledOneIntentInput {
                assertThat(it.intent.`package`).isEqualTo(SETTINGS_PACKAGE)
+17 −4
Original line number Diff line number Diff line
@@ -58,23 +58,36 @@ class ModesDndTileMapperTest : SysuiTestCase() {

    @Test
    fun map_inactiveState() {
        val model = ModesDndTileModel(isActivated = false)
        val model = ModesDndTileModel(isActivated = false, extraStatus = null)

        val state = underTest.map(config, model)

        assertThat(state.activationState).isEqualTo(QSTileState.ActivationState.INACTIVE)
        assertThat((state.icon as Icon.Loaded).res).isEqualTo(R.drawable.qs_dnd_icon_off)
        assertThat(state.secondaryLabel).isEqualTo("Off")
        assertThat(state.secondaryLabel).isNull() // Will use default label for activationState
    }

    @Test
    fun map_activeState() {
        val model = ModesDndTileModel(isActivated = true)
        val model = ModesDndTileModel(isActivated = true, extraStatus = null)

        val state = underTest.map(config, model)

        assertThat(state.activationState).isEqualTo(QSTileState.ActivationState.ACTIVE)
        assertThat((state.icon as Icon.Loaded).res).isEqualTo(R.drawable.qs_dnd_icon_on)
        assertThat(state.secondaryLabel).isEqualTo("On")
        assertThat(state.secondaryLabel).isNull() // Will use default label for activationState
    }

    @Test
    fun map_activeStateWithExtraStatus() {
        val model = ModesDndTileModel(isActivated = true, extraStatus = "Until 14:00")

        val state = underTest.map(config, model)

        assertThat(state.activationState).isEqualTo(QSTileState.ActivationState.ACTIVE)
        assertThat((state.icon as Icon.Loaded).res).isEqualTo(R.drawable.qs_dnd_icon_on)
        assertThat(state.secondaryLabel).isEqualTo("Until 14:00")
        assertThat(state.contentDescription).isEqualTo("Do Not Disturb")
        assertThat(state.stateDescription).isEqualTo("Until 14:00")
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -121,6 +121,7 @@ constructor(
            label = tileLabel
            secondaryLabel = tileState.secondaryLabel
            contentDescription = tileState.contentDescription
            stateDescription = tileState.stateDescription
            expandedAccessibilityClassName = tileState.expandedAccessibilityClassName
        }
    }
Loading