Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit da7307ad0bb84c477e356b6694a73f6d2812cf84
Author: Sergio Sancho <ssancho@google.com>
Date: Mon Jul 31 12:09:40 2023
Eliminate Android dependecies.
Eliminate all android dependencies, creating platforma agnostic APIS.
* All path generating and drawing code is removed, and should be
implemented on each platform.
* All references to PointF android where removed, on the APIs we already
use Float. An internal Point class (inspired on Compose's Offset) is used to
simplify the implementation, but may be removed in the future and
replaced with just Floatsi too.
* To transforms cubics and rounded polygons a new PointTransformer
functional interface is added, that takes a MutablePoint (also a new
interface) and modifies it in-place. This is done mainly to avoid
costly object creation that will be required on Java to return a Point.
Later, this will have wrappers for Android and Compose.
Test: Manual + Unit Tests
Bug: 292289543
RelNote: "Eliminate android dependencies"
Change-Id: Iadc1c32dfc40a3e88e4c8516c59b21e71366e019
M graphics/graphics-shapes/api/current.txt
M graphics/graphics-shapes/api/restricted_current.txt
D graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/CubicShapeTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/CubicTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/PolygonTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/RoundedPolygonTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/ShapesTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/TestUtils.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Cubic.kt
D graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/CubicShape.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/FeatureMapping.kt
A graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Features.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Morph.kt
A graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Point.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/PolygonMeasure.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/RoundedPolygon.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Shapes.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Utils.kt
A graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/Compose.kt
M graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/DebugDraw.kt
M graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/MainActivity.kt
M graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/ShapeEditor.kt
A graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/Android.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeActivity.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeView.kt
https://android-review.googlesource.com/2683067
Branch: androidx-main
commit da7307ad0bb84c477e356b6694a73f6d2812cf84
Author: Sergio Sancho <ssancho@google.com>
Date: Mon Jul 31 12:09:40 2023
Eliminate Android dependecies.
Eliminate all android dependencies, creating platforma agnostic APIS.
* All path generating and drawing code is removed, and should be
implemented on each platform.
* All references to PointF android where removed, on the APIs we already
use Float. An internal Point class (inspired on Compose's Offset) is used to
simplify the implementation, but may be removed in the future and
replaced with just Floatsi too.
* To transforms cubics and rounded polygons a new PointTransformer
functional interface is added, that takes a MutablePoint (also a new
interface) and modifies it in-place. This is done mainly to avoid
costly object creation that will be required on Java to return a Point.
Later, this will have wrappers for Android and Compose.
Test: Manual + Unit Tests
Bug: 292289543
RelNote: "Eliminate android dependencies"
Change-Id: Iadc1c32dfc40a3e88e4c8516c59b21e71366e019
M graphics/graphics-shapes/api/current.txt
M graphics/graphics-shapes/api/restricted_current.txt
D graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/CubicShapeTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/CubicTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/PolygonTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/RoundedPolygonTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/ShapesTest.kt
M graphics/graphics-shapes/src/androidTest/java/androidx/graphics/shapes/TestUtils.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Cubic.kt
D graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/CubicShape.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/FeatureMapping.kt
A graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Features.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Morph.kt
A graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Point.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/PolygonMeasure.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/RoundedPolygon.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Shapes.kt
M graphics/graphics-shapes/src/main/java/androidx/graphics/shapes/Utils.kt
A graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/Compose.kt
M graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/DebugDraw.kt
M graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/MainActivity.kt
M graphics/integration-tests/testapp-compose/src/main/java/androidx/graphics/shapes/testcompose/ShapeEditor.kt
A graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/Android.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeActivity.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeView.kt
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 45f0be741a1958e3121f4f60e6aed0c00dcd7bb2
Author: Chet Haase <chet@google.com>
Date: Wed Aug 23 13:56:28 2023
KMP-ify the Shapes library
Compose needs to use the Shapes library, including adding API
and functionality that depends on it. Therefore, Shapes itself must
be a KMP library (Compose cannot use a library with Android
dependencies).
This CL makes Shapes a KMP library. It has the same Android artifact
as before (:graphics:graphics-shapes), but provides it in a way that
makes it accessible from Compose code.
Bug: 292289543
Test: Unit tests and integration test apps work
Change-Id: Ic84b4bb8bdba26879f94f74908b289f123e4e577
M graphics/graphics-shapes/build.gradle
M graphics/graphics-shapes/src/androidAndroidTest/AndroidManifest.xml
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/CornerRoundingTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/CubicTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/FloatMappingTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/PolygonMeasureTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/PolygonTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/RoundedPolygonTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/ShapesTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/TestUtils.kt
M graphics/graphics-shapes/src/commonMain/androidx/graphics/shapes/androidx-graphics-graphics-shapes-documentation.md
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/CornerRounding.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Cubic.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/FeatureMapping.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Features.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/FloatMapping.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Morph.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Point.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/PolygonMeasure.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/RoundedPolygon.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Shapes.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Utils.kt
M graphics/integration-tests/testapp-compose/src/main/AndroidManifest.xml
M graphics/integration-tests/testapp/src/main/AndroidManifest.xml
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/Android.kt
https://android-review.googlesource.com/2724238
Branch: androidx-main
commit 45f0be741a1958e3121f4f60e6aed0c00dcd7bb2
Author: Chet Haase <chet@google.com>
Date: Wed Aug 23 13:56:28 2023
KMP-ify the Shapes library
Compose needs to use the Shapes library, including adding API
and functionality that depends on it. Therefore, Shapes itself must
be a KMP library (Compose cannot use a library with Android
dependencies).
This CL makes Shapes a KMP library. It has the same Android artifact
as before (:graphics:graphics-shapes), but provides it in a way that
makes it accessible from Compose code.
Bug: 292289543
Test: Unit tests and integration test apps work
Change-Id: Ic84b4bb8bdba26879f94f74908b289f123e4e577
M graphics/graphics-shapes/build.gradle
M graphics/graphics-shapes/src/androidAndroidTest/AndroidManifest.xml
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/CornerRoundingTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/CubicTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/FloatMappingTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/PolygonMeasureTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/PolygonTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/RoundedPolygonTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/ShapesTest.kt
M graphics/graphics-shapes/src/androidAndroidTest/kotlin/androidx/graphics/shapes/TestUtils.kt
M graphics/graphics-shapes/src/commonMain/androidx/graphics/shapes/androidx-graphics-graphics-shapes-documentation.md
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/CornerRounding.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Cubic.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/FeatureMapping.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Features.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/FloatMapping.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Morph.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Point.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/PolygonMeasure.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/RoundedPolygon.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Shapes.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Utils.kt
M graphics/integration-tests/testapp-compose/src/main/AndroidManifest.xml
M graphics/integration-tests/testapp/src/main/AndroidManifest.xml
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/Android.kt
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit a7179016de19a696fcb03d420cbdfd0f62227eb0
Author: Chet Haase <chet@google.com>
Date: Thu Aug 24 08:19:20 2023
Add Android-specific APIs to KMP shapes library
This CL adds utility APIs on top of the core shapes API which
makes it easier to size/position and draw these shapes.
Bug: 292289543
Test: unit and regression tests pass
Relnote: Adding Android-specific transform and drawing APIs
Change-Id: I079f6f0cbfef6d4496bff858fb659be206d78988
M graphics/graphics-shapes/api/current.txt
M graphics/graphics-shapes/api/restricted_current.txt
A graphics/graphics-shapes/src/androidMain/kotlin/androidx/graphics/shapes/Android.kt
D graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/Android.kt
A graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/MorphView.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeActivity.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeView.kt
https://android-review.googlesource.com/2725255
Branch: androidx-main
commit a7179016de19a696fcb03d420cbdfd0f62227eb0
Author: Chet Haase <chet@google.com>
Date: Thu Aug 24 08:19:20 2023
Add Android-specific APIs to KMP shapes library
This CL adds utility APIs on top of the core shapes API which
makes it easier to size/position and draw these shapes.
Bug: 292289543
Test: unit and regression tests pass
Relnote: Adding Android-specific transform and drawing APIs
Change-Id: I079f6f0cbfef6d4496bff858fb659be206d78988
M graphics/graphics-shapes/api/current.txt
M graphics/graphics-shapes/api/restricted_current.txt
A graphics/graphics-shapes/src/androidMain/kotlin/androidx/graphics/shapes/Android.kt
D graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/Android.kt
A graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/MorphView.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeActivity.kt
M graphics/integration-tests/testapp/src/main/java/androidx/graphics/shapes/test/ShapeView.kt
ch...@google.com <ch...@google.com> #5
There may be more to do here when Compose writes code on top of the library; we will make any necessary API adjustments at that time, since that was the whole reason behind this KMP-ification.
Meanwhile, marking this bug closed, since the changes above are the ones we set out to do for the purpose of making it work better for Compose. Open new bugs as appropriate for specific issues which arise.
Meanwhile, marking this bug closed, since the changes above are the ones we set out to do for the purpose of making it work better for Compose. Open new bugs as appropriate for specific issues which arise.
na...@google.com <na...@google.com> #6
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.graphics:graphics-shapes:1.0.0-alpha04
al...@gmail.com <al...@gmail.com> #7
Ah, I get it—breaking free from Android-specific types to make Shapes KMP-friendly sounds like a solid move! Swapping those Android-isms for Compose's abstractions feels like a cleaner, future-proof approach. Just like creating versatile graphics solutions— https://iconicsgraphics.com/ comes to mind for their adaptable services—this shift will definitely help with cross-platform harmony. Good luck with the refactor!
Description
We should change Shapes to remove the Android-isms. potentially by using the existing abstractions that Compose already has for these types (same names, except PointF -> Offset)