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

Commit 515d71a6 authored by Omar Miatello's avatar Omar Miatello Committed by Android (Google) Code Review
Browse files

Merge changes Ib99a12e2,I11ab1754 into main

* changes:
  STL remove PriorityNestedScrollConnection.canStartPostFling
  Flexiglass uses STL OverscrollEffects
parents 8fcc1837 c7f817b5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.bouncer.ui.composable
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.overscroll
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
@@ -101,6 +102,7 @@ private fun SceneScope.BouncerScene(
            viewModel,
            dialogFactory,
            Modifier.element(Bouncer.Elements.Content)
                .overscroll(verticalOverscrollEffect)
                .sysuiResTag(Bouncer.TestTags.Root)
                .fillMaxSize(),
        )
+0 −1
Original line number Diff line number Diff line
@@ -62,7 +62,6 @@ fun NotificationScrimNestedScrollConnection(
        canStartPostScroll = { offsetAvailable, _, _ ->
            offsetAvailable > 0 && (scrimOffset() < maxScrimOffset || isCurrentGestureOverscroll())
        },
        canStartPostFling = { false },
        onStart = { firstScroll ->
            onStart(firstScroll)
            object : ScrollController {
+25 −4
Original line number Diff line number Diff line
@@ -25,11 +25,13 @@ import androidx.compose.foundation.layout.offset
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
import androidx.compose.ui.input.nestedscroll.NestedScrollSource
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.Velocity
import androidx.compose.ui.unit.dp
import androidx.compose.ui.util.fastCoerceAtLeast
import com.android.compose.nestedscroll.OnStopScope
@@ -80,9 +82,29 @@ fun Modifier.stackVerticalOverscroll(
        }

    return this.then(
        Modifier.nestedScroll(stackNestedScrollConnection).offset {
            IntOffset(x = 0, y = overscrollOffset.value.roundToInt())
        Modifier.nestedScroll(
                remember {
                    object : NestedScrollConnection {
                        override suspend fun onPostFling(
                            consumed: Velocity,
                            available: Velocity,
                        ): Velocity {
                            return if (available.y < 0f && !canScrollForward()) {
                                overscrollOffset.animateTo(
                                    targetValue = 0f,
                                    initialVelocity = available.y,
                                    animationSpec = tween(),
                                )
                                available
                            } else {
                                Velocity.Zero
                            }
                        }
                    }
                }
            )
            .nestedScroll(stackNestedScrollConnection)
            .offset { IntOffset(x = 0, y = overscrollOffset.value.roundToInt()) }
    )
}

@@ -100,7 +122,6 @@ fun NotificationStackNestedScrollConnection(
        canStartPostScroll = { offsetAvailable, offsetBeforeStart, _ ->
            offsetAvailable < 0f && offsetBeforeStart < 0f && !canScrollForward()
        },
        canStartPostFling = { velocityAvailable -> velocityAvailable < 0f && !canScrollForward() },
        onStart = { firstScroll ->
            onStart(firstScroll)
            object : ScrollController {
+2 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.systemBars
import androidx.compose.foundation.layout.windowInsetsBottomHeight
import androidx.compose.foundation.overscroll
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.MaterialTheme
@@ -480,6 +481,7 @@ fun ContentScope.NotificationScrollingStack(
        modifier =
            modifier
                .element(Notifications.Elements.NotificationScrim)
                .overscroll(verticalOverscrollEffect)
                .offset {
                    // if scrim is expanded while transitioning to Gone or QS scene, increase the
                    // offset in step with the corresponding transition so that it is 0 when it
+5 −22
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ import com.android.systemui.scene.ui.composable.transitions.notificationsShadeTo
import com.android.systemui.scene.ui.composable.transitions.shadeToQuickSettingsTransition
import com.android.systemui.scene.ui.composable.transitions.toNotificationsShadeTransition
import com.android.systemui.scene.ui.composable.transitions.toQuickSettingsShadeTransition
import com.android.systemui.shade.ui.composable.OverlayShade
import com.android.systemui.shade.ui.composable.Shade

/**
@@ -134,27 +133,11 @@ val SceneContainerTransitions = transitions {
    }

    // Scene overscroll

    // TODO(b/382477212) Remove STL Overscroll DSL
    overscrollDisabled(Scenes.Gone, Orientation.Vertical)
    overscrollDisabled(Scenes.Lockscreen, Orientation.Vertical)
    overscroll(Scenes.Bouncer, Orientation.Vertical) {
        translate(Bouncer.Elements.Content, y = { absoluteDistance })
    }
    overscroll(Scenes.Shade, Orientation.Vertical) {
        translate(
            Notifications.Elements.NotificationScrim,
            y = Shade.Dimensions.ScrimOverscrollLimit,
        )
        translate(Shade.Elements.SplitShadeStartColumn, y = Shade.Dimensions.ScrimOverscrollLimit)
        translate(
            Notifications.Elements.NotificationStackPlaceholder,
            y = Shade.Dimensions.ScrimOverscrollLimit,
        )
    }
    overscroll(Overlays.NotificationsShade, Orientation.Vertical) {
        translate(OverlayShade.Elements.Panel, y = OverlayShade.Dimensions.OverscrollLimit)
    }
    overscroll(Overlays.QuickSettingsShade, Orientation.Vertical) {
        translate(OverlayShade.Elements.Panel, y = OverlayShade.Dimensions.OverscrollLimit)
    }
    overscrollDisabled(Scenes.Bouncer, Orientation.Vertical)
    overscrollDisabled(Scenes.Shade, Orientation.Vertical)
    overscrollDisabled(Overlays.NotificationsShade, Orientation.Vertical)
    overscrollDisabled(Overlays.QuickSettingsShade, Orientation.Vertical)
}
Loading