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

Commit 482bf795 authored by Ioana Alexandru's avatar Ioana Alexandru
Browse files

Make modesHidingNotifications return ActiveZenModes

We're going to need the icon in the EmptyShadeViewModel in a follow-up change.
Also made some small improvements to the API of ActiveZenModes.

Bug: 388472403
Test: ZenModeInteractorTest
Flag: EXEMPT minor type change
Change-Id: I123e390b50a965873fa34597a0a0a247f8df2acc
parent 66ec497d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ class ModesTileUserActionInteractorTest : SysuiTestCase() {
                    TestModeBuilder().setName("Mode 2").setActive(true).build(),
                )
            )
            assertThat(activeModes?.modeNames?.count()).isEqualTo(3)
            assertThat(activeModes?.count).isEqualTo(3)

            underTest.handleInput(
                QSTileInputTestKtx.toggleClick(
+27 −31
Original line number Diff line number Diff line
@@ -286,26 +286,24 @@ class ZenModeInteractorTest : SysuiTestCase() {

            zenModeRepository.addMode(id = "Bedtime", type = AutomaticZenRule.TYPE_BEDTIME)
            zenModeRepository.addMode(id = "Other", type = AutomaticZenRule.TYPE_OTHER)
            assertThat(activeModes?.modeNames).hasSize(0)
            assertThat(activeModes?.mainMode).isNull()
            assertThat(activeModes?.names).hasSize(0)
            assertThat(activeModes?.main).isNull()

            zenModeRepository.activateMode("Other")
            assertThat(activeModes?.modeNames).containsExactly("Mode Other")
            assertThat(activeModes?.mainMode?.name).isEqualTo("Mode Other")
            assertThat(activeModes?.names).containsExactly("Mode Other")
            assertThat(activeModes?.main?.name).isEqualTo("Mode Other")

            zenModeRepository.activateMode("Bedtime")
            assertThat(activeModes?.modeNames)
                .containsExactly("Mode Bedtime", "Mode Other")
                .inOrder()
            assertThat(activeModes?.mainMode?.name).isEqualTo("Mode Bedtime")
            assertThat(activeModes?.names).containsExactly("Mode Bedtime", "Mode Other").inOrder()
            assertThat(activeModes?.main?.name).isEqualTo("Mode Bedtime")

            zenModeRepository.deactivateMode("Other")
            assertThat(activeModes?.modeNames).containsExactly("Mode Bedtime")
            assertThat(activeModes?.mainMode?.name).isEqualTo("Mode Bedtime")
            assertThat(activeModes?.names).containsExactly("Mode Bedtime")
            assertThat(activeModes?.main?.name).isEqualTo("Mode Bedtime")

            zenModeRepository.deactivateMode("Bedtime")
            assertThat(activeModes?.modeNames).hasSize(0)
            assertThat(activeModes?.mainMode).isNull()
            assertThat(activeModes?.names).hasSize(0)
            assertThat(activeModes?.main).isNull()
        }

    @Test
@@ -316,30 +314,28 @@ class ZenModeInteractorTest : SysuiTestCase() {
            zenModeRepository.addMode(id = "Other", type = AutomaticZenRule.TYPE_OTHER)

            var activeModes = underTest.getActiveModes()
            assertThat(activeModes.modeNames).hasSize(0)
            assertThat(activeModes.mainMode).isNull()
            assertThat(activeModes.names).hasSize(0)
            assertThat(activeModes.main).isNull()

            zenModeRepository.activateMode("Other")
            activeModes = underTest.getActiveModes()
            assertThat(activeModes.modeNames).containsExactly("Mode Other")
            assertThat(activeModes.mainMode?.name).isEqualTo("Mode Other")
            assertThat(activeModes.names).containsExactly("Mode Other")
            assertThat(activeModes.main?.name).isEqualTo("Mode Other")

            zenModeRepository.activateMode("Bedtime")
            activeModes = underTest.getActiveModes()
            assertThat(activeModes.modeNames)
                .containsExactly("Mode Bedtime", "Mode Other")
                .inOrder()
            assertThat(activeModes.mainMode?.name).isEqualTo("Mode Bedtime")
            assertThat(activeModes.names).containsExactly("Mode Bedtime", "Mode Other").inOrder()
            assertThat(activeModes.main?.name).isEqualTo("Mode Bedtime")

            zenModeRepository.deactivateMode("Other")
            activeModes = underTest.getActiveModes()
            assertThat(activeModes.modeNames).containsExactly("Mode Bedtime")
            assertThat(activeModes.mainMode?.name).isEqualTo("Mode Bedtime")
            assertThat(activeModes.names).containsExactly("Mode Bedtime")
            assertThat(activeModes.main?.name).isEqualTo("Mode Bedtime")

            zenModeRepository.deactivateMode("Bedtime")
            activeModes = underTest.getActiveModes()
            assertThat(activeModes.modeNames).hasSize(0)
            assertThat(activeModes.mainMode).isNull()
            assertThat(activeModes.names).hasSize(0)
            assertThat(activeModes.main).isNull()
        }

    @Test
@@ -431,8 +427,8 @@ class ZenModeInteractorTest : SysuiTestCase() {
                )
            )

            assertThat(blockingMedia!!.mainMode!!.name).isEqualTo("Blocks media, Active")
            assertThat(blockingMedia!!.modeNames)
            assertThat(blockingMedia!!.main!!.name).isEqualTo("Blocks media, Active")
            assertThat(blockingMedia!!.names)
                .containsExactly("Blocks media, Active", "Blocks media, Active Too")
                .inOrder()
        }
