Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt +581 −40 File changed.Preview size limit exceeded, changes collapsed. Show changes packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 = Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt +25 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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() Loading packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt +0 −9 Original line number Diff line number Diff line Loading @@ -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 }, ) } Loading packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChips.kt +4 −11 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt +581 −40 File changed.Preview size limit exceeded, changes collapsed. Show changes
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/FakeHomeStatusBarViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 = Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/shared/ui/viewmodel/HomeStatusBarViewModelImplTest.kt +25 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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() Loading
packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChip.kt +0 −9 Original line number Diff line number Diff line Loading @@ -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 }, ) } Loading
packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/compose/OngoingActivityChips.kt +4 −11 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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) } } } }