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

Commit 66e1f15b authored by Julia Tuttle's avatar Julia Tuttle Committed by Android (Google) Code Review
Browse files

Merge "Move AOD RON to right side of split shade" into main

parents 2be3be91 259454da
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ constructor(
                                        AodPromotedNotificationArea(
                                            modifier =
                                                Modifier.fillMaxWidth(0.5f)
                                                    .align(alignment = Alignment.TopStart)
                                                    .align(alignment = Alignment.TopEnd)
                                        )
                                        Notifications(
                                            areNotificationsVisible = areNotificationsVisible,
@@ -129,6 +129,10 @@ constructor(
                            }
                        }

                        // Not a mistake; reusing below_clock_padding_start_icons as AOD RON top
                        // padding for now.
                        val aodPromotedNotifTopPadding: Dp =
                            dimensionResource(R.dimen.below_clock_padding_start_icons)
                        val aodIconPadding: Dp =
                            dimensionResource(R.dimen.below_clock_padding_start_icons)

@@ -136,7 +140,10 @@ constructor(
                            if (!isShadeLayoutWide && !isBypassEnabled) {
                                Box(modifier = Modifier.weight(weight = 1f)) {
                                    Column(Modifier.align(alignment = Alignment.TopStart)) {
                                        AodPromotedNotificationArea()
                                        AodPromotedNotificationArea(
                                            modifier =
                                                Modifier.padding(top = aodPromotedNotifTopPadding)
                                        )
                                        AodNotificationIcons(
                                            modifier = Modifier.padding(start = aodIconPadding)
                                        )
@@ -150,7 +157,10 @@ constructor(
                            } else {
                                Column {
                                    if (!isShadeLayoutWide) {
                                        AodPromotedNotificationArea()
                                        AodPromotedNotificationArea(
                                            modifier =
                                                Modifier.padding(top = aodPromotedNotifTopPadding)
                                        )
                                    }
                                    AodNotificationIcons(
                                        modifier =
+1 −0
Original line number Diff line number Diff line
@@ -234,6 +234,7 @@
    <item type="id" name="nssl_placeholder" />
    <item type="id" name="nssl_placeholder_barrier_bottom" />
    <item type="id" name="small_clock_guideline_top" />
    <item type="id" name="smart_space_barrier_top" />
    <item type="id" name="smart_space_barrier_bottom" />
    <item type="id" name="split_shade_guideline" />
    <item type="id" name="start_button" />
+16 −18
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardSection
import com.android.systemui.keyguard.ui.viewmodel.KeyguardRootViewModel
import com.android.systemui.res.R
import com.android.systemui.shade.ShadeDisplayAware
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.statusbar.notification.icon.ui.viewbinder.AlwaysOnDisplayNotificationIconViewStore
import com.android.systemui.statusbar.notification.icon.ui.viewbinder.NotificationIconContainerViewBinder
import com.android.systemui.statusbar.notification.icon.ui.viewbinder.StatusBarIconViewBindingFailureTracker
@@ -55,6 +56,7 @@ constructor(
    private val nicAodIconViewStore: AlwaysOnDisplayNotificationIconViewStore,
    private val systemBarUtilsState: SystemBarUtilsState,
    private val rootViewModel: KeyguardRootViewModel,
    private val shadeInteractor: ShadeInteractor,
) : KeyguardSection() {

    private var nicBindingDisposable: DisposableHandle? = null
@@ -93,34 +95,30 @@ constructor(
    override fun applyConstraints(constraintSet: ConstraintSet) {
        val bottomMargin =
            context.resources.getDimensionPixelSize(R.dimen.keyguard_status_view_bottom_margin)
        val horizontalMargin =
            context.resources.getDimensionPixelSize(customR.dimen.status_view_margin_horizontal)
        val height = context.resources.getDimensionPixelSize(R.dimen.notification_shelf_height)
        val isVisible = rootViewModel.isNotifIconContainerVisible.value
        val isShadeLayoutWide = shadeInteractor.isShadeLayoutWide.value

        constraintSet.apply {
            if (PromotedNotificationUiAod.isEnabled) {
                connect(nicId, TOP, AodPromotedNotificationSection.viewId, BOTTOM, bottomMargin)
            } else {
                connect(nicId, TOP, R.id.smart_space_barrier_bottom, BOTTOM, bottomMargin)
            }

            setGoneMargin(nicId, BOTTOM, bottomMargin)
            setVisibility(nicId, if (isVisible.value) VISIBLE else GONE)

            connect(
                nicId,
                START,
                PARENT_ID,
                START,
                context.resources.getDimensionPixelSize(customR.dimen.status_view_margin_horizontal),
            )
            connect(
                nicId,
                END,
                PARENT_ID,
                END,
                context.resources.getDimensionPixelSize(customR.dimen.status_view_margin_horizontal),
            )
            constrainHeight(
                nicId,
                context.resources.getDimensionPixelSize(R.dimen.notification_shelf_height),
            )
            if (PromotedNotificationUiAod.isEnabled && isShadeLayoutWide) {
                // Don't create a start constraint, so the icons can hopefully right-align.
            } else {
                connect(nicId, START, PARENT_ID, START, horizontalMargin)
            }
            connect(nicId, END, PARENT_ID, END, horizontalMargin)

            constrainHeight(nicId, height)
        }
    }

+24 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.keyguard.ui.view.layout.sections

import android.content.Context
import androidx.compose.ui.platform.ComposeView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
@@ -26,6 +27,7 @@ import androidx.constraintlayout.widget.ConstraintSet.START
import androidx.constraintlayout.widget.ConstraintSet.TOP
import com.android.systemui.keyguard.shared.model.KeyguardSection
import com.android.systemui.res.R
import com.android.systemui.shade.ShadeDisplayAware
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.statusbar.notification.promoted.AODPromotedNotification
import com.android.systemui.statusbar.notification.promoted.PromotedNotificationLogger
@@ -36,6 +38,7 @@ import javax.inject.Inject
class AodPromotedNotificationSection
@Inject
constructor(
    @ShadeDisplayAware private val context: Context,
    private val viewModelFactory: AODPromotedNotificationViewModel.Factory,
    private val shadeInteractor: ShadeInteractor,
    private val logger: PromotedNotificationLogger,
@@ -83,13 +86,30 @@ constructor(
        // view may have been created by a different instance of the section (!), and we don't
        // actually *need* it to set constraints, so don't check for it here.

        val topPadding =
            context.resources.getDimensionPixelSize(R.dimen.below_clock_padding_start_icons)

        constraintSet.apply {
            val isShadeLayoutWide = shadeInteractor.isShadeLayoutWide.value
            val endGuidelineId = if (isShadeLayoutWide) R.id.split_shade_guideline else PARENT_ID

            connect(viewId, TOP, R.id.smart_space_barrier_bottom, BOTTOM, 0)
            if (isShadeLayoutWide) {
                // When in split shade, align with top of smart space:
                connect(viewId, TOP, R.id.smart_space_barrier_top, TOP, 0)

                // and occupy the right half of the screen:
                connect(viewId, START, R.id.split_shade_guideline, START, 0)
                connect(viewId, END, PARENT_ID, END, 0)

                // TODO(b/369151941): Calculate proper right padding here (when in split shade, it's
                // bigger than what the Composable applies!)
            } else {
                // When not in split shade, place below smart space:
                connect(viewId, TOP, R.id.smart_space_barrier_bottom, BOTTOM, topPadding)

                // and occupy the full width of the screen:
                connect(viewId, START, PARENT_ID, START, 0)
            connect(viewId, END, endGuidelineId, END, 0)
                connect(viewId, END, PARENT_ID, END, 0)
            }

            constrainWidth(viewId, ConstraintSet.MATCH_CONSTRAINT)
            constrainHeight(viewId, ConstraintSet.WRAP_CONTENT)
+7 −0
Original line number Diff line number Diff line
@@ -167,6 +167,13 @@ constructor(
                )
            }

            createBarrier(
                R.id.smart_space_barrier_top,
                Barrier.TOP,
                0,
                *intArrayOf(sharedR.id.bc_smartspace_view, sharedR.id.date_smartspace_view),
            )

            createBarrier(
                R.id.smart_space_barrier_bottom,
                Barrier.BOTTOM,
Loading