Fixed
Status Update
Comments
ju...@google.com <ju...@google.com>
nj...@google.com <nj...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit c60f33e229e31ab328ef6b59dab63b264954831c
Author: Alexandre Elias <aelias@google.com>
Date: Fri Jul 10 16:23:09 2020
Semantics no-op cleanups
Partly in response to lmr's broad code review, I did a pass of
superficial API/implementation cleanup. The main changes are:
- I changed each Boolean SemanticsProperty where false is equivalent to
not being present to take "Unit" instead. This is conceptually
clearer: it avoids questions like "can I cancel out a semantics from a
merged child by setting it to false?" Because "property = Unit" looks
weird, I also changed the style of these to "property()".
- I moved the Semantics id generator closer to where it's used, in
SemanticsModifierCore. I made it internal and an AtomicInt.
(Note that integer ids are heavily used in the Android
AccessibilityNodeInfo APIs so I can't simply remove them entirely.)
- I deleted dead code. Some examples include SemanticsHintOverrides,
a public API not connected to anything, and SemanticsPropertyKey
merge() open method which is never called. (In both cases I have
a different plan in mind for accessibility.)
Fixes: 145951226
Fixes: 145955412
Test: existing tests
Relnote: "Single-value semantics properties now use a calling style.
For example, 'semantics { hidden = true }' is now written as:
'semantics { hidden() }'."
Change-Id: Ic1afd12ea22c926babc9662f1804d80b33aa0cfc
M ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/LayoutNodeModifierBenchmark.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/graphics/vector/VectorTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/semantics/SemanticsTests.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidActuals.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeView.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeViewAccessibilityDelegateCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidPopup.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/Expect.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsConfiguration.kt
D ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsHintOverrides.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsModifier.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsNode.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsOwner.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsWrapper.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/semantics/SemanticsProperties.kt
M ui/ui-foundation/api/0.1.0-dev15.txt
M ui/ui-foundation/api/current.txt
M ui/ui-foundation/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-foundation/api/public_plus_experimental_current.txt
M ui/ui-foundation/api/restricted_0.1.0-dev15.txt
M ui/ui-foundation/api/restricted_current.txt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Clickable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Dialog.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Selectable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Toggleable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/semantics/FoundationSemanticsProperties.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CardTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/RadioButtonScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ScaffoldTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SurfaceTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ripple/RippleIndicationTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/textfield/TextFieldScreenshotTest.kt
M ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
M ui/ui-material/src/main/java/androidx/ui/material/TextFieldImpl.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/AssertsTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/CallSemanticsActionTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ErrorMessagesTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/FindersTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/PrintToStringTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ScrollToTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/TextActionsTest.kt
M ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
M ui/ui-test/src/main/java/androidx/ui/test/Filters.kt
M ui/ui-text/api/0.1.0-dev15.txt
M ui/ui-text/api/current.txt
M ui/ui-text/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text/api/public_plus_experimental_current.txt
M ui/ui-text/api/restricted_0.1.0-dev15.txt
M ui/ui-text/api/restricted_current.txt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/CoreTextField.kt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/TextSemanticsProperties.kt
https://android-review.googlesource.com/1360099
Branch: androidx-master-dev
commit c60f33e229e31ab328ef6b59dab63b264954831c
Author: Alexandre Elias <aelias@google.com>
Date: Fri Jul 10 16:23:09 2020
Semantics no-op cleanups
Partly in response to lmr's broad code review, I did a pass of
superficial API/implementation cleanup. The main changes are:
- I changed each Boolean SemanticsProperty where false is equivalent to
not being present to take "Unit" instead. This is conceptually
clearer: it avoids questions like "can I cancel out a semantics from a
merged child by setting it to false?" Because "property = Unit" looks
weird, I also changed the style of these to "property()".
- I moved the Semantics id generator closer to where it's used, in
SemanticsModifierCore. I made it internal and an AtomicInt.
(Note that integer ids are heavily used in the Android
AccessibilityNodeInfo APIs so I can't simply remove them entirely.)
- I deleted dead code. Some examples include SemanticsHintOverrides,
a public API not connected to anything, and SemanticsPropertyKey
merge() open method which is never called. (In both cases I have
a different plan in mind for accessibility.)
Fixes: 145951226
Fixes: 145955412
Test: existing tests
Relnote: "Single-value semantics properties now use a calling style.
For example, 'semantics { hidden = true }' is now written as:
'semantics { hidden() }'."
Change-Id: Ic1afd12ea22c926babc9662f1804d80b33aa0cfc
M ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/LayoutNodeModifierBenchmark.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/graphics/vector/VectorTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/semantics/SemanticsTests.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidActuals.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeView.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeViewAccessibilityDelegateCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidPopup.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/Expect.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsConfiguration.kt
D ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsHintOverrides.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsModifier.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsNode.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsOwner.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsWrapper.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/semantics/SemanticsProperties.kt
M ui/ui-foundation/api/0.1.0-dev15.txt
M ui/ui-foundation/api/current.txt
M ui/ui-foundation/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-foundation/api/public_plus_experimental_current.txt
M ui/ui-foundation/api/restricted_0.1.0-dev15.txt
M ui/ui-foundation/api/restricted_current.txt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Clickable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Dialog.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Selectable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Toggleable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/semantics/FoundationSemanticsProperties.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CardTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/RadioButtonScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ScaffoldTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SurfaceTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ripple/RippleIndicationTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/textfield/TextFieldScreenshotTest.kt
M ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
M ui/ui-material/src/main/java/androidx/ui/material/TextFieldImpl.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/AssertsTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/CallSemanticsActionTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ErrorMessagesTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/FindersTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/PrintToStringTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ScrollToTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/TextActionsTest.kt
M ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
M ui/ui-test/src/main/java/androidx/ui/test/Filters.kt
M ui/ui-text/api/0.1.0-dev15.txt
M ui/ui-text/api/current.txt
M ui/ui-text/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text/api/public_plus_experimental_current.txt
M ui/ui-text/api/restricted_0.1.0-dev15.txt
M ui/ui-text/api/restricted_current.txt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/CoreTextField.kt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/TextSemanticsProperties.kt
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 88951ea1f54623398ffdac8a24e35db3fbfeeb8a
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 22:54:56 2024
GraphicsLayer API Part 3/N
Relnote: "Introduce GraphicsContext function constructor
to create a factory to create GraphicsLayer instances"
Created GraphicsLayerV29 as the RenderNode backed
GraphicsLayer for Android
Bug: 288494724
Test: Added AndroidGraphicsLayerTest
Change-Id: Ib98d6b140fab3d857f74faa4fa227927e1625bed
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
A compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV29.android.kt
https://android-review.googlesource.com/2960246
Branch: androidx-main
commit 88951ea1f54623398ffdac8a24e35db3fbfeeb8a
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 22:54:56 2024
GraphicsLayer API Part 3/N
Relnote: "Introduce GraphicsContext function constructor
to create a factory to create GraphicsLayer instances"
Created GraphicsLayerV29 as the RenderNode backed
GraphicsLayer for Android
Bug: 288494724
Test: Added AndroidGraphicsLayerTest
Change-Id: Ib98d6b140fab3d857f74faa4fa227927e1625bed
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
A compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV29.android.kt
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit 25e6f1b21e6136f816097bd0b7e395d81cbaaaa6
Author: Nader Jawad <njawad@google.com>
Date: Tue Mar 05 14:16:52 2024
GraphicsLayer API Part 5/N
Introduce LayerManager as an internal
mechanism for persisting of GraphicsLayer
displaylists by invoking a placeholder render
with empty content within the layer in order
to increment the internal ref count of RenderNode
instances within HWUI.
Bug: 288494724
Test: Ran AndroidGraphicsLayerTest
Change-Id: I52203a1bca59ea024cb7dfa665994a7ccc573756
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerManager.android.kt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
https://android-review.googlesource.com/2961822
Branch: androidx-main
commit 25e6f1b21e6136f816097bd0b7e395d81cbaaaa6
Author: Nader Jawad <njawad@google.com>
Date: Tue Mar 05 14:16:52 2024
GraphicsLayer API Part 5/N
Introduce LayerManager as an internal
mechanism for persisting of GraphicsLayer
displaylists by invoking a placeholder render
with empty content within the layer in order
to increment the internal ref count of RenderNode
instances within HWUI.
Bug: 288494724
Test: Ran AndroidGraphicsLayerTest
Change-Id: I52203a1bca59ea024cb7dfa665994a7ccc573756
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerManager.android.kt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit 55240af3dcdb65f46679c8840f9b6148034bc7e0
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 22:13:31 2024
GraphicsLayer API Part 2/N
Relnote: "Exposed GraphicsLayer API
to provide developer defined flexibility
in capturing drawing commands that can be
used to draw elsewhere and also apply
different visual effects to the end result."
Introduced AndroidGraphicsLayer actual
implementation with interface definition
to abstract away differences between different
Android API levels.
Added placeholder Desktop GraphicsLayer implementation
to be completed in a subsequent CL.
Bug: 288494724
Test: Added with Android GraphicsLayer implementation
Change-Id: I802452c9375fc6949ed85fb65d77173456893907
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
A compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/GraphicsLayerSamples.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsContext.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/drawscope/DrawScope.kt
A compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/CompositingStrategy.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.kt
A compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.desktop.kt
https://android-review.googlesource.com/2960245
Branch: androidx-main
commit 55240af3dcdb65f46679c8840f9b6148034bc7e0
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 22:13:31 2024
GraphicsLayer API Part 2/N
Relnote: "Exposed GraphicsLayer API
to provide developer defined flexibility
in capturing drawing commands that can be
used to draw elsewhere and also apply
different visual effects to the end result."
Introduced AndroidGraphicsLayer actual
implementation with interface definition
to abstract away differences between different
Android API levels.
Added placeholder Desktop GraphicsLayer implementation
to be completed in a subsequent CL.
Bug: 288494724
Test: Added with Android GraphicsLayer implementation
Change-Id: I802452c9375fc6949ed85fb65d77173456893907
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
A compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/GraphicsLayerSamples.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsContext.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/drawscope/DrawScope.kt
A compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/CompositingStrategy.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.kt
A compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.desktop.kt
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
commit e32ca4769a50717045b75f9cd7bb1436fe48a751
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 21:44:06 2024
GraphicsLayer API Part 1/N
Relnote: "Added GraphicsLayer expect/actual
API defintion to support capturing and replaying
of drawing commands with optional compositing
visual effects and transforms.
Introduce GraphicsContext interface to contain
graphics dependencies including creation and
management of GraphicsLayer instances.
"
Bug: 288494724
Test: Added with expect/actual implementation
Change-Id: I4a8d67d7b45798d5e8afa78402168d14512e4318
A compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsContext.kt
A compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.kt
https://android-review.googlesource.com/2960092
Branch: androidx-main
commit e32ca4769a50717045b75f9cd7bb1436fe48a751
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 21:44:06 2024
GraphicsLayer API Part 1/N
Relnote: "Added GraphicsLayer expect/actual
API defintion to support capturing and replaying
of drawing commands with optional compositing
visual effects and transforms.
Introduce GraphicsContext interface to contain
graphics dependencies including creation and
management of GraphicsLayer instances.
"
Bug: 288494724
Test: Added with expect/actual implementation
Change-Id: I4a8d67d7b45798d5e8afa78402168d14512e4318
A compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsContext.kt
A compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.kt
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
commit 1e39396a77297efa4a5a2e4d49e49b7e86b44593
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 23:09:08 2024
GraphicsLayer API Part 6/N
Added Android GraphicsLayer implementation for
Android API level 23+ leveraging RenderNode stubs
Updated ViewCapture.android.kt to remove the API
level requirement for capturing View content to a
bitmap for testing scenarios
Bug: 288494724
Test: Ran AndroidGraphicsLayerTest on Android API 23
Change-Id: I8013c73b7d115b49bacb5ecdb67c731094262580
M compose/ui/ui-graphics/build.gradle
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV23.android.kt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
https://android-review.googlesource.com/2960093
Branch: androidx-main
commit 1e39396a77297efa4a5a2e4d49e49b7e86b44593
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 23:09:08 2024
GraphicsLayer API Part 6/N
Added Android GraphicsLayer implementation for
Android API level 23+ leveraging RenderNode stubs
Updated ViewCapture.android.kt to remove the API
level requirement for capturing View content to a
bitmap for testing scenarios
Bug: 288494724
Test: Ran AndroidGraphicsLayerTest on Android API 23
Change-Id: I8013c73b7d115b49bacb5ecdb67c731094262580
M compose/ui/ui-graphics/build.gradle
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV23.android.kt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-main
commit f8340787db926919283189376e67e0ea8247b214
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 23:23:04 2024
GraphicsLayer API Part 7/N
Added View backed GraphicsLayer implementation
for Android L/P and as a fallback for Android devices
that do not support the RenderNode stub approach.
Updated AndroidGraphicsContext to return View backed
graphics layers.
Moved resource identifier for Views used as layers
to the ui-graphics module.
Relnote: "Introduced HardwareCanvas stub for
Android L usage"
Bug: 288494724
Test: Ran AndroidGraphicsLayerTest on Android L
Change-Id: I1c3b5821c20f51b9c8ae96f81c822174583251b7
M compose/material/material-ripple/build.gradle
M compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/RippleContainer.android.kt
M compose/ui/ui-android-stubs/api/current.txt
M compose/ui/ui-android-stubs/api/restricted_current.txt
A compose/ui/ui-android-stubs/src/main/java/android/view/HardwareCanvas.java
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsViewLayer.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/view/PlaceholderHardwareCanvas.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/view/ViewLayerContainer.android.kt
A compose/ui/ui-graphics/src/androidMain/res/values/ids.xml
M compose/ui/ui-inspection/build.gradle
M compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/compose/AndroidComposeViewWrapper.kt
M compose/ui/ui-tooling/build.gradle
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/ViewLayerContainer.android.kt
M compose/ui/ui/src/androidMain/res/values/ids.xml
https://android-review.googlesource.com/2960094
Branch: androidx-main
commit f8340787db926919283189376e67e0ea8247b214
Author: Nader Jawad <njawad@google.com>
Date: Mon Feb 12 23:23:04 2024
GraphicsLayer API Part 7/N
Added View backed GraphicsLayer implementation
for Android L/P and as a fallback for Android devices
that do not support the RenderNode stub approach.
Updated AndroidGraphicsContext to return View backed
graphics layers.
Moved resource identifier for Views used as layers
to the ui-graphics module.
Relnote: "Introduced HardwareCanvas stub for
Android L usage"
Bug: 288494724
Test: Ran AndroidGraphicsLayerTest on Android L
Change-Id: I1c3b5821c20f51b9c8ae96f81c822174583251b7
M compose/material/material-ripple/build.gradle
M compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/RippleContainer.android.kt
M compose/ui/ui-android-stubs/api/current.txt
M compose/ui/ui-android-stubs/api/restricted_current.txt
A compose/ui/ui-android-stubs/src/main/java/android/view/HardwareCanvas.java
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsViewLayer.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/view/PlaceholderHardwareCanvas.android.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/view/ViewLayerContainer.android.kt
A compose/ui/ui-graphics/src/androidMain/res/values/ids.xml
M compose/ui/ui-inspection/build.gradle
M compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/compose/AndroidComposeViewWrapper.kt
M compose/ui/ui-tooling/build.gradle
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/ViewLayerContainer.android.kt
M compose/ui/ui/src/androidMain/res/values/ids.xml
nj...@google.com <nj...@google.com>
ap...@google.com <ap...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-main
commit 49d0d5cb25a6b493e0c20dee322e377519d9da5f
Author: Nader Jawad <njawad@google.com>
Date: Tue Feb 13 12:23:39 2024
GraphicsLayer API Part 8/N
Introduce Compose Desktop GraphicsLayer
implementation
Bug: 288494724
Test: Added DesktopGraphicsLayerTest
Change-Id: I05f5190e8118ccbd2c26e260e6f6ae2f20f013db
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
M compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.desktop.kt
A compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/layer/DesktopGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/skikoMain/kotlin/androidx/compose/ui/graphics/SkiaBackedCanvas.skiko.kt
https://android-review.googlesource.com/2961886
Branch: androidx-main
commit 49d0d5cb25a6b493e0c20dee322e377519d9da5f
Author: Nader Jawad <njawad@google.com>
Date: Tue Feb 13 12:23:39 2024
GraphicsLayer API Part 8/N
Introduce Compose Desktop GraphicsLayer
implementation
Bug: 288494724
Test: Added DesktopGraphicsLayerTest
Change-Id: I05f5190e8118ccbd2c26e260e6f6ae2f20f013db
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
M compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.desktop.kt
A compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/layer/DesktopGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/skikoMain/kotlin/androidx/compose/ui/graphics/SkiaBackedCanvas.skiko.kt
pr...@google.com <pr...@google.com> #10
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.material:material-ripple:1.7.0-alpha05
androidx.compose.material:material-ripple-android:1.7.0-alpha05
androidx.compose.material:material-ripple-desktop:1.7.0-alpha05
androidx.compose.ui:ui:1.7.0-alpha05
androidx.compose.ui:ui-android:1.7.0-alpha05
androidx.compose.ui:ui-android-stubs:1.7.0-alpha05
androidx.compose.ui:ui-desktop:1.7.0-alpha05
androidx.compose.ui:ui-graphics:1.7.0-alpha05
androidx.compose.ui:ui-graphics-android:1.7.0-alpha05
androidx.compose.ui:ui-graphics-desktop:1.7.0-alpha05
androidx.compose.ui:ui-tooling:1.7.0-alpha05
androidx.compose.ui:ui-tooling-android:1.7.0-alpha05
androidx.compose.ui:ui-tooling-desktop:1.7.0-alpha05
androidx.compose.ui:ui-unit:1.7.0-alpha05
androidx.compose.ui:ui-unit-android:1.7.0-alpha05
androidx.compose.ui:ui-unit-desktop:1.7.0-alpha05
tj...@gmail.com <tj...@gmail.com> #11
The implementation of placeAt
in the linked CL on line 118, the overloaded method call does not seem to do anything with the passed in GraphicsLayer
:
protected open fun placeAt(
position: IntOffset,
zIndex: Float,
layer: GraphicsLayer
) {
placeAt(position, zIndex, null)
}
When I tested on the latest snapshot, passing in a GraphicsLayer
was a no-op. I'm not sure if this is a bug, or it is supposed to be addressed in a follow up CL.
ap...@google.com <ap...@google.com> #13
Project: platform/frameworks/support
Branch: androidx-main
commit 6bb3dd89bf83fc4d6f2825effb2f0fc613c94774
Author: Nader Jawad <njawad@google.com>
Date: Wed Mar 27 18:43:56 2024
Update GraphicsLayer API based on Compose Design
Review feedback
Relnote: "Rename GraphicsLayer#buildLayer to
record to mirror the begin/endRecording methods of
Displaylist backed APIs like RenderNode and Picture.
Updated rememberGraphicsLayer to leverage rememberObserver."
Bug: 288494724
Fixes: 330758155
Test: re-ran compose tests
Change-Id: I312c1120358d04fccfe8a646001a883017fb0fb3
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
M compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/GraphicsLayerSamples.kt
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV23.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV29.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsViewLayer.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerSnapshot.android.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/drawscope/DrawScope.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.kt
M compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.desktop.kt
M compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/layer/DesktopGraphicsLayerTest.kt
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawingPrebuiltGraphicsLayerTest.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/GraphicsLayerOwnerLayer.android.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draw/DrawModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsLayerScope.kt
M compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/draw/DesktopDrawingPrebuiltGraphicsLayerTest.kt
https://android-review.googlesource.com/3016903
Branch: androidx-main
commit 6bb3dd89bf83fc4d6f2825effb2f0fc613c94774
Author: Nader Jawad <njawad@google.com>
Date: Wed Mar 27 18:43:56 2024
Update GraphicsLayer API based on Compose Design
Review feedback
Relnote: "Rename GraphicsLayer#buildLayer to
record to mirror the begin/endRecording methods of
Displaylist backed APIs like RenderNode and Picture.
Updated rememberGraphicsLayer to leverage rememberObserver."
Bug: 288494724
Fixes: 330758155
Test: re-ran compose tests
Change-Id: I312c1120358d04fccfe8a646001a883017fb0fb3
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
M compose/ui/ui-graphics/samples/src/main/java/androidx/compose/ui/graphics/samples/GraphicsLayerSamples.kt
M compose/ui/ui-graphics/src/androidInstrumentedTest/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayerTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV23.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV29.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsViewLayer.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerSnapshot.android.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/drawscope/DrawScope.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.kt
M compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.desktop.kt
M compose/ui/ui-graphics/src/desktopTest/kotlin/androidx/compose/ui/graphics/layer/DesktopGraphicsLayerTest.kt
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawModifierTest.kt
M compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/draw/DrawingPrebuiltGraphicsLayerTest.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/GraphicsLayerOwnerLayer.android.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draw/DrawModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsLayerScope.kt
M compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/draw/DesktopDrawingPrebuiltGraphicsLayerTest.kt
na...@google.com <na...@google.com> #14
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.ui:ui:1.7.0-alpha07
androidx.compose.ui:ui-android:1.7.0-alpha07
androidx.compose.ui:ui-desktop:1.7.0-alpha07
androidx.compose.ui:ui-graphics:1.7.0-alpha07
androidx.compose.ui:ui-graphics-android:1.7.0-alpha07
androidx.compose.ui:ui-graphics-desktop:1.7.0-alpha07
Description
Per Nader's suggestion, `OwnedLayer` is already being used for handling drawing and is in commonMain. If we expose a subset of functionalities of `OwnedLayer`, shared element will be able to leverage their existing layer and render it elsewhere.