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

Commit 1103cdb5 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov Committed by Android (Google) Code Review
Browse files

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

parents 0c25ba71 379ec4e9
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