diff options
5 files changed, 17 insertions, 28 deletions
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt index 3036228944e7..5dc1079e8b56 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt @@ -32,11 +32,10 @@ import androidx.compose.ui.geometry.isUnspecified import androidx.compose.ui.geometry.lerp import androidx.compose.ui.graphics.drawscope.ContentDrawScope import androidx.compose.ui.graphics.drawscope.scale -import androidx.compose.ui.layout.ApproachMeasureScope -import androidx.compose.ui.layout.LookaheadScope +import androidx.compose.ui.layout.IntermediateMeasureScope import androidx.compose.ui.layout.Measurable import androidx.compose.ui.layout.Placeable -import androidx.compose.ui.layout.approachLayout +import androidx.compose.ui.layout.intermediateLayout import androidx.compose.ui.node.DrawModifierNode import androidx.compose.ui.node.ModifierNodeElement import androidx.compose.ui.platform.testTag @@ -154,9 +153,7 @@ internal fun Modifier.element( return this.then(ElementModifier(layoutImpl, scene, element, sceneValues)) // TODO(b/311132415): Move this into ElementNode once we can create a delegate // IntermediateLayoutModifierNode. - .approachLayout( - isMeasurementApproachInProgress = { layoutImpl.state.isTransitioning() }, - ) { measurable, constraints -> + .intermediateLayout { measurable, constraints -> val placeable = measure(layoutImpl, scene, element, sceneValues, measurable, constraints) layout(placeable.width, placeable.height) { @@ -431,7 +428,7 @@ private fun elementAlpha( } @OptIn(ExperimentalComposeUiApi::class) -private fun ApproachMeasureScope.measure( +private fun IntermediateMeasureScope.measure( layoutImpl: SceneTransitionLayoutImpl, scene: Scene, element: Element, @@ -508,7 +505,7 @@ private fun getDrawScale( } @OptIn(ExperimentalComposeUiApi::class) -private fun ApproachMeasureScope.place( +private fun IntermediateMeasureScope.place( layoutImpl: SceneTransitionLayoutImpl, scene: Scene, element: Element, @@ -516,8 +513,6 @@ private fun ApproachMeasureScope.place( placeable: Placeable, placementScope: Placeable.PlacementScope, ) { - this as LookaheadScope - with(placementScope) { // Update the offset (relative to the SceneTransitionLayout) this element has in this scene // when idle. diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt index 370012054a1d..6a7a3a00d4fe 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Scene.kt @@ -30,7 +30,7 @@ import androidx.compose.runtime.snapshots.SnapshotStateMap import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.layout.approachLayout +import androidx.compose.ui.layout.intermediateLayout import androidx.compose.ui.platform.testTag import androidx.compose.ui.unit.IntSize import androidx.compose.ui.zIndex @@ -60,9 +60,7 @@ internal class Scene( Box( modifier .zIndex(zIndex) - .approachLayout( - isMeasurementApproachInProgress = { scope.layoutState.isTransitioning() } - ) { measurable, constraints -> + .intermediateLayout { measurable, constraints -> targetSize = lookaheadSize val placeable = measurable.measure(constraints) layout(placeable.width, placeable.height) { placeable.place(0, 0) } diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt index 3ee6d974fc9a..c99c3250bbb1 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutImpl.kt @@ -29,7 +29,7 @@ import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.layout.LookaheadScope -import androidx.compose.ui.layout.approachLayout +import androidx.compose.ui.layout.intermediateLayout import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntSize import androidx.compose.ui.util.fastForEach @@ -150,9 +150,7 @@ internal class SceneTransitionLayoutImpl( .swipeToScene(horizontalGestureHandler) .swipeToScene(verticalGestureHandler) // Animate the size of this layout. - .approachLayout( - isMeasurementApproachInProgress = { state.isTransitioning() }, - ) { measurable, constraints -> + .intermediateLayout { measurable, constraints -> // Measure content normally. val placeable = measurable.measure(constraints) diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt index 0c55eb050f6a..6c47e2d1cf7d 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt @@ -35,7 +35,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier -import androidx.compose.ui.layout.approachLayout +import androidx.compose.ui.layout.intermediateLayout import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -67,9 +67,7 @@ class ElementTest { modifier .offset(offset) .element(key) - .approachLayout( - isMeasurementApproachInProgress = { layoutState.isTransitioning() }, - ) { measurable, constraints -> + .intermediateLayout { measurable, constraints -> onLayout() val placement = measurable.measure(constraints) layout(placement.width, placement.height) { @@ -438,7 +436,7 @@ class ElementTest { // page should be composed. HorizontalPager( pagerState, - beyondViewportPageCount = 0, + outOfBoundsPageCount = 0, ) { page -> when (page) { 0 -> Box(Modifier.element(TestElements.Foo).fillMaxSize()) diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnectionTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnectionTest.kt index 4ddff5004779..e2974cddf1b9 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnectionTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnectionTest.kt @@ -201,11 +201,11 @@ class LargeTopAppBarNestedScrollConnectionTest(testCase: TestCase) { companion object { @Parameterized.Parameters(name = "{0}") @JvmStatic - fun data(): List<TestCase> { - return listOf( - TestCase(NestedScrollSource.UserInput), - TestCase(NestedScrollSource.SideEffect), + fun data(): List<TestCase> = + listOf( + TestCase(NestedScrollSource.Drag), + TestCase(NestedScrollSource.Fling), + TestCase(NestedScrollSource.Wheel), ) - } } } |