@@ -470,8 +466,8 @@ class ZenModeInteractorTest : SysuiTestCase() {
                )
            )

            assertThat(blockingAlarms!!.mainMode!!.name).isEqualTo("Blocks alarms, Active")
            assertThat(blockingAlarms!!.modeNames)
            assertThat(blockingAlarms!!.main!!.name).isEqualTo("Blocks alarms, Active")
            assertThat(blockingAlarms!!.names)
                .containsExactly("Blocks alarms, Active", "Blocks alarms, Active Too")
                .inOrder()
        }
@@ -509,8 +505,8 @@ class ZenModeInteractorTest : SysuiTestCase() {
                )
            )

            assertThat(blockingSystem!!.mainMode!!.name).isEqualTo("Blocks system, Active")
            assertThat(blockingSystem!!.modeNames)
            assertThat(blockingSystem!!.main!!.name).isEqualTo("Blocks system, Active")
            assertThat(blockingSystem!!.names)
                .containsExactly("Blocks system, Active", "Blocks system, Active Too")
                .inOrder()
        }
@@ -550,7 +546,7 @@ class ZenModeInteractorTest : SysuiTestCase() {
                )
            )

            assertThat(modesHidingNotifications?.map { it.name })
            assertThat(modesHidingNotifications?.names)
                .containsExactly("Has list suppression 1", "Has list suppression 2")
                .inOrder()
        }
+2 −2
Original line number Diff line number Diff line
@@ -184,9 +184,9 @@ constructor(
    private fun buildTileDataLegacy(activeModes: ActiveZenModes): ModesTileModel {
        return ModesTileModel(
            isActivated = activeModes.isAnyActive(),
            activeModes = activeModes.modeNames.map { ModesTileModel.ActiveMode(null, it) },
            activeModes = activeModes.names.map { ModesTileModel.ActiveMode(null, it) },
            icon =
                if (activeModes.mainMode != null) activeModes.mainMode.icon.toTileIcon()
                if (activeModes.main != null) activeModes.main.icon.toTileIcon()
                else getDefaultTileIcon(),
            quickMode = null,
        )
+6 −7
Original line number Diff line number Diff line
@@ -82,11 +82,10 @@ constructor(
                // out, or something like "Notifications paused by SomeMode" otherwise.
                val msgFormat =
                    MessageFormat(context.getString(R.string.modes_suppressing_shade_text), locale)
                val count = modes.count()
                val args: MutableMap<String, Any> = HashMap()
                args["count"] = count
                if (count >= 1) {
                    args["mode"] = modes[0].name
                args["count"] = modes.count
                if (modes.main != null) {
                    args["mode"] = modes.main.name
                }
                msgFormat.format(args)
            }
@@ -106,9 +105,9 @@ constructor(
                zenModeInteractor.modesHidingNotifications,
                notificationSettingsInteractor.isNotificationHistoryEnabled,
            ) { modes, isNotificationHistoryEnabled ->
                if (modes.isNotEmpty()) {
                    if (modes.size == 1) {
                        SettingsIntent.forModeSettings(modes[0].id)
                if (modes.main != null) {
                    if (modes.count == 1) {
                        SettingsIntent.forModeSettings(modes.main.id)
                    } else {
                        SettingsIntent.forModesSettings()
                    }
+4 −4
Original line number Diff line number Diff line
@@ -176,15 +176,14 @@ constructor(
        val activeModesList =
            modes.filter { mode -> mode.isActive }.sortedWith(ZenMode.PRIORITIZING_COMPARATOR)
        val mainActiveMode =
            activeModesList.firstOrNull()?.let { ZenModeInfo(it.name, getModeIcon(it)) }
            activeModesList.firstOrNull()?.let { ZenModeInfo(it.id, it.name, getModeIcon(it)) }

        return ActiveZenModes(activeModesList.map { m -> m.name }, mainActiveMode)
    }

    val mainActiveMode: Flow<ZenModeInfo?> =
        activeModes.map { a -> a.mainMode }.distinctUntilChanged()
    val mainActiveMode: Flow<ZenModeInfo?> = activeModes.map { a -> a.main }.distinctUntilChanged()

    val modesHidingNotifications: Flow<List<ZenMode>> by lazy {
    val modesHidingNotifications: Flow<ActiveZenModes> by lazy {
        modes
            .map { modes ->
                modes.filter { mode ->
@@ -195,6 +194,7 @@ constructor(
                        )
                }
            }
            .map { modes -> buildActiveZenModes(modes) }
            .flowOn(bgDispatcher)
            .distinctUntilChanged()
    }
Loading