Fixed
Status Update
Comments
je...@google.com <je...@google.com>
lo...@gmail.com <lo...@gmail.com> #2
Project: platform/frameworks/support
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
https://android-review.googlesource.com/3151736
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
ad...@google.com <ad...@google.com> #3
Project: platform/frameworks/support
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
Relandr.android.com/3151736 now with workaround for https://youtrack.jetbrains.com/issue/KT-62653
- 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
https://android-review.googlesource.com/3156121
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
lo...@gmail.com <lo...@gmail.com> #4
Project: platform/frameworks/support
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
Relandr.android.com/3151736 / r.android.com/3156121 but now with
moving to project(":annotation:annotation") in commonMain as due to
https://youtrack.jetbrains.com/issue/KT-62653 we cannot depend on
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
https://android-review.googlesource.com/3156423
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
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
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
https://android-review.googlesource.com/3159861
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
lo...@gmail.com <lo...@gmail.com> #6
Project: platform/frameworks/support
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
https://android-review.googlesource.com/3163196
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
Description
Hello,
I found a bug that cost me one day to understand what triggers it, and I want to thank Adam Powell for helping me a bit to figure out what's going on.
TL;DR
In short, if you call
setContentView
with the same view hierarchy a second time after the initial render, the composables in the hierarchy will stop recomposing, which breaks/freezes everything in them.Jetpack Compose release version: 1.1.0-alpha02 (also reproduces with 1.0 and 1.0.1)
Android Studio Build: irrelevant
Kotlin version: irrelevant
Reproducer
I attached a self-contained Kotlin file (
MainActivity.kt
) that reproduces the issue.You can paste it in any Compose project over the existing
MainActivity
and try yourself.However, I put below reproducing steps anyway.
Steps to Reproduce:
ComposeView
that displays aState
that changes over time.setContentView
passing that instance in theonCreate
function of the hostComponentActivity
.lifecycleScope
awaitFrame()
, ordelay(1500)
setContentView
again, with the very same instance of theComposeView
created earlier.Expected outcome
The composable keeps display the updates of the
State
instance.Actual result
Once the
setContentView
is called the second time, the composable stops displaying the updates of theState
instance.The Slack thread from start to finish
If you want to see what was the process from facing the issue, to finding why it happened, you can take a look at this thread on Kotlin's Slack:
What is likely the culprit IMHO
In the Android platform, the
setContentView
method inActivity
is idempotent. Calling it a second time with the same view hierarchy while the Activity is not in the destroyed state will have no effect.However, that contract seems to have been broken by the
ComponentActivity
class from AndroidX, as it's also calling a function namedinitViewTreeOwners()
.The name of that function indicates that it's been designed for initialization, something which by definition, is supposed to happen only once. However, a setter doesn't generally have such constraints, at least, not because it's a setter (as the
setContentView
function is).I think that this
initViewTreeOwners()
function being called again is what messes upComposeView
or its underlying mechanisms, putting them in a state they should not be in.However, the issue might not be in
ComponentActivity
itself, but in the Compose runtime, or both.Thanks for reading, and have a great day!
Louis CAD