Status Update
Comments
cl...@google.com <cl...@google.com>
gu...@gmail.com <gu...@gmail.com> #2
Branch: androidx-main
commit 0154910724cdc44253af1d2f8cede76264783226
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Idfd1faa3a826bb91ee14722f7437bdcf99cf0018
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
il...@gmail.com <il...@gmail.com> #3
Branch: androidx-main
commit 39cd1e9f7579513bde139c17f9c51f9012d56152
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
Reland
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Ic795af8486db48b31633799e06665717d08398db
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
me...@gmail.com <me...@gmail.com> #4
Branch: androidx-main
commit c3a06e79cf427aef1cf0ede1bacb463eb89472be
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
Reland
moving to project(":annotation:annotation") in commonMain as due to
project in one source set and prebuilt in the other.
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: I7f2a1bddbe79ab5e920cdb01ca6a428950a8c2c3
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M busytown/androidx_multiplatform_mac_host_tests_arm64.sh
M camera/integration-tests/avsynctestapp/build.gradle
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
M test/uiautomator/integration-tests/testapp/build.gradle
M wear/compose/integration-tests/navigation/build.gradle
co...@gmail.com <co...@gmail.com> #5
Branch: androidx-main
commit c56a2faf24c82bf961cb10440156745bf3cf30bd
Author: Aurimas Liutikas <aurimas@google.com>
Date: Wed Jul 03 11:10:40 2024
Add linuxX64Stubs for compose runtime libraries
- Add support for linuxX64Stubs
- Add these linuxX64Stubs to compose runtime projects
- Move OperationsTest from commonTest to jvmTest as it has
jvm-reflection usages
Bug: 349894318
Test: ./gradlew -p compose/runtime build
Change-Id: Ia600fafb174b585cf5a0d7a7f3c3726d10b4cc92
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M compose/runtime/runtime-saveable/build.gradle
M compose/runtime/runtime-test-utils/build.gradle
A compose/runtime/runtime-test-utils/src/commonMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.kt
M compose/runtime/runtime-test-utils/src/commonMain/kotlin/androidx/compose/runtime/mock/TestMonotonicFrameClock.kt
A compose/runtime/runtime-test-utils/src/jvmMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.jvm.kt
A compose/runtime/runtime-test-utils/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.linuxx64Stubs.kt
M compose/runtime/runtime/build.gradle
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Stack.kt
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/collection/ScopeMap.kt
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/SnapshotStateSet.kt
M compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/CompositionTestExtensions.kt
M compose/runtime/runtime/src/jvmTest/kotlin/androidx/compose/runtime/changelist/OperationsTest.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/NotImplemented.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/SynchronizedObject.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/TestOnly.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Atomic.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/ComposableLambda.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Thread.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/Utils.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/internal/WeakReference.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsTest/kotlin/kotlinx/test/IgnoreAndroidUnitTestTarget.linuxx64Stubs.kt
A compose/runtime/runtime/src/linuxx64StubsTest/kotlin/kotlinx/test/IgnoreJsTarget.linuxx64Stubs.kt
ja...@gmail.com <ja...@gmail.com> #6
Branch: androidx-main
commit 2363176cf646e7eb7647fcda7186746757fa9353
Author: Aurimas Liutikas <aurimas@google.com>
Date: Mon Jul 08 10:48:51 2024
Convert first batch of compose ui projects to add linuxX64Stubs target
- Disable running linuxx64StubsTest, as they are not representative
of a real environment
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/ui build
Change-Id: I6abbf8d425714a1c6c492e5ea25897fe6f226584
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M compose/ui/ui-geometry/build.gradle
M compose/ui/ui-graphics/build.gradle
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/internal/JvmDefaultWithCompatibility.android.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Bezier.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Float16.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/BlendMode.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/Canvas.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/ColorFilter.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/ImageBitmap.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/NotImplemented.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/Paint.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/Path.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/PathEffect.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/PathIterator.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/PathMeasure.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/RenderEffect.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/Shader.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/TileMode.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/internal/JvmDefaultWithCompatibility.commonStubs.kt
M compose/ui/ui-graphics/src/commonStubsMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayer.commonStubs.kt
M compose/ui/ui-graphics/src/commonTest/kotlin/androidx/compose/ui/graphics/vector/FastFloatParserTest.kt
M compose/ui/ui-unit/build.gradle
M compose/ui/ui-unit/src/commonMain/kotlin/androidx/compose/ui/unit/Constraints.kt
M compose/ui/ui-unit/src/commonMain/kotlin/androidx/compose/ui/unit/Dp.kt
M compose/ui/ui-unit/src/commonMain/kotlin/androidx/compose/ui/unit/IntOffset.kt
M compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/FontScaling.linuxx64Stubs.kt
M compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
M compose/ui/ui-util/build.gradle
M compose/ui/ui-util/src/commonStubsMain/kotlin/androidx/compose/ui/util/NotImplemented.commonStubs.kt
M compose/ui/ui-util/src/commonStubsMain/kotlin/androidx/compose/ui/util/Trace.commonStubs.kt
M compose/ui/ui-util/src/linuxx64StubsMain/kotlin/androidx/compose/ui/util/InlineClassHelper.linuxx64Stubs.kt
sa...@rapido.bike <sa...@rapido.bike> #7
Branch: androidx-main
commit 2df44b893c1b8ac2f29610fb5d3581c6e6fa4d08
Author: Aurimas Liutikas <aurimas@google.com>
Date: Mon Jul 08 13:29:56 2024
Convert compose ui-text project to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/ui build
Change-Id: I9631b90838a22c1d38c51e1c0e53caee3747f083
M compose/ui/ui-text/build.gradle
M compose/ui/ui-text/src/androidUnitTest/kotlin/androidx/compose/ui/text/SaversTest.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/ParagraphStyle.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/StringAnnotation.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/TextGranularity.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/TextStyle.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/input/GapBuffer.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/Hyphens.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/LineHeightStyle.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/TextForegroundStyle.kt
M compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.jvmStubs.kt
M compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.jvmStubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/ActualAtomicReferenceJvm.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/AnnotatedString.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/NotImplemented.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Paragraph.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Savers.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/TextStyle.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/GapBuffer.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/PlatformLocale.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/Synchronization.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.linuxx64Stubs.kt
A compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.linuxx64Stubs.kt
ro...@gmail.com <ro...@gmail.com> #8
Branch: androidx-main
commit 2aaa6124959e14e6982a5d6c88308bdb34b2c186
Author: Aurimas Liutikas <aurimas@google.com>
Date: Mon Jul 08 17:06:43 2024
Convert compose ui-test project to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/ui build
Change-Id: I65c0edbda876c7b9965a9144eae58f521c45967f
M compose/ui/ui-test/build.gradle
M compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/Actions.kt
M compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/GlobalAssertions.kt
M compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/TextActions.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/Actions.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/Assertions.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/ComposeUiTest.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/DensityForcedSize.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/Expect.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/InputDispatcher.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/Mouse.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/NotImplemented.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/Output.commonStubs.kt
A compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/TextActions.commonStubs.kt
M compose/ui/ui-test/src/commonStubsMain/kotlin/androidx/compose/ui/test/internal/JvmDefaultWithCompatibility.commonStubs.kt
A compose/ui/ui-test/src/jvmMain/kotlin/androidx/compose/ui/test/TextActions.jvm.kt
za...@gmail.com <za...@gmail.com> #9
Branch: androidx-main
commit 9ec4bcf90fa4f214ba0bc52cbb494896da661cfa
Author: Aurimas Liutikas <aurimas@google.com>
Date: Mon Jul 08 14:48:37 2024
Convert compose ui project to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/ui build
Change-Id: I778f6f9ea095bf06656bd70cc49bf6fdfd0d7b2c
M compose/ui/ui/build.gradle
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/ComposedModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/Modifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/SessionMutex.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusDirection.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusEventModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusRequesterModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/Focusability.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/OneDimensionalFocusSearch.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/ImageVector.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/layout/Layout.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/layout/LayoutCoordinates.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/DelegatingNode.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/DepthSortedSet.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/MyersDiff.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/NodeKind.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsModifier.kt
A compose/ui/ui/src/jvmMain/kotlin/androidx/compose/ui/Modifier.jvm.kt
A compose/ui/ui/src/jvmMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.jvm.kt
A compose/ui/ui/src/jvmMain/kotlin/androidx/compose/ui/semantics/SemanticsModifier.jvm.kt
M compose/ui/ui/src/jvmStubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.jvmStubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/Actual.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/AtomicReference.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/Modifier.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/NotImplemented.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentType.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/Key.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/internal/JvmDefaultWithCompatibility.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/node/JvmTreeSet.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/node/WeakReference.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/AtomicInt.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/ClassHelpers.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/DebugUtils.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Synchronization.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Wrapper.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Dialog.linuxx64Stubs.kt
A compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Popup.linuxx64Stubs.kt
ma...@gmail.com <ma...@gmail.com> #10
Branch: androidx-main
commit 25969d8585b6735cf7b56bf4dc118c68d3a1704f
Author: Aurimas Liutikas <aurimas@google.com>
Date: Tue Jul 09 14:51:32 2024
Convert compose foundation-layout project to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/foundation build
Change-Id: I69eb81436264648db175a6d865ca7bc29e2851d5
M compose/foundation/foundation-layout/build.gradle
M compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Column.kt
M compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/ContextualFlowLayout.kt
M compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/FlowLayout.kt
M compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/Row.kt
M compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/RowColumnImpl.kt
M compose/foundation/foundation-layout/src/commonMain/kotlin/androidx/compose/foundation/layout/RowColumnMeasurePolicy.kt
M compose/foundation/foundation-layout/src/commonStubsMain/kotlin/androidx/compose/foundation/layout/NotImplemented.commonStubs.kt
A compose/foundation/foundation-layout/src/commonStubsMain/kotlin/androidx/compose/foundation/layout/RowColumnMeasurePolicy.commonStubs.kt
M compose/foundation/foundation-layout/src/commonStubsMain/kotlin/androidx/compose/foundation/layout/WindowInsets.commonStubs.kt
M compose/foundation/foundation-layout/src/commonStubsMain/kotlin/androidx/compose/foundation/layout/WindowInsetsPadding.commonStubs.kt
A compose/foundation/foundation-layout/src/commonStubsMain/kotlin/androidx/compose/foundation/layout/internal/JvmDefaultWithCompatibility.commonStubs.kt
A compose/foundation/foundation-layout/src/jvmMain/kotlin/androidx/compose/foundation/layout/RowColumnMeasurePolicy.jvm.kt
ba...@gmail.com <ba...@gmail.com> #11
Branch: androidx-main
commit cae205daf0f36453c2334fe5ab6a158477503420
Author: Aurimas Liutikas <aurimas@google.com>
Date: Tue Jul 09 13:09:41 2024
Convert compose animation-core project to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/animation build
Change-Id: I872bcb0e1d1b5b9be13f35a7645a9704a2411e14
M compose/animation/animation-core/build.gradle
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Animation.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/ArcSpline.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/IntListExtension.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/InternalMutatorMutex.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec.kt
A compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/internal/JvmDefaultWithCompatibility.kt
A compose/animation/animation-core/src/commonStubsMain/kotlin/androidx/compose/animation/core/ArcSpline.commonStubs.kt
A compose/animation/animation-core/src/commonStubsMain/kotlin/androidx/compose/animation/core/Expect.commonStubs.kt
A compose/animation/animation-core/src/commonStubsMain/kotlin/androidx/compose/animation/core/InternalMutatorMutex.commonStubs.kt
A compose/animation/animation-core/src/commonStubsMain/kotlin/androidx/compose/animation/core/NotImplemented.commonStubs.kt
A compose/animation/animation-core/src/commonStubsMain/kotlin/androidx/compose/animation/core/internal/JvmDefaultWithCompatibility.commonStubs.kt
A compose/animation/animation-core/src/jvmMain/kotlin/androidx/compose/animation/core/ArcSpline.jvm.kt
A compose/animation/animation-core/src/jvmMain/kotlin/androidx/compose/animation/core/InternalMotatorMutex.jvm.kt
pr...@gmail.com <pr...@gmail.com> #12
Branch: androidx-main
commit dd908bb91d5d71617c2e5b20402ff801c16de0bb
Author: Aurimas Liutikas <aurimas@google.com>
Date: Tue Jul 09 15:13:15 2024
Convert compose animation projects to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/animation build
Change-Id: I5af188f28e9ab251623adfcf6916fc50d959f75a
M compose/animation/animation-graphics/build.gradle
M compose/animation/animation/build.gradle
M compose/animation/animation/src/commonStubsMain/kotlin/androidx/compose/animation/DefaultDecayAnimationSpec.commonStubs.kt
M compose/animation/animation/src/commonStubsMain/kotlin/androidx/compose/animation/NotImplemented.commonStubs.kt
M compose/animation/animation/src/commonStubsMain/kotlin/androidx/compose/animation/SplineBasedDecayAnimationSpec.commonStubs.kt
A compose/animation/animation/src/commonStubsMain/kotlin/androidx/compose/animation/internal/JvmDefaultWithCompatibility.commonStubs.kt
ma...@gmail.com <ma...@gmail.com> #13
Branch: androidx-main
commit 64c19e2612ecaca5c53a3f7b96d7b4fec2991709
Author: Aurimas Liutikas <aurimas@google.com>
Date: Tue Jul 09 20:32:43 2024
Convert compose foundation project to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/foundation build
Change-Id: I102625214a9299e77d32cf1e627d3d2f159f4541
M compose/foundation/foundation/build.gradle
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/BasicMarquee.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/MutatorMutex.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/content/TransferableContent.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/AnchoredDraggable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/internal/JvmSynchronized.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutItemContentFactory.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/layout/ObservableScopeInvalidator.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/staggeredgrid/LazyStaggeredGridMeasure.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/pager/Pager.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/relocation/BringIntoView.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/relocation/BringIntoViewRequester.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/relocation/BringIntoViewResponder.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/relocation/ScrollIntoViewRequester.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/ValidatingOffsetMapping.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/TextFieldBuffer.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/TextFieldCharSequence.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/TextObfuscationMode.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/internal/GapBuffer.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldDragAndDropNode.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/InlineDensity.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/MultiWidgetSelectionDelegate.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/BasicTooltip.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/Clickable.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/DarkTheme.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/DesktopOverscroll.commonStubs.kt
A compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/Expect.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/MutatorMutex.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/NotImplemented.commonStubs.kt
A compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/content/MediaType.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/content/TransferableContent.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/content/internal/DragAndDropRequestPermission.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/content/internal/ReceiveContentDragAndDropNode.commonStubs.kt
A compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/gestures/AnchoredDraggable.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/gestures/BringIntoViewSpec.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/gestures/DesktopScrollable.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/internal/JvmDefaultWithCompatibility.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/internal/JvmSynchronized.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/lazy/layout/Lazy.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/lazy/layout/PrefetchScheduler.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/relocation/BringIntoViewResponder.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/ContextMenu.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/CursorHandle.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/DeadKeyCombiner.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/KeyEventHelpers.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/KeyMapping.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/StringHelpers.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/TextFieldFocusModifier.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/TextFieldKeyInput.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/TextPointerIcon.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/TouchMode.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/UndoManager.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/handwriting/StylusHandwriting.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/CodepointHelpers.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/LegacyPlatformTextInputServiceAdapter.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldDragAndDropNode.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldKeyEventHandler.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldLayoutStateCache.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/TextInputSession.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/ToCharArray.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/input/internal/selection/TextFieldMagnifier.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/selection/SelectionHandles.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.commonStubs.kt
M compose/foundation/foundation/src/commonStubsMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.commonStubs.kt
A compose/foundation/foundation/src/jvmMain/kotlin/androidx/compose/foundation/MutatorMutex.jvm.kt
A compose/foundation/foundation/src/jvmMain/kotlin/androidx/compose/foundation/gestures/AnchoredDraggable.jvm.kt
M compose/foundation/foundation/src/jvmMain/kotlin/androidx/compose/foundation/internal/JvmSynchronized.jvm.kt
M compose/foundation/foundation/src/jvmMain/kotlin/androidx/compose/foundation/lazy/layout/LazyLayoutPrefetchState.jvm.kt
D compose/foundation/foundation/src/jvmStubsMain/kotlin/androidx/compose/foundation/content/MediaType.jvmStubs.kt
ri...@gmail.com <ri...@gmail.com> #14
Branch: androidx-main
commit cec36ac792a749f139f04404d8ca327ec0711dc9
Author: Aurimas Liutikas <aurimas@google.com>
Date: Wed Jul 10 13:43:42 2024
Convert compose material projects to add linuxX64Stubs target
- Add all needed stub actuals
Bug: 349894318
Test: ./gradlew -p compose/material build
Change-Id: Id9f289348121c28e6e81875049143af92bde4bc1
M compose/material/material-ripple/build.gradle
M compose/material/material-ripple/src/commonStubsMain/kotlin/androidx/compose/material/ripple/NotImplemented.commonStubs.kt
M compose/material/material-ripple/src/commonStubsMain/kotlin/androidx/compose/material/ripple/Ripple.commonStubs.kt
M compose/material/material/build.gradle
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/AnchoredDraggable.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Chip.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/InteractiveComponentSize.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Scaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/AlertDialog.jvmStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/AnchoredDraggable.commonStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/DefaultPlatformTextStyle.jvmStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/InteractiveComponentSize.commonStubs.kt
A compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/InternalMutatorMutex.commonStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/MaterialTheme.jvmStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/Menu.commonStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/NotImplemented.jvmStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/Strings.jvmStubs.kt
M compose/material/material/src/commonStubsMain/kotlin/androidx/compose/material/SystemBarsDefaultInsets.jvmStubs.kt
M compose/material/material/src/jvmMain/kotlin/androidx/compose/material/AnchoredDraggable.jvm.kt
M compose/material/material/src/jvmMain/kotlin/androidx/compose/material/InteractiveComponentSize.jvm.kt
D compose/material/material/src/jvmStubsMain/kotlin/androidx/compose/material/DesktopMenu.jvmStubs.kt
ep...@gmail.com <ep...@gmail.com> #15
Branch: androidx-main
commit effae92803db9492dba05942e0d18c47df191932
Author: Aurimas Liutikas <aurimas@google.com>
Date: Tue Jul 16 11:36:11 2024
Migrate compose library to always use commonStubsMain for no-op actuals
Test: ./gradlew -p compose build
Bug: 349894318
Change-Id: Ic2f4685c65adc276bfee531d248a8577166dbba2
M compose/runtime/runtime-saveable/build.gradle
M compose/runtime/runtime-test-utils/build.gradle
M compose/runtime/runtime-test-utils/src/commonStubsMain/kotlin/androidx/compose/runtime/mock/SynchronizedObject.commonStubs.kt
M compose/runtime/runtime/build.gradle
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/NotImplemented.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/SynchronizedObject.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/TestOnly.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Atomic.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/ComposableLambda.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/JvmDefaultWithCompatibility.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Thread.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/Utils.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/internal/WeakReference.commonStubs.kt
M compose/runtime/runtime/src/commonStubsMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.commonStubs.kt
D compose/runtime/runtime/src/jvmStubsMain/kotlin/androidx/compose/runtime/internal/Utils.jvmStubs.kt
D compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/MonotonicFrameClock.linuxx64Stubs.kt
D compose/runtime/runtime/src/linuxx64StubsMain/kotlin/androidx/compose/runtime/NotImplemented.linuxx64Stubs.kt
M compose/ui/ui-text/build.gradle
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/style/LineBreak.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/ActualAtomicReferenceJvm.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/AnnotatedString.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/NotImplemented.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/Paragraph.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/Savers.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/TextStyle.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/input/GapBuffer.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/internal/JvmDefaultWithCompatibility.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/intl/PlatformLocale.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/platform/Synchronization.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.commonStubs.kt
M compose/ui/ui-text/src/commonStubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.commonStubs.kt
D compose/ui/ui-text/src/jvmStubsMain/kotlin/androidx/compose/ui/text/font/FontSynthesis.jvmStubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/JvmCharHelpers.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/NotImplemented.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Paragraph.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/Savers.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/TextStyle.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/DelegatingFontLoaderForDeprecatedUsage.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/font/PlatformFontFamilyTypefaceAdapter.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/input/PlatformImeOptions.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/intl/DesktopPlatformLocale.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/DesktopStringDelegate.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaMultiParagraphDraw.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraph.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/platform/SkiaParagraphIntrinsics.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/LineBreak.linuxx64Stubs.kt
D compose/ui/ui-text/src/linuxx64StubsMain/kotlin/androidx/compose/ui/text/style/TextMotion.linuxx64Stubs.kt
M compose/ui/ui-unit/build.gradle
M compose/ui/ui-unit/src/commonStubsMain/kotlin/androidx/compose/ui/unit/FontScaling.commonStubs.kt
M compose/ui/ui-unit/src/commonStubsMain/kotlin/androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility.commonStubs.kt
D compose/ui/ui-unit/src/linuxx64StubsMain/kotlin/androidx/compose/ui/unit/FontScaling.linuxx64Stubs.kt
M compose/ui/ui-util/build.gradle
M compose/ui/ui-util/src/commonStubsMain/kotlin/androidx/compose/ui/util/InlineClassHelper.commonStubs.kt
M compose/ui/ui/build.gradle
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/Actual.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/AtomicReference.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/Modifier.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/NotImplemented.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/autofill/ContentType.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/key/Key.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/pointer/SuspendingPointerInputFilter.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/internal/JvmDefaultWithCompatibility.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/node/JvmTreeSet.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/node/WeakReference.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/AtomicInt.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/ClassHelpers.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/DebugUtils.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/Synchronization.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/platform/Wrapper.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/window/Dialog.commonStubs.kt
M compose/ui/ui/src/commonStubsMain/kotlin/androidx/compose/ui/window/Popup.commonStubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/NotImplemented.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentDataType.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/autofill/ContentType.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/draganddrop/DragAndDrop.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/hapticfeedback/PlatformHapticFeedbackType.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/Key.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/key/KeyEvent.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/InternalPointerEvent.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerEvent.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerIcon.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/pointer/PointerInputEvent.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/input/rotary/RotaryScrollEvent.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformClipboardManager.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputMethodRequest.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/PlatformTextInputSession.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/platform/Wrapper.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropView.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/viewinterop/InteropViewFactoryHolder.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Dialog.linuxx64Stubs.kt
D compose/ui/ui/src/linuxx64StubsMain/kotlin/androidx/compose/ui/window/Popup.linuxx64Stubs.kt
ra...@gmail.com <ra...@gmail.com> #16
Branch: androidx-main
commit 932720ab79c7fd016cff7adec4358606209662cc
Author: Aurimas Liutikas <aurimas@google.com>
Date: Wed Jul 10 16:54:13 2024
Add additional targets to graphics:graphics-shapes library
These targets are needed to add support for these targets to
compose.material3 library
Bug: 349894318
Test: ./gradlew graphics:graphics-shapes:build
Change-Id: I10d41346cd9555e5a76b267e8cb305e13487b208
M graphics/graphics-shapes/build.gradle
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/FloatMapping.kt
A graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Format.kt
M graphics/graphics-shapes/src/commonMain/kotlin/androidx/graphics/shapes/Morph.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
A graphics/graphics-shapes/src/jvmMain/kotlin/androidx/graphics/shapes/Format.jvm.kt
A graphics/graphics-shapes/src/nativeMain/kotlin/androidx/graphics/shapes/Format.native.kt
xy...@gmail.com <xy...@gmail.com> #17
Branch: androidx-main
commit 0c6639ccf4cc18be4c3a461125c52af8c483dc9d
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jul 18 13:35:49 2024
Add support for mingwX64 target in annotation:annotation
This will help in the effort to allow jetbrains' compose to stop forking
this library.
Bug: 349894318
Relnote: Adding support for mingwX64 platform
Test: ./gradlew annotation:annotation:publish
Change-Id: I461cad1935cd2c29aa7eb05f5e6971215292f11c
M annotation/annotation/bcv/native/current.txt
M annotation/annotation/build.gradle
M buildSrc-tests/src/test/java/androidx/build/KmpPlatformsTest.kt
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
ho...@gmail.com <ho...@gmail.com> #18
Branch: androidx-main
commit c2551dbbb12c9d690b1e52c854ff72103aed4935
Author: Aurimas Liutikas <aurimas@google.com>
Date: Wed Jul 10 16:10:02 2024
Convert first batch of compose material3 projects to add linuxX64Stubs target
- Add all needed stub actuals
- Remove dependency on material-icons-core from material3 by copying
relevant icons over
Relnote: """material3 no longer adds a dependency to material-icons-core so if
your project relied on that, you will have to explicitly add that
dependency in your build.gradle[.kts] files."""
Bug: 349894318
Test: ./gradlew -p compose/material3 build
Change-Id: I735ffb809330e77356492b3f63ad4bd5081cdd8e
M compose/material3/adaptive/samples/build.gradle
M compose/material3/integration-tests/macrobenchmark-target/build.gradle
M compose/material3/material3-adaptive-navigation-suite/samples/build.gradle
M compose/material3/material3-common/build.gradle
M compose/material3/material3-common/src/commonMain/kotlin/androidx/compose/material3/common/InteractiveComponentSize.kt
A compose/material3/material3-common/src/commonStubsMain/kotlin/androidx/compose/material3/common/InteractiveComponentSize.commonStubs.kt
A compose/material3/material3-common/src/commonStubsMain/kotlin/androidx/compose/material3/common/NotImplemented.commonStubs.kt
A compose/material3/material3-common/src/jvmMain/kotlin/androidx/compose/material3/common/InteractiveComponentSize.jvm.kt
M compose/material3/material3-window-size-class/build.gradle
A compose/material3/material3-window-size-class/src/commonStubsMain/kotlin/androidx/compose/material3/windowsizeclass/TestOnly.stubsCommon.kt
M compose/material3/material3/build.gradle
A compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/DateInput.android.kt
A compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/DatePicker.android.kt
M compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/ExposedDropdownMenu.android.kt
M compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/InteractiveComponentSize.android.kt
A compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/internal/AnchoredDraggable.android.kt
M compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/internal/CalendarModel.android.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/AppBar.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/BottomSheetScaffold.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/DateInput.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/DatePicker.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/InteractiveComponentSize.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ListItem.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/NavigationItem.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ProgressIndicator.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SegmentedButton.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/SheetDefaults.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ShortNavigationBar.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Slider.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/Snackbar.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/TimePicker.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/WideNavigationRail.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/carousel/Carousel.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/internal/AnchoredDraggable.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/internal/CalendarModel.kt
A compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/internal/Icons.kt
M compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/internal/Strings.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/AlertDialog.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/CalendarLocale.commonStubs.kt
A compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/DateInput.commonStubs.kt
A compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/DatePicker.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/InteractiveComponentSize.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/ModalBottomSheet.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/NavigationDrawer.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/NotImplemented.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/SkikoMenu.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/TimeFormat.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/TimePicker.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/Tooltip.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/AccessibilityServiceStateProvider.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/AnchoredDraggable.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/BasicTooltip.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/CalendarModel.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/DefaultPlatformTextStyle.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/InternalMutatorMutex.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/Strings.commonStubs.kt
M compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/internal/SystemBarsDefaultInsets.commonStubs.kt
br...@gmail.com <br...@gmail.com> #19
Branch: androidx-main
commit 1d1abef790da93325a83fe19b50ccdec06be6956
Author: Aurimas Liutikas <aurimas@google.com>
Date: Tue Jul 23 12:56:48 2024
Remove material-icons-core dependency from the material library
Copies the single icon used in ExposedDropdownMenu into the library.
This helps make sure that Jetbrains copy of compose does not need this
library.
Relnote: """material no longer adds a dependency to material-icons-core so if
your project relied on that, you will have to explicitly add that
dependency in your build.gradle[.kts] files."""
Bug: 349894318
Test: ./gradlew -p compose:material build assembleAndroidTest
Change-Id: Ie8fb35d07ce22063d5daf175927dd5a094016cae
M camera/integration-tests/avsynctestapp/build.gradle
M compose/animation/animation-core/samples/build.gradle
M compose/animation/animation/integration-tests/animation-demos/build.gradle
M compose/animation/animation/samples/build.gradle
M compose/foundation/foundation-layout/benchmark/build.gradle
M compose/foundation/foundation-layout/integration-tests/layout-demos/build.gradle
M compose/foundation/foundation/integration-tests/foundation-demos/build.gradle
M compose/foundation/foundation/samples/build.gradle
M compose/integration-tests/macrobenchmark-target/build.gradle
M compose/integration-tests/material-catalog/build.gradle
M compose/material/material/build.gradle
M compose/material/material/samples/build.gradle
M compose/material/material/src/androidMain/kotlin/androidx/compose/material/ExposedDropdownMenu.android.kt
A compose/material/material/src/commonMain/kotlin/androidx/compose/material/internal/Icons.kt
M compose/ui/ui-inspection/build.gradle
M compose/ui/ui-tooling/build.gradle
M compose/ui/ui/build.gradle
M compose/ui/ui/integration-tests/ui-demos/build.gradle
M constraintlayout/constraintlayout-compose/build.gradle
M constraintlayout/constraintlayout-compose/integration-tests/demos/build.gradle
M constraintlayout/constraintlayout-compose/integration-tests/macrobenchmark-target/build.gradle
M navigation/navigation-compose/integration-tests/navigation-demos/build.gradle
am...@gmail.com <am...@gmail.com> #20
Branch: androidx-main
commit 41f67627c98f52328685113382cc67d0676d40af
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jul 25 14:10:45 2024
Add additional native platforms to window-core library
Test: ./gradlew window:window-core:build
Bug: 349894318
Change-Id: I488534b84bb0b646c422bb28349ed391290d3c1d
M window/window-core/build.gradle
M window/window-core/src/commonMain/kotlin/androidx/window/core/layout/WindowSizeClass.kt
to...@gmail.com <to...@gmail.com> #21
r.android.com/3205674 will be the last change adding linux stubs to androidx.compose.material3.adaptive
lo...@gmail.com <lo...@gmail.com> #22
For adaptive, follow along on
ta...@mercury.com <ta...@mercury.com> #23
Here's a terrible, terrible hack to get the blur RenderEffect
for a Compose canvas.
The hack is terrible but it appears to work. You have been warned.
so...@gmail.com <so...@gmail.com> #24
de...@gmail.com <de...@gmail.com> #25
ya...@gmail.com <ya...@gmail.com> #26
ma...@gmail.com <ma...@gmail.com> #27
Hey folks, please stop adding +1 comments and use the dedicated star button at the top of the page instead.
That'll save some noise and avoid all the "stargazers" from getting unactionable emails.
Thank you.
[Deleted User] <[Deleted User]> #29
ap...@google.com <ap...@google.com> #31
Branch: androidx-main
commit 87b47565c30d75faf827b482a2dbad95c3016ca7
Author: Nader Jawad <njawad@google.com>
Date: Tue Aug 17 19:56:23 2021
Introduce BlurredEdgeTreatment API
Relnote: "Added BlurredEdgeTreatment API
to simplify blur use cases into more
commonly used combinations of clip flags
and TileModes. Most use cases involve
either letting blurred content render
outside the original content bounds
and blurring regions outside these bounds
with transparent black, or clipping content
to content bounds sampling the closest edge
for blur kernels that extend beyond content
bounds."
Bug: 166927547
Test: Added BlurTest
Change-Id: I6b4b7966920855374275ae7ea950b310fa28efd0
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/BlurSample.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/draw/BlurTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draw/Blur.kt
ap...@google.com <ap...@google.com> #32
Branch: androidx-main
commit a04a6e81fdeba710a3790d30e113d203dd3ff390
Author: Nader Jawad <njawad@google.com>
Date: Tue Aug 03 17:37:24 2021
More RenderEffect support
Relnote: "Added support for RenderEffect
in compose desktop.
Introduced OffsetEffect as well as
the blur modifier as a simple way to
introduce blur visual effects to a portion
of the composition hierarchy."
Fixed order of operations issue on compose
desktop that prevented clipping from working
properly with saveLayer.
Bug: 166927547
Test: Added tests to RenderEffectTest/GraphicsLayerTest/
AndroidRenderEffectTest
Change-Id: I0f6aa293db2bf34f5ed2aa7499a97332dacf73fc
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/public_plus_experimental_current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
M compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/AndroidRenderEffectTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidRenderEffect.android.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/RenderEffect.kt
M compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/DesktopTileMode.desktop.kt
A compose/ui/ui-graphics/src/desktopMain/kotlin/androidx/compose/ui/graphics/RenderEffect.desktop.kt
M compose/ui/ui-graphics/src/test/java/androidx/compose/ui/graphics/RenderEffectTest.kt
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.txt
A compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/BlurSample.kt
A compose/ui/ui/samples/src/main/res/drawable/circus.jpg
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/draw/GraphicsLayerModifierTest.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/draw/GraphicsLayerTest.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/draw/Blur.kt
M compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/SkijaLayer.desktop.kt
M compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/platform/SkijaLayerTest.kt
ap...@google.com <ap...@google.com> #33
Branch: androidx-main
commit af8e89a54fb3173251a43251bd8a0bda2a126c66
Author: Nader Jawad <njawad@google.com>
Date: Fri Jul 30 18:46:49 2021
Add RenderEffect API
Relnote: "Introduced RenderEffect API
that can be optionally configured on
a Modifier.graphicsLayer to alter
the contents of the layer itself. This
can be used to blur contents of a composable
and child composables within a composition
hierarchy."
Bug: 166927547
Test: Added tests to RenderEffectTest/GraphicsLayerTest/
AndroidRenderEffectTest
Change-Id: I47c4d5ecc801f35e632d2062e03c756f564a2db5
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/public_plus_experimental_current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
A compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/AndroidRenderEffectTest.kt
A compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidRenderEffect.android.kt
A compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/RenderEffect.kt
A compose/ui/ui-graphics/src/test/java/androidx/compose/ui/graphics/RenderEffectTest.kt
M compose/ui/ui/api/current.ignore
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.ignore
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidLayoutDrawTest.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/draw/GraphicsLayerTest.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/DeviceRenderNode.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/RenderNodeApi23.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/RenderNodeApi29.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/RenderNodeLayer.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/ViewLayer.android.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsLayerModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/GraphicsLayerScope.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNodeWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OwnedLayer.kt
M compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/SkijaLayer.desktop.kt
M compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/LayoutNodeTest.kt
ap...@google.com <ap...@google.com> #34
Branch: androidx-main
commit 1d626519ace91a88f1a08d02b24d3741dea10b95
Author: Nader Jawad <njawad@google.com>
Date: Thu Jul 29 15:23:06 2021
Introduce TileMode.Decal
Relnote: "Add TileMode.Decal support
which is useful in defining edge
behavior for blur based RenderEffects."
Bug: 166927547
Test: Added tests to TileModeTest and
AndroidTileModeTest
Change-Id: I7e8ed0c4eb2490ef3cd0032b5952d0962f489354
M compose/ui/ui-graphics/api/current.txt
M compose/ui/ui-graphics/api/public_plus_experimental_current.txt
M compose/ui/ui-graphics/api/restricted_current.txt
A compose/ui/ui-graphics/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/AndroidTileModeTest.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidTileMode.android.kt
M compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/TileMode.kt
M compose/ui/ui-graphics/src/test/java/androidx/compose/ui/graphics/TileModeTest.kt
el...@gmail.com <el...@gmail.com> #35
nj...@google.com <nj...@google.com>
cs...@google.com <cs...@google.com> #36
🎉🎉🎉
fa...@gmail.com <fa...@gmail.com> #37
when will it be ready for use? And short guideline would great. Thank you for the fast reaction!
da...@gmail.com <da...@gmail.com> #38
Nice, which version of compose will have this?
Is it android 12 only or backported? Thanks and well done!
nj...@google.com <nj...@google.com> #39
This API is supported on Android 12 only and is a no-op for older API levels.
Blur is supported as a Modifier API and common usage would look like the following:
Box(modifier = Modifier.size(100.dp).blur(30.dp)) {
// child composable
}
[Deleted User] <[Deleted User]> #40
se...@gmail.com <se...@gmail.com> #41
It's already been released with Compose 1.1.0-alpha03
ru...@gmail.com <ru...@gmail.com> #42
sh...@gmail.com <sh...@gmail.com> #43
is it supported in android < 12
si...@gmail.com <si...@gmail.com> #44
ri...@gmail.com <ri...@gmail.com> #45
I think this question should be reopened? It doesn't support versions below Android S, as a non-system ui framework, this is very disappointing.
ja...@gmail.com <ja...@gmail.com> #46
And Kotlin Multiplatform info should be great too
sh...@gmail.com <sh...@gmail.com> #47
The Blur Modifier in compose currently only supports the API 31, hence it is of no use. I tried to create a blur Modifier by first drawing the content on the bitmap canvus and the blur it and draw it on target canvus. but it seems compose does expose the draw(canvus) like in ViewWorld. Currently I looked the docs of Test ScreenShot, Magnifier but both of these use onGloballyPositioned to capture the piece of bitmap from LocalView. Hence it doesn't do what I intended it to do.
There is another solution that involves Creating a Blury View and then use composed to make a modifier (But I don't like this solution.). If anybody knows how to achieve it please do tell me.
mg...@gmail.com <mg...@gmail.com> #48
bl...@gmail.com <bl...@gmail.com> #49
cs...@google.com <cs...@google.com> #50
To
On the "glassmorphism" effect, could send a link to exactly what effect do you mean?
ga...@gmail.com <ga...@gmail.com> #51
+1
wo...@gmail.com <wo...@gmail.com> #52
mg...@gmail.com <mg...@gmail.com> #53
The best I can show you without putting to much effort on it, it is some images examples:
Here, the card receives an alpha color and the elements located behind it receive a level o blur.
As you move the front element, the back ones dynamically interact with it.
And the effect, as you can see, can be stacked.
ca...@usp.br <ca...@usp.br> #54
Glassmorphism would be great since it opens several UI possibilities (that right now seems only feasible for iOS). In Brazil, Android is predominant and there's a current trend among UXs to adopt glassmorphic like effects. The only thing holding us back is the implementation friction.
Plenty use cases here:
ra...@gmail.com <ra...@gmail.com> #55
We need it
cs...@google.com <cs...@google.com> #56
Regarding
mg...@gmail.com <mg...@gmail.com> #57
mg...@gmail.com <mg...@gmail.com> #58
Searching through the internet, you can find quite a lot of examples on how to implement background blur. All the examples, although different in execution, uses the same logic:
1 - You choose a root for you effect;
2 - You choose the view you want to apply the effect on;
3 - You observe the view relative position into the view tree;
4 - When the view is showing itself on the screen, fully or partially, you start the following computation:
a - Get the matrix dimension of the desired view;
b - Generates a bitmap from the dimensions of the view;
c - Scale down to a proper scale so the next steps don't consume too much resources;
d - With the scaled bitmap, apply algorithms of image treatment to achieve the blur effect;
e - With the blurred bitmap, paint it on a canvas based on the dimensions of the view;
f - finally, display the blurred view on the place of a normal view (with transparent on it).
As you can see, this process is kind of a cheat one. It can work well in some cases, but most of them are just terrible. The more your components move in screen, the harder it becomes to achieve performance and better looking effects.
Another downside of this method is its compatibility with the composable way of working. On old style android, each fragment / activity is its own view. But, that's not the case for compose: the whole thing is a single view. There are some ways of transforming Compose component -> Compose View -> Android View, creating some sort of old android view tree, but that's just nasty and prune to bad results.
After experimenting with all of these, I was looking into the Composable Canvas, having a lot fun with it by the way, and I realized the presence of a very interesting effect which can be applied to the drawing: blend mode.
Blend mode has some interesting visual effects on the drawing. It computes a mix of RGB channels so the back composable interacts with the children component mixing the visuals. It's almost the same principle used in the background blur, but instead of pixels effect, it's a color effect. The blend mode, funny enough, just breaks with the new Blur Effect from composable.
Finally, a last but interesting discover, is the
mg...@gmail.com <mg...@gmail.com> #60
[Deleted User] <[Deleted User]> #61
ba...@gmail.com <ba...@gmail.com> #62
Dear Android Team,
Current design i.e Modifier.blur(50.dp)
supports blur on the composable itself not underneath. But its use is too much limited. What most of the people here and elsewhere are
looking for overlay blur which is not supported.
I don't think it is a too hard to even comprehend kind of request. If you guys believe it is. Kindly give us a response of why it is that hard to implemented a overlay blur.
da...@gmail.com <da...@gmail.com> #63
Android 12 introduced support for RenderEffect
s including blurring, even though out-of-the-box it would blur the View
itself, and not any content underneath it — so it's not a backdrop blur (in CSS terms, it's like filter: blur()
and not backdrop-filter: blur()
).
However, internally, Views are backed by RenderNode
s, which ultimately apply RenderEffects. By leveraging RenderNodes, it's possible to implement backdrop blurring, and I've done that with Compose. Note that it's for Android 12 onwards.
For anyone interested, the implementation is at the end of the post.
Sample usage
It works in a producer–consumer manner, where the producer is any composable with Modifier.backdropContent
(which feeds the composable into the Backdrop
) and the consumer is any composable with Modifier.backdrop
(which takes content from the specified Backdrop
and draws it behind the composable, applying a RenderEffect
to it). The Backdrop
class thus serves to connect the producers and the consumers and it also stores the content being produced — the backdrop. You obtain an instance of Backdrop
using the rememberBackdrop
function.
To further simplify usage on the consumer part, I also implemented Modifier.blurredSurface
, which accepts a surfaceColor
, blurRadius
, saturation
, and a border stroke
, and sets up the backdrop with the appropriate RenderEffect
automatically. The following example should show a list (to be populated) and a blurred bar overlaid on top of the list.
- Note: I haven't tested the example, but the implementation works in my app.
@Composable
fun BackdropBlurDemo() {
val backdrop = rememberBackdrop()
val listState = rememberLazyListState()
val showDivider = listState.canScrollForward
Box(modifier = Modifier.fillMaxSize()) {
Box(
modifier = Modifier
.fillMaxWidth()
.requiredHeight(56.dp)
.blurredSurface(backdrop) {
BlurredSurfaceDefaults.parameters(
strokeAlpha = when {
showDivider -> BlurredSurfaceDefaults.DefaultStrokeAlpha
else -> 0f
},
strokeAlphaAnimationSpec = spring()
)
}
)
LazyColumn(
state = listState,
modifier = Modifier
.matchParentSize()
.backdropContent(backdrop)
) {
// Load some items
}
}
}
Implementation
Notes:
- Some
import
s may be missing or unordered, I joined several files to post the code here. - The implementation depends on the artifact
androidx.compose.ui:ui-util
.
import android.graphics.RenderNode
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.compose.animation.core.AnimationSpec
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.material3.DividerDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.composed
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.draw.drawWithContent
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.*
import androidx.compose.ui.graphics.drawscope.DrawScope
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.layout.*
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.util.packFloats
import androidx.compose.ui.util.unpackFloat1
import androidx.compose.ui.util.unpackFloat2
import kotlin.contracts.ExperimentalContracts
import kotlin.contracts.contract
import kotlin.math.roundToInt
import kotlin.reflect.KProperty
@Immutable
data class BlurredSurfaceParameters(
val surfaceColor: Color,
val blurRadius: Dp,
val saturation: Float,
val stroke: DpStroke?
) {
@JvmField
internal val paint = Paint().also { paint ->
paint.colorFilter = ColorFilter.colorMatrix(
colorMatrix = when (val saturation = saturation) {
1f -> {
MakeOpaqueColorMatrix
}
else -> ColorMatrix().also { colorMatrix ->
colorMatrix.setToSaturation(saturation)
colorMatrix *= MakeOpaqueColorMatrix
}
}
)
}
}
@Immutable
object BlurredSurfaceDefaults {
const val DefaultSurfaceOpacity = 0.5f
@JvmStatic val DefaultBlurRadius = 24.dp
const val DefaultSaturation = 1.3f
const val DefaultStrokeAlpha = 0.7f
@Composable
fun parameters(
surfaceColor: Color = MaterialTheme.colorScheme.surface,
surfaceOpacity: Float = DefaultSurfaceOpacity,
blurRadius: Dp = DefaultBlurRadius,
saturation: Float = DefaultSaturation,
strokeAlpha: Float = DefaultStrokeAlpha,
strokeAlphaAnimationSpec: AnimationSpec<Float>? = null,
stroke: DpStroke? = DpStroke(
width = DividerDefaults.Thickness,
color = MaterialTheme.colorScheme.outlineVariant,
parameters = StrokeParameters(
alignment = -1f,
alpha = when (strokeAlphaAnimationSpec) {
null -> strokeAlpha
else -> animateFloatAsState(
targetValue = strokeAlpha,
animationSpec = strokeAlphaAnimationSpec,
visibilityThreshold = 1f / 255f,
label = "blurredSurface strokeAlpha"
).value
},
blendMode = BlendMode.Luminosity
)
)
) = BlurredSurfaceParameters(
surfaceColor = surfaceColor.copy(alpha = surfaceOpacity),
blurRadius = blurRadius,
saturation = saturation,
stroke = stroke
)
}
fun Modifier.blurredSurface(
backdrop: Backdrop,
parameters: @DisallowComposableCalls @Composable () -> BlurredSurfaceParameters = {
BlurredSurfaceDefaults.parameters()
}
) = composed {
val currentParameters by rememberUpdatedState(parameters())
val currentDensity by rememberUpdatedState(LocalDensity.current)
val background: DrawScope.() -> Unit = remember {
{ drawRect(currentParameters.surfaceColor.copy(alpha = 1f)) }
}
remember {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
backdrop(
backdrop = backdrop,
background = background,
paint = { currentParameters.paint },
renderEffect = {
with(currentDensity) {
val radiusPx = currentParameters.blurRadius.toPx()
BlurEffect(
radiusX = radiusPx,
radiusY = radiusPx,
edgeTreatment = TileMode.Decal
)
}
}
).drawBehind {
drawRect(currentParameters.surfaceColor)
}
} else {
drawBehind(background)
}
}
.stroke(currentParameters.stroke)
}
private val MakeOpaqueColorMatrix = ColorMatrix(
floatArrayOf(
1f, 0f, 0f, 0f, 0f,
0f, 1f, 0f, 0f, 0f,
0f, 0f, 1f, 0f, 0f,
0f, 0f, 0f, 0f, 255f
)
)
@Composable
fun rememberBackdrop(): Backdrop =
remember { Backdrop() }
@RequiresApi(Build.VERSION_CODES.S)
fun Modifier.backdropContent(
backdrop: Backdrop,
paint: () -> Paint? = Backdrop.DefaultPrePaint
): Modifier {
val paintState = derivedStateOf(structuralEqualityPolicy(), paint)
return composed {
remember(backdrop) {
backdrop.ContentNode(paintState = paintState)
}.modifier
}
}
@RequiresApi(Build.VERSION_CODES.S)
fun Modifier.backdrop(
backdrop: Backdrop,
inset: Dp = 0.dp,
background: (DrawScope.() -> Unit)? = null,
paint: () -> Paint? = Backdrop.DefaultPostPaint,
renderEffect: () -> RenderEffect
): Modifier {
val paintState = derivedStateOf(structuralEqualityPolicy(), paint)
val renderEffectState = derivedStateOf(structuralEqualityPolicy(), renderEffect)
return composed {
remember(backdrop) {
BackdropNode(
backdrop = backdrop,
paintState = paintState,
renderEffectState = renderEffectState,
initialInsetDp = inset.value
)
}
.also { it.background = background }
.also { it.insetDp = inset.value }
.modifier
}
}
class Backdrop internal constructor() {
@Immutable
internal companion object {
@JvmStatic internal val DefaultPrePaint: () -> Paint? = { null }
@JvmStatic internal val DefaultPostPaint: () -> Paint? = { null }
@JvmStatic private val DefaultPrePaintValue = NativePaint()
}
private var contentNodeHead: ContentNode? = null
private var contentNodeTail: ContentNode? = null
@OptIn(ExperimentalContracts::class)
internal inline fun forEachNode(
block: (ContentNode) -> Unit
) {
contract {
callsInPlace(block)
}
contentNodeHead?.forEach(block)
}
internal inner class ContentNode
/**
* Creates a [ContentNode] that is added to this [Backdrop] when remembered
* and removed when forgotten.
*
* Always create inside a [remember] block.
*/
@RequiresApi(Build.VERSION_CODES.Q)
constructor(
paintState: State<Paint?>
) :
RememberObserver {
@RequiresApi(Build.VERSION_CODES.Q)
override fun onRemembered() {
append()
}
override fun onForgotten() {
remove()
}
override fun onAbandoned() {
remove()
}
var renderNode: RenderNode? = null
private set
val paint by paintState
var position by mutableOffsetStateDelegateOf(Offset.Zero)
private set
/**
* The [Modifier] to be used in [backdropContent].
*/
@RequiresApi(Build.VERSION_CODES.Q)
@JvmField
val modifier = Modifier
.onPlaced { position = it.positionInRoot() }
.drawWithContent {
renderNode?.let { renderNode ->
renderNode.setUseCompositingLayer(
true,
paint?.asFrameworkPaint() ?: DefaultPrePaintValue
)
val (width, height) = size.round()
renderNode.setPosition(0, 0, width, height)
withNode(renderNode) { drawContent() }
}
}
private var previous: ContentNode? = null
private var next: ContentNode? = null
@OptIn(ExperimentalContracts::class)
inline fun forEach(
block: (ContentNode) -> Unit
) {
contract {
callsInPlace(block)
}
var node = this
while (true) {
block(node)
node = node.next ?: break
}
}
@RequiresApi(Build.VERSION_CODES.Q)
private fun append() {
if (renderNode != null)
return
renderNode = RenderNode("content")
this@Backdrop.contentNodeTail = apply {
when (val tail = this@Backdrop.contentNodeTail) {
null -> {
contentNodeHead = this
}
else -> {
tail.next = this
this.previous = tail
}
}
}
}
private fun remove() {
if (renderNode == null)
return
renderNode = null
val previous = this.previous
val next = this.next
previous?.next = next
next?.previous = previous
if (this@Backdrop.contentNodeHead === this)
this@Backdrop.contentNodeHead = next
if (this@Backdrop.contentNodeTail === this)
this@Backdrop.contentNodeTail = previous
}
}
}
@RequiresApi(Build.VERSION_CODES.S)
private class BackdropNode(
private val backdrop: Backdrop,
paintState: State<Paint?>,
renderEffectState: State<RenderEffect>,
initialBackground: (DrawScope.() -> Unit)? = null,
initialInsetDp: Float
) {
private var position by mutableOffsetStateDelegateOf(Offset.Zero)
private val backdropNode = RenderNode("backdrop")
val renderEffect by renderEffectState
val paint by paintState
var background by mutableStateOf(initialBackground)
var insetDp by mutableFloatStateOf(initialInsetDp)
/**
* The [Modifier] to be used in [backdrop].
*/
@JvmField
val modifier = Modifier
.onPlaced { position = it.positionInRoot() }
.drawBehind {
val backdropNode = backdropNode
val (width, height) = size.round()
val inset = insetDp.dp.roundToPx()
backdropNode.setRenderEffect(renderEffect.asAndroidRenderEffect())
backdropNode.setPosition(
inset,
inset,
width - inset,
height - inset
)
backdropNode.withRecording { blurCanvas ->
backdrop.forEachNode { contentNode ->
contentNode.renderNode?.let { renderNode ->
val (sx, sy) = contentNode.position
val (dx, dy) = this@BackdropNode.position
val tx = sx - dx - inset
val ty = sy - dy - inset
blurCanvas.translate(+tx, +ty)
blurCanvas.drawRenderNode(renderNode)
blurCanvas.translate(-tx, -ty)
}
}
}
with(drawContext.canvas.androidCanvas) {
val saveCount = saveLayer(
0f,
0f,
width.toFloat(),
height.toFloat(),
paint?.asFrameworkPaint()
)
background?.invoke(this@drawBehind)
drawRenderNode(backdropNode)
restoreToCount(saveCount)
}
}
}
@Stable
private inline fun Size.round(): IntSize =
IntSize(
width = width.roundToInt(),
height = height.roundToInt()
)
@OptIn(ExperimentalContracts::class)
@RequiresApi(Build.VERSION_CODES.Q)
private inline fun <R> RenderNode.withRecording(
block: (Canvas) -> R
): R {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
return try {
block(beginRecording())
} finally {
endRecording()
}
}
@OptIn(ExperimentalContracts::class)
@RequiresApi(Build.VERSION_CODES.Q)
private inline fun <T : DrawScope, R> T.withNode(
renderNode: RenderNode,
draw: T.() -> R
): R {
contract {
callsInPlace(draw, InvocationKind.EXACTLY_ONCE)
}
val composeCanvas = drawContext.canvas
val nativeCanvas = composeCanvas.androidCanvas
val result: R
renderNode.withRecording { rnCanvas ->
composeCanvas.androidCanvas = rnCanvas
result = draw()
composeCanvas.androidCanvas = nativeCanvas
}
nativeCanvas.drawRenderNode(renderNode)
return result
}
private fun mutableOffsetStateDelegateOf(value: Offset) = OffsetStateDelegate(value = value)
@JvmInline
private value class OffsetStateDelegate private constructor(
private val state: MutableLongState
) {
constructor(value: Offset) : this(
state = mutableLongStateOf(value.toLongValue())
)
operator fun getValue(thisObj: Any?, property: KProperty<*>): Offset =
state.longValue.let { boundsValue ->
Offset(
x = unpackFloat1(boundsValue),
y = unpackFloat2(boundsValue)
)
}
operator fun setValue(
thisObj: Any?,
property: KProperty<*>,
value: Offset
) {
state.longValue = value.toLongValue()
}
@Immutable
private companion object {
@Suppress("NOTHING_TO_INLINE")
@Stable
private inline fun Offset.toLongValue() = packFloats(x, y)
}
}
License: No specific license, I'm offering this for any kind of use or modification.
sh...@gmail.com <sh...@gmail.com> #64
Hi, I’m the author of the Toolkit library, which contains a custom blur modifier that can blur the background behind any composable in real time. It works on any version of Android.
I wrote an article that shows how to use my library and how to create stunning glassmorphic designs for your Android apps. You can read it here: Blurring the Lines: How to Achieve a Glassmorphic Design with Jetpack Compose.
link:
I hope you find my library and article helpful. If you have any feedback or suggestions, please let me know.
Description
It was mentioned in a Dev YouTube video that Compose will be design system agnostic. In order to achieve that, it would make sense to natively support blurring as some design systems use it. Also, there are designers that don't necessary use MD while designing apps for Android,
and in that case if they use blur usually they either have to find an alternative
or the devs have a really hard time getting it to work consistently across all devices.
Ideally, blurring would be supported on all container layouts such as CardView, ConstraintLayout etc. (all that inherit from ViewGroup?). The API should be something like this:
Modifier.blur(radius = 16.dp, dynamic = true)
Dynamic = true/false would mean either realtime blurring in moving/scrolling layouts or one-time-blur on static content to minimize performance impact when dynamic blurring is not needed.
As for the current problems of blurring in Android - the only way to implement it is using RenderScript or an external library (from which most rely on RenderScript anyway).
When using it the API is usually complicated and after some testing on different devices it seems
as the performance impact depends on the chipset where Snapdragon devices have no perceivable lag and for ex. Kirin and Exynos devices drop frames to a point where it is not feasable to keep blur in UI.