Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit e8035a60b1c2a381687e82fc9d16f487ee3b9f65
Author: Ralston Da Silva <ralu@google.com>
Date: Wed Sep 01 16:20:16 2021
Modifier Local
This CL adds API for inter-modifier communication.
We introduce a concept of ModifierLocals that are
similar to CompositionLocals.
Bug: 198826874
Test: ./gradlew compose:ui:ui:connectedCheck -P android.testInstrumentationRunnerArguments.class=androidx.compose.ui.modifier.ModifierLocalSameLayoutNodeTest
Test: ./gradlew compose:ui:ui:connectedCheck -P android.testInstrumentationRunnerArguments.class=androidx.compose.ui.modifier.ModifierLocalMultiLayoutNodeTest
Relnote: Added support for inter-modifier communication
Change-Id: Id5467fce8c0463ec19af5c6170f4692307d2fbe2
A compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/modifier/CommunicatingModifierDemo.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/modifier/ModifierLocalSameLayoutNodeTest.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/UiDemos.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
M compose/ui/ui/api/current.txt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/modifier/ModifierLocalProviderConsumerOrder.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocalConsumer.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocalProvider.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocal.kt
M compose/ui/ui/build.gradle
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifierLocalProviderNode.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/modifier/ModifierLocalMultiLayoutNodeTest.kt
A compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/ModifierLocalSamples.kt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNodeWrapper.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifierLocalConsumerNode.kt
M compose/ui/ui/api/public_plus_experimental_current.txt
https://android-review.googlesource.com/1818838
Branch: androidx-main
commit e8035a60b1c2a381687e82fc9d16f487ee3b9f65
Author: Ralston Da Silva <ralu@google.com>
Date: Wed Sep 01 16:20:16 2021
Modifier Local
This CL adds API for inter-modifier communication.
We introduce a concept of ModifierLocals that are
similar to CompositionLocals.
Bug: 198826874
Test: ./gradlew compose:ui:ui:connectedCheck -P android.testInstrumentationRunnerArguments.class=androidx.compose.ui.modifier.ModifierLocalSameLayoutNodeTest
Test: ./gradlew compose:ui:ui:connectedCheck -P android.testInstrumentationRunnerArguments.class=androidx.compose.ui.modifier.ModifierLocalMultiLayoutNodeTest
Relnote: Added support for inter-modifier communication
Change-Id: Id5467fce8c0463ec19af5c6170f4692307d2fbe2
A compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/modifier/CommunicatingModifierDemo.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/modifier/ModifierLocalSameLayoutNodeTest.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/UiDemos.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
M compose/ui/ui/api/current.txt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/modifier/ModifierLocalProviderConsumerOrder.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocalConsumer.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocalProvider.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocal.kt
M compose/ui/ui/build.gradle
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifierLocalProviderNode.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/modifier/ModifierLocalMultiLayoutNodeTest.kt
A compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/ModifierLocalSamples.kt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNodeWrapper.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifierLocalConsumerNode.kt
M compose/ui/ui/api/public_plus_experimental_current.txt
Description
We currently use internal API to implement focusRequester, onFocusChanged, nestedScroll, pointerInput, RelocationRequester etc.
Create public API that allows modifiers to communicate with each other, so that external developers can build similar modifiers themselves.