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

Commit 379ec4e9 authored by Luca Zuccarini's avatar Luca Zuccarini
Browse files

[3/3] Update the output chips model following go/chip-transitions-proposal.

The new version doesn't have an internal model, which doesn't seem
necessary now that all chips are always included, whether active or
not. Not sure if they have another use that I'm missing.

Bug: 273205603
Flag: com.android.systemui.status_bar_chips_modernization
Flag: com.android.systemui.status_bar_root_modernization
Test: atest OngoingActivityChipsWithNotifsViewModelTest HomeStatusBarViewModelImplTest
Change-Id: I92468166eb4e2ff52dcd92986498b7dcf1cec1a5
parent 606cdc68
Loading
Loading
Loading
Loading
+581 −40

File changed.

Preview size limit exceeded, changes collapsed.

+4 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.view.View
import com.android.systemui.plugins.DarkIconDispatcher
import com.android.systemui.statusbar.chips.mediaprojection.domain.model.MediaProjectionStopDialogModel
import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModelLegacy
import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
import com.android.systemui.statusbar.events.shared.model.SystemEventAnimationState.Idle
import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipModel
@@ -45,6 +46,9 @@ class FakeHomeStatusBarViewModel(

    override val ongoingActivityChips = MutableStateFlow(MultipleOngoingActivityChipsModel())

    override val ongoingActivityChipsLegacy =
        MutableStateFlow(MultipleOngoingActivityChipsModelLegacy())

    override val statusBarPopupChips = MutableStateFlow(emptyList<PopupChipModel.Shown>())

    override val mediaProjectionStopDialogDueToCallEndedState =
+25 −2
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ import com.android.systemui.statusbar.chips.sharetoapp.ui.viewmodel.shareToAppCh
import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipsViewModelTest.Companion.assertIsScreenRecordChip
import com.android.systemui.statusbar.chips.ui.viewmodel.OngoingActivityChipsViewModelTest.Companion.assertIsShareToAppChip
import com.android.systemui.statusbar.core.StatusBarRootModernization
import com.android.systemui.statusbar.data.model.StatusBarMode
import com.android.systemui.statusbar.data.repository.fakeStatusBarModeRepository
import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository
@@ -85,6 +86,7 @@ import com.android.systemui.statusbar.notification.shared.NotificationsLiveDataS
import com.android.systemui.statusbar.notification.stack.data.repository.headsUpNotificationRepository
import com.android.systemui.statusbar.phone.SysuiDarkIconDispatcher
import com.android.systemui.statusbar.phone.data.repository.fakeDarkIconRepository
import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
import com.android.systemui.statusbar.pipeline.shared.domain.interactor.setHomeStatusBarIconBlockList
import com.android.systemui.statusbar.pipeline.shared.domain.interactor.setHomeStatusBarInteractorShowOperatorName
import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
@@ -833,6 +835,23 @@ class HomeStatusBarViewModelImplTest : SysuiTestCase() {
        }

    @Test
    @EnableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
    fun isNotificationIconContainerVisible_anyChipShowing_ChipsModernizationOn() =
        kosmos.runTest {
            val latest by collectLastValue(underTest.isNotificationIconContainerVisible)
            transitionKeyguardToGone()

            kosmos.screenRecordRepository.screenRecordState.value = ScreenRecordModel.Recording

            assertThat(latest!!.visibility).isEqualTo(View.GONE)

            kosmos.screenRecordRepository.screenRecordState.value = ScreenRecordModel.DoingNothing

            assertThat(latest!!.visibility).isEqualTo(View.VISIBLE)
        }

    @Test
    @DisableFlags(StatusBarRootModernization.FLAG_NAME, StatusBarChipsModernization.FLAG_NAME)
    @EnableFlags(StatusBarNotifChips.FLAG_NAME)
    fun isNotificationIconContainerVisible_anyChipShowing_PromotedNotifsOn() =
        kosmos.runTest {
@@ -849,8 +868,12 @@ class HomeStatusBarViewModelImplTest : SysuiTestCase() {
        }

    @Test
    @DisableFlags(StatusBarNotifChips.FLAG_NAME)
    fun isNotificationIconContainerVisible_anyChipShowing_PromotedNotifsOff() =
    @DisableFlags(
        StatusBarNotifChips.FLAG_NAME,
        StatusBarRootModernization.FLAG_NAME,
        StatusBarChipsModernization.FLAG_NAME,
    )
    fun isNotificationIconContainerVisible_anyChipShowing_ChipsModernizationAndPromotedNotifsOff() =
        kosmos.runTest {
            val latest by collectLastValue(underTest.isNotificationIconContainerVisible)
            transitionKeyguardToGone()
+0 −9
Original line number Diff line number Diff line
@@ -180,15 +180,6 @@ private fun ChipIcon(
                        layoutParams = ViewGroup.LayoutParams(iconSizePx, iconSizePx)
                        imageTintList = ColorStateList.valueOf(colors.text(context))
                    }

                    // If needed, remove the icon from its old parent (views can only be attached
                    // to 1 parent at a time)
                    (originalIcon.parent as? ViewGroup)?.apply {
                        this.removeView(originalIcon)
                        this.removeTransientView(originalIcon)
                    }

                    originalIcon
                },
            )
        }
+4 −11
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel

@Composable
fun OngoingActivityChips(chips: MultipleOngoingActivityChipsModel, modifier: Modifier = Modifier) {
@@ -36,15 +35,9 @@ fun OngoingActivityChips(chips: MultipleOngoingActivityChipsModel, modifier: Mod
        verticalAlignment = Alignment.CenterVertically,
        horizontalArrangement = Arrangement.spacedBy(8.dp),
    ) {
        // TODO(b/372657935): Make sure chips are only shown when there is enough horizontal
        // space.
        if (chips.primary is OngoingActivityChipModel.Active) {
            val chip = chips.primary
            key(chip.key) { OngoingActivityChip(model = chip) }
        }
        if (chips.secondary is OngoingActivityChipModel.Active) {
            val chip = chips.secondary
            key(chip.key) { OngoingActivityChip(model = chip) }
        }
        // TODO(b/372657935): Make sure chips are only shown when there is enough horizontal space.
        chips.active
            .filter { !it.isHidden }
            .forEach { key(it.key) { OngoingActivityChip(model = it) } }
    }
}
Loading