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

Commit c42c380a authored by Ahmed Mehfooz's avatar Ahmed Mehfooz Committed by amehfooz
Browse files

[DesktopStatusBar] Add popup chips

Test: manual
Bug: 433589833
Flag: com.android.systemui.status_bar_for_desktop
Change-Id: I1611994198f133762f5716621aa30babd6cc04c8
parent 990fdf54
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -39,9 +39,13 @@ import com.android.systemui.clock.ui.viewmodel.ClockViewModel
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.common.ui.compose.Icon
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
import com.android.systemui.media.controls.ui.view.MediaHost
import com.android.systemui.res.R
import com.android.systemui.shade.ui.composable.ShadeHighlightChip
import com.android.systemui.shade.ui.composable.VariableDayDate
import com.android.systemui.statusbar.featurepods.popups.StatusBarPopupChips
import com.android.systemui.statusbar.featurepods.popups.ui.compose.StatusBarPopupChipsContainer
import com.android.systemui.statusbar.phone.StatusBarLocation
import com.android.systemui.statusbar.phone.StatusIconContainer
import com.android.systemui.statusbar.phone.ui.StatusBarIconController
@@ -68,6 +72,8 @@ fun DesktopStatusBar(
    clockViewModelFactory: ClockViewModel.Factory,
    statusBarIconController: StatusBarIconController,
    iconManagerFactory: TintedIconManager.Factory,
    mediaHierarchyManager: MediaHierarchyManager,
    mediaHost: MediaHost,
    modifier: Modifier = Modifier,
) {
    // TODO(433589833): Update padding values to match UX specs.
@@ -96,6 +102,16 @@ fun DesktopStatusBar(
            horizontalArrangement =
                Arrangement.spacedBy(DesktopStatusBar.Dimensions.ElementSpacing, Alignment.End)
        ) {
            if (StatusBarPopupChips.isEnabled) {
                StatusBarPopupChipsContainer(
                    chips = viewModel.popupChips,
                    mediaHost = mediaHost,
                    onMediaControlPopupVisibilityChanged = { popupShowing ->
                        mediaHierarchyManager.isMediaControlPopupShowing = popupShowing
                    },
                )
            }

            NotificationsChip(viewModel = viewModel)

            QuickSettingsChip(
+13 −10
Original line number Diff line number Diff line
@@ -94,7 +94,6 @@ import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernizat
import com.android.systemui.statusbar.phone.ui.DarkIconManager
import com.android.systemui.statusbar.phone.ui.StatusBarIconController
import com.android.systemui.statusbar.phone.ui.TintedIconManager
import com.android.systemui.statusbar.phone.ui.TintedIconManager.Factory
import com.android.systemui.statusbar.pipeline.battery.ui.composable.BatteryWithChargeStatus
import com.android.systemui.statusbar.pipeline.battery.ui.composable.ShowPercentMode
import com.android.systemui.statusbar.pipeline.battery.ui.composable.UnifiedBattery
@@ -214,6 +213,17 @@ fun StatusBarRoot(
        }
    lateinit var touchableExclusionRegionDisposableHandle: DisposableHandle

    if (StatusBarPopupChips.isEnabled) {
        with(mediaHost) {
            expansion = MediaHostState.EXPANDED
            expandedMatchesParentHeight = true
            showsOnlyActiveMedia = true
            falsingProtectionNeeded = false
            disableScrolling = true
            init(MediaHierarchyManager.LOCATION_STATUS_BAR_POPUP)
        }
    }

    // Let the DesktopStatusBar compose all the UI if [isDesktopStatusBarEnabled] is true.
    if (StatusBarForDesktop.isEnabled && statusBarViewModel.isDesktopStatusBarEnabled) {
        DesktopStatusBar(
@@ -221,6 +231,8 @@ fun StatusBarRoot(
            clockViewModelFactory = clockViewModelFactory,
            statusBarIconController = iconController,
            iconManagerFactory = tintedIconManagerFactory,
            mediaHierarchyManager = mediaHierarchyManager,
            mediaHost = mediaHost,
        )
        return
    }
@@ -274,15 +286,6 @@ fun StatusBarRoot(

                // Add a composable container for `StatusBarPopupChip`s
                if (StatusBarPopupChips.isEnabled) {
                    with(mediaHost) {
                        expansion = MediaHostState.EXPANDED
                        expandedMatchesParentHeight = true
                        showsOnlyActiveMedia = true
                        falsingProtectionNeeded = false
                        disableScrolling = true
                        init(MediaHierarchyManager.LOCATION_STATUS_BAR_POPUP)
                    }

                    val endSideContent =
                        phoneStatusBarView.requireViewById<AlphaOptimizedLinearLayout>(
                            R.id.status_bar_end_side_content