Loading packages/SettingsLib/src/com/android/settingslib/notification/data/repository/FakeZenModeRepository.kt +7 −2 Original line number Diff line number Diff line Loading @@ -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 } } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/ModesDndTileTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 } } packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/modes/domain/interactor/ModesDndTileUserActionInteractorTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -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() } Loading @@ -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() } Loading @@ -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) Loading @@ -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) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/modes/ui/ModesDndTileMapperTest.kt +17 −4 Original line number Diff line number Diff line Loading @@ -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") } } packages/SystemUI/src/com/android/systemui/qs/tiles/ModesDndTile.kt +1 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ constructor( label = tileLabel secondaryLabel = tileState.secondaryLabel contentDescription = tileState.contentDescription stateDescription = tileState.stateDescription expandedAccessibilityClassName = tileState.expandedAccessibilityClassName } } Loading Loading
packages/SettingsLib/src/com/android/settingslib/notification/data/repository/FakeZenModeRepository.kt +7 −2 Original line number Diff line number Diff line Loading @@ -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 } } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/ModesDndTileTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 } }
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/modes/domain/interactor/ModesDndTileUserActionInteractorTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -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() } Loading @@ -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() } Loading @@ -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) Loading @@ -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) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/tiles/impl/modes/ui/ModesDndTileMapperTest.kt +17 −4 Original line number Diff line number Diff line Loading @@ -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") } }
packages/SystemUI/src/com/android/systemui/qs/tiles/ModesDndTile.kt +1 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ constructor( label = tileLabel secondaryLabel = tileState.secondaryLabel contentDescription = tileState.contentDescription stateDescription = tileState.stateDescription expandedAccessibilityClassName = tileState.expandedAccessibilityClassName } } Loading