Status Update
Comments
ma...@google.com <ma...@google.com>
to...@gmail.com <to...@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
an...@google.com <an...@google.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
to...@gmail.com <to...@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
an...@google.com <an...@google.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
to...@gmail.com <to...@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
to...@gmail.com <to...@gmail.com> #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
to...@gmail.com <to...@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
an...@google.com <an...@google.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
to...@gmail.com <to...@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
to...@gmail.com <to...@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
an...@google.com <an...@google.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
to...@gmail.com <to...@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
to...@gmail.com <to...@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
to...@gmail.com <to...@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
to...@gmail.com <to...@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
an...@google.com <an...@google.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
to...@gmail.com <to...@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
an...@google.com <an...@google.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
to...@gmail.com <to...@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
an...@google.com <an...@google.com> #21
r.android.com/3205674 will be the last change adding linux stubs to androidx.compose.material3.adaptive
ch...@google.com <ch...@google.com> #22
For adaptive, follow along on
ch...@google.com <ch...@google.com> #23
I have a fix for this pending that takes the "copy the snapshot id at the beginning of composition" option from above.
to...@gmail.com <to...@gmail.com> #24
Nice, is this 1.2 material or beta is already branched and it's 1.3?
ch...@google.com <ch...@google.com> #25
This should make it into 1.2 automatically. If not, i will start a cherry-pick to get it into 1.2.
ap...@google.com <ap...@google.com> #26
Branch: androidx-main
commit 78dc85f30cb72ba38d36bee4f85509a975f19d06
Author: Chuck Jazdzewski <chuckj@google.com>
Date: Wed May 04 12:01:08 2022
Fix memory leak when observing derived state objects
When observing derived state objects, if the recompose snapshot changed
id it caused the derived state objects no longer observed by composition
to be retained by the recompose scope, causing them to leak. The
snapshot id would change if the read is the first time a derived state
object is read in the snapshot.
To detect when a derived state object is no longer necessary a token
value is used to record when the derived state was added into the
composition. This token was the current snapshot id. However, since
the id is not static through-out composition, this could cause the
notification to be skipped.
This change fixes the token to be the snapshot id at the beginning of
composition and, after that, ignores the snapshot id. This means the
token is consistent through-out the same composition allowing unused
derived object to be detected.
Fixes 230168389
Test: new test, ./gradlew :compose:r:r:tDUT
Change-Id: I877c826764592a7e424667d3e2b677d385cf0b7f
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composer.kt
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composition.kt
M compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/mock/CompositionTest.kt
M compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/CompositionAndDerivedStateTests.kt
to...@gmail.com <to...@gmail.com> #27
So just tested with Snapshot 8544662 that contains that fix.
And the root issue is still present. The application attached earlier still crash after a few seconds. (And my main app during simple scrolls).
Can you please reopen?
an...@google.com <an...@google.com>
to...@gmail.com <to...@gmail.com> #28
Thanks,
For the record on release builds there's a huge win I can scroll a lot longer than without this so this was also related I guess.
an...@google.com <an...@google.com> #29
```
var reload by remember { mutableStateOf(0) }
LaunchedEffect(Unit) {
while (true) {
reload++
delay(100)
}
}
val items = remember(reload) {
derivedStateOf {
List(1000000) { it }
}
}
LazyColumn {
items(items.value) { item ->
Text("item $item")
}
}
```
Wasn't able to decouple it even more yet. Probably what is important is the fact that the lambda passed into LazyColumn is wrapped into another derived state and then this derived state is executed in composition, but when I tried to emulate it it wasn't crashing
ch...@google.com <ch...@google.com> #30
The previous fix was necessary but not sufficient to fix this issue.
The issue demonstrated by the above is when derivedStateOf
object changes what objects it reads the composition still remembers the old objects in addition to the new objects. A composition maintains a map of the objects that a dependency object reads so that, when one of those objects changes, it knows which dependency object to invalidate. If this list changes the the only the current dependencies should be retained and any previous value no longer observed should be forgotten.
I am investigating ways to ensure the inverted map is valid without causing undo additional overhead.
to...@gmail.com <to...@gmail.com> #31
Small bump on this one, the app is now in prod and I start to get OOM crash reports.
Is this something that could be targeted for 1.2 or should I try to figure out a way to reduce even more the data used in those derivedstate for the moment?
ap...@google.com <ap...@google.com> #32
Branch: androidx-main
commit ad7c95cd58204ef7be4cec4f999d602619c51a8a
Author: Andrei Shikov <ashikov@google.com>
Date: Wed Jun 01 14:11:05 2022
Clean up derived state dependencies in composition
Fixes two cases when derived state dependencies were retained:
1) Derived state instance is no longer observed in composition.
2) Derived state instance is still observed in composition, but its dependencies has been changed since last observation.
As composition uses `dependency -> derived state` mapping, this fix relies on iterating over all map values with `.removeValueIf`. In the future, we can optimize the lookup by using reverse index to lookup dependencies for derived state.
Fixes: 230168389
Test: CompositionAndDerivedStateTests#changingTheDerivedStateInstanceShouldClearDependencies, CompositionAndDerivedStateTests#changingDerivedStateDependenciesShouldClearThem
Change-Id: Id175952fedae53d669d028e460c65d6d2d5d4174
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composition.kt
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/RecomposeScopeImpl.kt
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/collection/IdentityScopeMap.kt
M compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/CompositionAndDerivedStateTests.kt
to...@gmail.com <to...@gmail.com> #33
Ok so the reproduction posted here is now fixed, but the main app still OOM when scrolling in large lazy list can this be reopened and moved back to lazylist?
Starting to wonder if now it's not back to be tied to
to...@gmail.com <to...@gmail.com> #34
The heapdump looks pretty much the same see attached. Will need some hints to build the new repro.
ad...@google.com <ad...@google.com> #35
Cases in
an...@google.com <an...@google.com>
an...@google.com <an...@google.com> #36
The best new repro I found so far is:
var reload by remember { mutableStateOf(0) }
LaunchedEffect(Unit) {
while (true) {
reload++
delay(200)
}
}
val items = remember {
derivedStateOf {
reload
ShortArray(10000000) { -5 }
}
}
LazyColumn {
items(500) { item ->
Text("item index=$item ${items.value[0]}")
}
}
But now it will not crash straightaway because of the previous fix and now you have to scroll until it crashes. Note: I used ShortArray so it is easier to find it in the heap as short[]
to...@gmail.com <to...@gmail.com> #37
Thanks for the repro it made me think about testing a change on my code and reverting the previous derived state indexer to avoid passing the full items list to items() and it does reduce the memory constraint (it still crash but requires more scroll).
So going back from
val indexer by remember {
derivedStateOf {
List(lazyPagingItems.itemCount) { it }
}
}
items(indexer) { index ->
val item = lazyPagingItems[index]
to the normal
items(lazyPagingItems) { item ->
Does reduce the issue when before the 2 derivedstate fixes it was helping a lot.
to...@gmail.com <to...@gmail.com> #38
Sorry to post here as not really related but I'm trying to update the snapshot version to a more recent version to see if your
But I'm getting java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/compose/foundation/lazy/LazyItemScope$DefaultImpls;
errors from any libraries compiled with compose 1.2 beta 2 probably because of
Is there any trick to have this working or do I need to wait for the libs to update and won't be able to test possible fixes for this issue here? (I tested adding -Xjvm-default=all
on my side side but no effect)
an...@google.com <an...@google.com> #39
Does reduce the issue when before the 2 derivedstate fixes it was helping a lot. Yes, I would recommend you to rewrite your code without derivedstate in the meantime
see if your
https://github.com/androidx/androidx/commit/a1ba9c954b9cc2e36bf897e4c649f52442a07a0b fix the rarecrash I get. No, I do not expect this change to fix anything for you https://issuetracker.google.com/issues/233929916
About your new crash I will let the responsible folks know, thanks
to...@gmail.com <to...@gmail.com> #40
Yes, I would recommend you to rewrite your code without derivedstate in the meantime
Is there any performance difference between LazyVerticalGrid with 1 column and LazyColumn ?
I still use a derivedstate to manually window and implement the grid via a LazyColumn as the app allows switching between both and I need to listen to the state for other things related to first visible items.
Since LazyGrid and LazyColumn state are not equivalent and there's no common interface for the common functions it's a pain to deal with both and I'd like to stay with only one.
an...@google.com <an...@google.com> #41
If your state is not frequently changing (like when user tap on switch mode button, not on every frame) you don't really need derived state.
```
val mode by remember { mutableStateOf(true) }
val derivedValue = remember(mode) {
... calculate something based on mode
}
```
to...@gmail.com <to...@gmail.com> #42
By derived data I meant the data to feed the LazyColumn to emulate the LazyGrid.
val items = remember(lazyPagingItems.itemCount, stepSize) {
derivedStateOf {
List(lazyPagingItems.itemCount) { it }.windowed(stepSize, stepSize, true)
}
}
But yes I suppose the preventive derivedStateOf is not mandatory in this case.
The problem about the state being different classes, is for the fastscroll for example, or the quick return or any other visible items observing to react. The state is hoisted and used elsewhere, but this does not work if the inner component can change between both, this is the main pain point of the 2 different states, either have 2 different implementations of the observers or build another state and wrap what's needed.
Anyway this is not the place and since the LazyGrid api is no more experimental and I believe you about perf, I'll migrate all to LazyGrid to simplify my future life.
Thanks again.
to...@gmail.com <to...@gmail.com> #44
Forget to post but yes this fix the compilation.
But since I digressed a lot, just wanted to be sure the original issue is still being investigated? I see it's already 1.3 now.
th...@gmail.com <th...@gmail.com> #45
th...@gmail.com <th...@gmail.com> #46
ap...@google.com <ap...@google.com> #47
Branch: androidx-main
commit 11dbe1f459907ec1c23e730c77e33de39fc894cf
Author: Chuck Jazdzewski <chuckj@google.com>
Date: Wed Jun 22 14:17:20 2022
Remove tracking information from release recompose scopes
Recompose scopes can be tracked by the recomposer past when they
are removed from composition. Since it is expensive to accurately
track the lifetime of scopes they are cleaned up lazily. This
lazy cleanup might not trigger in some cases causing the references
tracked by the scope to leak.
This change first removes tracked references from recmpose scopes
that are removed from composition and, second, reduces the chance
that such scopes are tracked longer then necessary by cleaning up
the conditionally invalid scopes table when scopes are removed.
Fixes: 230168389
Test: ./gradlew :compose:r:r:tDUT
Change-Id: Idfe3e3d5d6d65bac2cf06ee19fd00a5d9253d8a1
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composer.kt
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composition.kt
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/RecomposeScopeImpl.kt
M compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/CompositionAndDerivedStateTests.kt
to...@gmail.com <to...@gmail.com> #48
So unfortunately it's not 100% fixed, can this be reopened again?
The repro app still crash after scrolling but requires more than before. (Same for prod app)
Furthermore last snapshot completely breaks LazyX overscroll (a LazyColumn will now overscroll on left / right too when 100% unwanted see attached video).
an...@google.com <an...@google.com> #49
Thanks for the report. I filed a separate bug for this issue with overscroll -
to...@gmail.com <to...@gmail.com> #50
Thanks I lack time before the holidays but I hope you can go to the bottom of it. (Other bug is private I can't follow it)
Since the leak is not tied to the actual composable even leaving the screen completely won't return the memory so in the end if the user stays enough in the app it will reach OOM, and even if not seems on Pixels the memory killer don't like it at all and kill the app even with a foreground service active for low memory when going background. (And well that's a bummer to have a music player killed during playback it kinda defeat it's purpose).
an...@google.com <an...@google.com> #51
Sorry, made
an...@google.com <an...@google.com> #52
I tried to run the demo app again after all the recent changes and unfortunately can't reproduce what you are seeing. It is not crashing for me after scroll and I don't see anything leaking. And regardless of the leaks, I really do not recommend you writing code like this
val items = remember(lazyPagingItems.size, stepSize, reload) {
derivedStateOf {
List(lazyPagingItems.size) { it }.windowed(stepSize, stepSize, true)
}
}
Allocating such lists only to produce list of indexes is very inefficient. You can just instead write some function which will be mapping indexes from the main data set to the new windowed one and it will require no allocations. But realistically as we already discussed you better just use LazyVerticalGrid, it is an api exactly for this use case. If after applying those recommendations you will think you still have some memory leaks feel free to file a separate bug. Thanks
to...@gmail.com <to...@gmail.com> #53
The issue also occurs on normal lazylist without using those derived state.
The demo requires a lot more scroll but will trigger the issue at some point.
The GC will say 75% free then 45% free then 75% free then at some point will go down to 15% then 45% then ... Until the OOM.
This is just no more automatic and quick as previously. Scroll more up down to at least the middle to trigger it.
an...@google.com <an...@google.com> #54
For you it is crashing exactly because you are creating huge lists inside derivedStateOf. And I recommend you to not do that in your code as you are really don't have to
to...@gmail.com <to...@gmail.com> #55
Again I'm not when in list mode I directly use the lazy items and it behave the same.
And even when I do I create a list of 22000 Int this is not exactly what you can call a huge list.
Anyway I'll try to build another repro when back in 2 weeks. Will link here for proper attribution.
to...@gmail.com <to...@gmail.com> #56
Just tested again with one of the last snapshot from last hours and there's changes.
It's now quite hard to reproduce with the repro from here but still randomly can trigger.
But the very nice change is that removing the lazycolumn from composition does free the memory now. So on the main app the impact should be minimal instead of ineluctable. Just need the overscroll fix.
Was the video enough or need something before I leave ?
to...@gmail.com <to...@gmail.com> #57
Did a quick heap dump since the memory is freed on composable removal from the screen and the data is different see attached screenshots.
Maybe this will lead some light until I can build a repro in at least 2 weeks.
to...@gmail.com <to...@gmail.com> #58
One last for Adam
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/compose/foundation/lazy/grid/LazyGridItemScope$DefaultImpls;
Seems that one passed the 2 JvmDefaultWithCompatibility fixes.
And now sea and sun.
to...@gmail.com <to...@gmail.com> #59
So for the record my leaks are now fully fixed with snapshot 8859449 (Maybe thanks to this
But I'm now facing another strange Compose bug that I have an hard time debugging :(
ma...@gmail.com <ma...@gmail.com> #60
This issue should be reopened as it still valid in compose 1.3.0-beta01
.
How to reproduce:
1 - Scroll the LazyList
a bit
2 - Press the big red rectangle to remove the LazyList
from the composition
3 - Press the big red rectangle again
4 - Go to 1
The memory usage will grow up endlessly.
to...@gmail.com <to...@gmail.com> #61
I can't repro with my previous code and have not found a proper repro (not tested #60)
But I've pushed a beta of my app with 1.3.0 beta 1 and I've now got a return of OOM crashes, so there's definitively something back here :(
ch...@google.com <ch...@google.com>
ch...@google.com <ch...@google.com> #62
I reopen the bug. I reproduced the memory leak demonstrated by the above linked MainActivity.kt supplied by
SnapshotStateObserver
created for AndroidComposeView
are not be removed when the LazyColumn
is removed from composition.
This appears to be a different issue that was originally reported but will use this bug to track this as it is still a memory leak involving a LazyColumn
or LazyRow
and might be the issues the followers of this bug are running into instead of the original problem.
Note that a number of fixes regarding this went into 1.2 and 1.3. However, if you just update the version of androidx.compose.ui to 1.3.0-beta01 (which is what you get if you update compose_ui_version
in the default Studio template to 1.3.0-beta01) you will not many of these fixes as they are part of the 1.3 runtime. Ensure you update to an explicit reference to androidx.compose.runtime:1.3.0-beta01 as 1.3.0-beta01 only requires you update to 1.2.0+ of the runtime and will not automatically update to the latest runtime.
to...@gmail.com <to...@gmail.com> #63
For the record the mails are hidden to normal users you should not disclose them in case it's unwanted and to avoid spam.
I'm full B1 and no issue with alpha3 all previous issues where correctly fixed.
I proposed to Andrey to bisec between those versions is this still necessary?
an...@google.com <an...@google.com> #64
ch...@google.com <ch...@google.com>
mo...@google.com <mo...@google.com> #65
Ralston is making a large change for focus that will fix this problem. He's agreed to take this on.
da...@sonos.com <da...@sonos.com> #66
I had the same type of issues, where using a LazyRow and scrolling a lot would see performance degradation to the point where the app was unusable. I can say that the fixes from this bug have definitely fixed my issue, so thank you very much! However, now I'm seeing that my derivedStateOf calculations are getting called all the time.
I have a derivedStateOf which calculates layout information based off changes to the scroll state. For example:
class LayoutProvider(
val layoutState: State<MyLayout>
)
@Composable
fun rememberLayoutProvider(): LayoutProvider {
val layoutState = remember {
derivedStateOf {
// run some big calculations to calculate a layout
calculateLayout()
}
}
return remember { LayoutProvider(layoutState) }
}
And then many different composables use my derived state to create their own derivedStateOf to get their layout information. For example:
@Composable
fun SomeTile() {
val myLayout = remember {
derivedStateOf {
layoutProvider.getMyLayout()
}
}
do something with myLayout
}
In compose 1.2.0, this worked really well, and when the scroll state would change, the layout provider's calculation would run once, and only composables whose specific layout changed (myLayout
) would get recomposed.
Now in compose 1.3.0-beta01, the calculation in the LayoutProvider gets called a large number of times, and the composoables who have their own derivedState get recomposed even when their specific layout hasn't changed.
I noticed the change to the derivedStateOf
, with the addition of a policy, but I tried writing my own and still couldn't get the results I wanted. Can you please explain how I can go about getting these calculations to get called as I'd expect and only have the composables that have their derived state changed recompose?
Thank you
da...@sonos.com <da...@sonos.com> #67
To give some more information, when when calling derivedStateOf(structuralEqualityPolicy())
in both those places in the code above, it still behaves incorrectly. Basically, the composable SomeTile
always gets recomposed any time the scroll state changes, and only at the call site where myLayout
gets used does the derivedState calculation run (i.e. layoutProvider.getMyLayout()
. Seeing the whole point of derivedState is so that we can avoid recomposing composables on state changes that can happen frequently, this now feels broken to me. Please let me know if I'm missing something.
Thank you
da...@sonos.com <da...@sonos.com> #68
I was able to make it even more simple:
@Composable
fun SomeComposable(
scrollState: LazyListState
) {
val red by remember {
derivedStateOf(structuralEqualityPolicy()) {
// cause an observation on the scroll state
scrollState.firstVisibleItemScrollOffset != 0
}
}
Log.e("Test", "composing SomeComposable")
if (red) {
Log.e("Test", "composing a red box")
Box(modifier = Modifier.background(Color.Red).fillMaxSize())
}
else {
Log.e("Test", "composing a blue box")
Box(modifier = Modifier.background(Color.Blue).fillMaxSize())
}
}
With this code, red
should always be true except when the scroll offset is at 0, and thus the composable should only ever recompose when the scroll offset comes to zero or leaves zero. However, it recomposes on every single scroll change.
to...@gmail.com <to...@gmail.com> #69
Your last example sounds normal IMO. The scrollstate change, the SomeComposable is recomposed the state is calculated, if is called and your log is ran.
To see any benefit here you need to extract the second part to another composable that is skippable.
@Composable
fun SomeComposable(
scrollState: LazyListState
) {
val red by remember {
derivedStateOf(structuralEqualityPolicy()) {
// cause an observation on the scroll state
scrollState.firstVisibleItemScrollOffset != 0
}
}
Log.e("Test", "composing SomeComposable")
SomeComposable2(red)
}
@Composable
fun SomeComposable2(
red: Boolean
) {
if (red) {
Log.e("Test", "composing a red box")
Box(modifier = Modifier.background(Color.Red).fillMaxSize())
}
else {
Log.e("Test", "composing a blue box")
Box(modifier = Modifier.background(Color.Blue).fillMaxSize())
}
}
This will display the first composing log each time the scrollstate change, but the box composing will only happen when the derived state change as the SomeComposable2 is skippable.
da...@sonos.com <da...@sonos.com> #70
Thanks for the response, but unfortunately, that still isn't correct IMO. I understand the concept of using a composable that is skippable, but what that would accomplish is that when red
changes, SomeComposable
would not recompose, while SomeComposable2
would. That is not what I'm trying to accomplish. The issue here is that red
is not supposed to change unless the scrollable state crosses the zero boundary. So in your example, SomeComposable2
still recomposes every single time the scroll state changes, but it shouldn't.
The issue is that the red
state only gets evaluated/calculated when it is accessed, which is in the recomposition, but at this point, it's too late, as the composable is already recomposing. So DerivedState is no longer useful. In Compose 1.2.0, the red
calculation would run at the time that the scroll state changes outside the composition scope, and then would appropriately cause the composable to recompose only if the red
state actually changed.
to...@gmail.com <to...@gmail.com> #71
No in my example SomeComposable2 does not recompose because it's skippable and red state does not change.
SomeComposable will always recompose because the scrollstate change. It's up to you that your composable is made of skippable sub component so that they are not recomposed.
In the case of #68 the if is not a composable function so is not skippable. So if SomeComposable is recomposed the if will always be ran and so your log will run. If you had something different before then it was something else and not how compose is supposed to work.
In all case in my example the red state is read as it's a parameter to SomeComposable2 so it's up to date thanks to the derivedstate and so will properly change.
I use this pattern a lot in prod and it works like that since 1.0 and it still works the same in 1.3 alpha3 (and beta 1 but I'm not in prod with it due to the return of the mem leak).
In all cases your issue seems unrelated to this one so you might want to open another one if you want more traction from Google.
da...@sonos.com <da...@sonos.com> #72
da...@sonos.com <da...@sonos.com> #73
da...@sonos.com <da...@sonos.com> #74
Here is sample code that describes exactly the issue:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
OuterComposable()
}
}
}
}
@Suppress("EqualsOrHashCode")
class ZeroMap(
val zeroMap: Map<Int, Boolean>
) {
override fun equals(other: Any?): Boolean {
if (this === other) {
Log.e("StateTest", "ZeroMap is the same reference")
return true
}
if (javaClass != other?.javaClass) {
Log.e("StateTest", "ZeroMap is not the same because of javaClass")
return false
}
other as ZeroMap
if (zeroMap.size != other.zeroMap.size) {
Log.e("StateTest", "ZeroMap is not the same because trackLayouts.size (${zeroMap.size}) != other.trackLayouts.size (${other.zeroMap.size})")
return false
}
val otherEntries = other.zeroMap.entries
zeroMap.entries.forEachIndexed { index, entry ->
val otherEntry = otherEntries.elementAt(index)
if (entry.value != otherEntry.value) {
Log.e("StateTest", "ZeroMap is not the same because entry.value (${entry.value}) != otherEntry.value (${otherEntry.value}) for index $index")
return false
}
}
Log.e("StateTest", "ZeroMap is the same value")
return true
}
}
class ZeroStateProvider(
val scrollState: LazyListState,
private val zeroState: State<ZeroMap>
) {
fun isAtZero(index: Int) = zeroState.value.zeroMap[index]
}
@Composable
fun rememberZeroStateProvider(): ZeroStateProvider {
val scrollState = rememberLazyListState()
val zeroState = remember {
derivedStateOf(structuralEqualityPolicy()) {
Log.e("StateTest", "calculating zero state for scroll offset: ${scrollState.firstVisibleItemScrollOffset}")
val zeroMap = mutableMapOf<Int, Boolean>()
scrollState.layoutInfo.visibleItemsInfo.forEach {
zeroMap[it.index] = it.offset == 0
}
ZeroMap(zeroMap)
}
}
return remember {
ZeroStateProvider(scrollState, zeroState)
}
}
@Composable
fun OuterComposable(
modifier: Modifier = Modifier,
) {
Log.e("StateTest", "Composing OuterComposable")
val zeroStateProvider = rememberZeroStateProvider()
LazyRow(
state = zeroStateProvider.scrollState,
horizontalArrangement = Arrangement.spacedBy(60.dp),
verticalAlignment = Alignment.Top,
modifier = modifier
.fillMaxWidth()
) {
items(
count = 100,
) { index ->
InnerComposable(index, zeroStateProvider)
}
}
}
@Composable
private fun InnerComposable(
index: Int,
zeroStateProvider: ZeroStateProvider,
modifier: Modifier = Modifier
) {
Log.e("StateTest", "Composing InnerComposable (index=$index)")
val color by remember {
derivedStateOf(structuralEqualityPolicy()) {
Log.e("StateTest", "InnerComposable: calculating color")
when (zeroStateProvider.isAtZero(index)) {
true -> Color.Red
false,
null -> Color.Blue
}
}
}
Box(
modifier = modifier
.background(color)
.size(200.dp)
)
}
The output in Compose 1.2.0 gives:
E/StateTest: InnerComposable: calculating color
E/StateTest: calculating zero state for scroll offset: 1
E/StateTest: Composing InnerComposable (index=0)
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: Composing InnerComposable (index=4)
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: calculating zero state for scroll offset: 3
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: calculating zero state for scroll offset: 5
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: calculating zero state for scroll offset: 6
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
and in Compose 1.3.0-beta01 gives:
E/StateTest: calculating zero state for scroll offset: 2
E/StateTest: ZeroMap is not the same because entry.value (false) != otherEntry.value (true) for index 0
E/StateTest: InnerComposable: calculating color
E/StateTest: calculating zero state for scroll offset: 2
E/StateTest: ZeroMap is not the same because entry.value (false) != otherEntry.value (true) for index 0
E/StateTest: Composing InnerComposable (index=0)
E/StateTest: calculating zero state for scroll offset: 2
E/StateTest: ZeroMap is not the same because entry.value (false) != otherEntry.value (true) for index 0
E/StateTest: InnerComposable: calculating color
E/StateTest: calculating zero state for scroll offset: 2
E/StateTest: ZeroMap is not the same because entry.value (false) != otherEntry.value (true) for index 0
E/StateTest: calculating zero state for scroll offset: 2
E/StateTest: ZeroMap is not the same because entry.value (false) != otherEntry.value (true) for index 0
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: InnerComposable: calculating color
E/StateTest: calculating zero state for scroll offset: 4
E/StateTest: ZeroMap is the same value
E/StateTest: calculating zero state for scroll offset: 5
E/StateTest: ZeroMap is the same value
As you can see from this output, in Compose 1.2.0, calculating zero state for scroll offset
only appears once every time the scroll state changes, and then the inner compositions recalculate accordingly. But in Compose 1.3.0-beta01, calculating zero state for scroll offset
shows up many times every time the scroll state changes. The number of times it runs increases with the number of composables that use its state.
From the documentation of derivedStateOf, it says "The result of calculation will be cached in such a way that calling [State.value] repeatedly will not cause[calculation] to be executed multiple times". This was true prior to Compose 1.3.0-beta01, but no longer is.
Please let me know what you think. Thanks!
to...@gmail.com <to...@gmail.com> #75
As said I'm not a Googler and your issue is unrelated to the original issue. You really should open another issue.
I'd say that your issue might not be related to derivedstate at all but to the compiler generation of your ZeroStateProvider class.
I'd use
da...@sonos.com <da...@sonos.com> #76
Yes, I'm ok with creating a new issue (which I did here:
to...@gmail.com <to...@gmail.com> #77
You can easily bisect the version that introduced the issue. All the fixes for this issue are in 1.2.0. AFAIR the only missing to fix all was
Try 1.3 alpha 3 that I use in prod with no performance regression. Then alpha 2 then 1 ;)
da...@sonos.com <da...@sonos.com> #78
It was introduced by
to...@gmail.com <to...@gmail.com> #79
Small bump on this to follow from #65
Is this planned to be backported to 1.3?
With Material 3 pinned to 1.3 we can't keep 1.3 A3 and update material. And not sure they will start an 1.1 alpha pinned to 1.4 before a final 1.3 release. (Maybe you have some info about that)
to...@gmail.com <to...@gmail.com> #80
So 1.3 RC1 is cut, is it possible to have some insight on this please? On my app with tons of large lazylist this leads to very fast OOM (even faster than previous issues).
Not having a solution for 1.3 may have high impact on updating M3 / Glance and the sooner we know the easier to anticipate.
ad...@google.com <ad...@google.com> #81
1.3-rc01 hasn't been cut yet, though the commit to bump the version to rc is in the system to ready for that build cut
ap...@google.com <ap...@google.com> #82
Branch: androidx-main
commit 3bd044a0a148b16ce17eaa71ceb5b8aed1bde70a
Author: Ralston Da Silva <ralu@google.com>
Date: Thu Sep 15 13:22:36 2022
Fix for issue where ModifierLocals were not being updated when modifiers were reused
With the introduction of Modifier.Node in aosp/2108724 onModifierLocalsUpdated was
not being called with the default value when modifiers were reused. This broke
LazyListFocusMoveTest.
Verified that this CL fixes the test, and added new tests to ModifierLocalSameLayoutNodeTest.kt
Bug: 245512265
Bug: 245131728
Bug: 245363143
Bug: 230168389
Fixes: 245512265
Fixes: 245131728
Test: ./gradlew compose:f:f:cC -P android.testInstrumentationRunnerArguments.class=androidx.compose.foundation.lazy.list.LazyListFocusMoveTest
Test: ./gradlew compose:ui:ui:cC -P android.testInstrumentationRunnerArguments.class=androidx.compose.ui.modifier.ModifierLocalSameLayoutNodeTest
Change-Id: I90d10bf341c4b19a979440886f3d002f5bc8320a
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/modifier/ModifierLocalSameLayoutNodeTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/BackwardsCompatNode.kt
to...@gmail.com <to...@gmail.com> #83
So tested snapshot 9082024 that include this and it seems to be fixed.
And I also see nice scrolling performance on large lists, maybe due to other commits.
The last question is. Are there any commits in 9082024 that won't be part of the final 1.3? Or can I expect the same performance gain in the coming 1.3 releases ?
an...@google.com <an...@google.com> #84
ra...@google.com <ra...@google.com>
ju...@gmail.com <ju...@gmail.com> #85
na...@google.com <na...@google.com> #86
This bug was linked in a change in the following release(s):
androidx.compose.ui:ui:1.3.0-rc01
na...@google.com <na...@google.com> #87
The following release(s) address this bug:
androidx.compose.runtime:runtime:1.3.0
Description
Jetpack Compose version: 1.2.0 alpha 07 Jetpack Compose component used: LazyColumn Android Studio Build: AGP 7.3.0-alpha09 Kotlin version: 1.6.20 / 1.6.21
I have not yet a repro but will need some input about where to look for to build it.
Starting recently so I guess Alpha 06 or 07 I started to have OOM issues in my app. Doing some heap dump I see the following see attached images.
The first dump is after a few scroll and normal usage of the application. The second dump is after a lot more scrolling in a single LazyColumn.
As you can see the retained size is insane for SnapshotMutableStateImpl and the app quickly OOM.
I'd need some input about what is stored in those to be able to build a repro