Status Update
Comments
br...@gmail.com <br...@gmail.com> #2
deleted
br...@gmail.com <br...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 3a4bb5cc9921539344aea335266a6b068fb69bbb
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 15:00:51 2024
Rename `androidTest` to `androidInstrumentedTest` on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I42ea11960d7dd83224d8ae8cb256c616735200d1
M savedstate/savedstate/src/androidInstrumentedTest/AndroidManifest.xml
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ErrorInStaticBlock.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/SavedStateRegistryTest.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwnerTest.android.kt
https://android-review.googlesource.com/3067205
Branch: androidx-main
commit 3a4bb5cc9921539344aea335266a6b068fb69bbb
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 15:00:51 2024
Rename `androidTest` to `androidInstrumentedTest` on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I42ea11960d7dd83224d8ae8cb256c616735200d1
M savedstate/savedstate/src/androidInstrumentedTest/AndroidManifest.xml
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ErrorInStaticBlock.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/SavedStateRegistryTest.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwnerTest.android.kt
br...@gmail.com <br...@gmail.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit ccf0ec0a1d84f18fb366140dca86b9ba80b0fcbd
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 16:44:04 2024
Use `kmpDocs` on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I288623ec97038c5641194828684ad05ba448afff
M docs-tip-of-tree/build.gradle
https://android-review.googlesource.com/3066769
Branch: androidx-main
commit ccf0ec0a1d84f18fb366140dca86b9ba80b0fcbd
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 16:44:04 2024
Use `kmpDocs` on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I288623ec97038c5641194828684ad05ba448afff
M docs-tip-of-tree/build.gradle
ni...@google.com <ni...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit 5d58fbb28a0613242ca71ac5ec0c30f6f807f909
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 11:15:03 2024
Add `KMP` as a build type on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I689e0d87ec326c606e3b3b70e6dd2d3323ac3411
M settings.gradle
https://android-review.googlesource.com/3067202
Branch: androidx-main
commit 5d58fbb28a0613242ca71ac5ec0c30f6f807f909
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 11:15:03 2024
Add `KMP` as a build type on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I689e0d87ec326c606e3b3b70e6dd2d3323ac3411
M settings.gradle
br...@gmail.com <br...@gmail.com> #6
Project: platform/frameworks/support
Branch: androidx-main
commit 435d4ec5635e98b17ee0cbee4022037ff43abe7e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 12:26:01 2024
Rename `main` to `androidMain` on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: Iec0c7b6d12abe1be6c50a05cda9467430c5c1ccc
M savedstate/savedstate/src/androidMain/AndroidManifest.xml
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/Recreator.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/View.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/res/values/ids.xml
https://android-review.googlesource.com/3067204
Branch: androidx-main
commit 435d4ec5635e98b17ee0cbee4022037ff43abe7e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 12:26:01 2024
Rename `main` to `androidMain` on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: Iec0c7b6d12abe1be6c50a05cda9467430c5c1ccc
M savedstate/savedstate/src/androidMain/AndroidManifest.xml
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/Recreator.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/View.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/res/values/ids.xml
ni...@google.com <ni...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
commit 1ceef555faa4f23da4d84d10710635a70477b778
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 14:59:42 2024
Convert `ErrorInStaticBlock` to Kotlin
Test: N/A
Bug: 334076622
Change-Id: I0486d8d7c62ea76f277a2df2b3a47bd7fde7d838
M savedstate/savedstate/src/androidTest/java/androidx/savedstate/ErrorInStaticBlock.kt
https://android-review.googlesource.com/3066904
Branch: androidx-main
commit 1ceef555faa4f23da4d84d10710635a70477b778
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 14:59:42 2024
Convert `ErrorInStaticBlock` to Kotlin
Test: N/A
Bug: 334076622
Change-Id: I0486d8d7c62ea76f277a2df2b3a47bd7fde7d838
M savedstate/savedstate/src/androidTest/java/androidx/savedstate/ErrorInStaticBlock.kt
br...@gmail.com <br...@gmail.com> #8
Project: platform/frameworks/support
Branch: androidx-main
commit 488858fc6b2a8df6b4738a5edc991c2d57bb496e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 12:20:18 2024
Configure multiplatform plugin on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: If360f8f2595d211b541830da906cb3f8078b74ab
M savedstate/savedstate/build.gradle
https://android-review.googlesource.com/3067203
Branch: androidx-main
commit 488858fc6b2a8df6b4738a5edc991c2d57bb496e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 12:20:18 2024
Configure multiplatform plugin on `savedstate`
Test: N/A
Bug: 334076622
Change-Id: If360f8f2595d211b541830da906cb3f8078b74ab
M savedstate/savedstate/build.gradle
ni...@google.com <ni...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-main
commit 05f0fb1eca3aba60adf6229d42e2c09452a59a96
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 14:59:42 2024
Convert `ErrorInStaticBlock` to Kotlin in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I070f642916bf2da4660efddf9d6b9e86d659bc52
M savedstate/savedstate/src/androidTest/java/androidx/savedstate/ErrorInStaticBlock.kt
https://android-review.googlesource.com/3071743
Branch: androidx-main
commit 05f0fb1eca3aba60adf6229d42e2c09452a59a96
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 14:59:42 2024
Convert `ErrorInStaticBlock` to Kotlin in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I070f642916bf2da4660efddf9d6b9e86d659bc52
M savedstate/savedstate/src/androidTest/java/androidx/savedstate/ErrorInStaticBlock.kt
br...@gmail.com <br...@gmail.com> #10
Project: platform/frameworks/support
Branch: androidx-main
commit d865a3700636d1536e8d0027fa6dbb2178c6f40a
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 11:15:03 2024
Add `KMP` as a build type in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I3013b6b330ad16a1385c32c83928daa1d94ad959
M settings.gradle
https://android-review.googlesource.com/3070219
Branch: androidx-main
commit d865a3700636d1536e8d0027fa6dbb2178c6f40a
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Apr 30 11:15:03 2024
Add `KMP` as a build type in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I3013b6b330ad16a1385c32c83928daa1d94ad959
M settings.gradle
ni...@google.com <ni...@google.com> #11
Project: platform/frameworks/support
Branch: androidx-main
commit 27b0ad3a572311c2663150708b4553e51ef3213a
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri May 03 15:26:51 2024
Rename `main` to `androidMain` in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: Ib57446be87d946a0205f5b6f41f9bdb84a6b8d4d
M savedstate/savedstate/src/androidMain/AndroidManifest.xml
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/Recreator.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/View.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/res/values/ids.xml
https://android-review.googlesource.com/3071742
Branch: androidx-main
commit 27b0ad3a572311c2663150708b4553e51ef3213a
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri May 03 15:26:51 2024
Rename `main` to `androidMain` in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: Ib57446be87d946a0205f5b6f41f9bdb84a6b8d4d
M savedstate/savedstate/src/androidMain/AndroidManifest.xml
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/Recreator.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/View.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt
M savedstate/savedstate/src/androidMain/res/values/ids.xml
br...@gmail.com <br...@gmail.com> #12
Project: platform/frameworks/support
Branch: androidx-main
commit 036f30202ee51da9fdd60951826bda440779dc81
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri May 03 15:25:56 2024
Configure multiplatform plugin in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I48757dd18550ee4db98e11134cae75702b1d6f67
M docs-tip-of-tree/build.gradle
M savedstate/savedstate/build.gradle
https://android-review.googlesource.com/3070221
Branch: androidx-main
commit 036f30202ee51da9fdd60951826bda440779dc81
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri May 03 15:25:56 2024
Configure multiplatform plugin in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I48757dd18550ee4db98e11134cae75702b1d6f67
M docs-tip-of-tree/build.gradle
M savedstate/savedstate/build.gradle
ni...@google.com <ni...@google.com> #13
Project: platform/frameworks/support
Branch: androidx-main
commit 507de1178e29efb9e4fbfab001feacf6e1fa6711
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri May 03 15:27:19 2024
Rename `androidTest` to `androidInstrumentedTest` in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I39d9c83299ccabbc9f902d89d2ceaca0d76d28bb
M savedstate/savedstate/src/androidInstrumentedTest/AndroidManifest.xml
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ErrorInStaticBlock.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/SavedStateRegistryTest.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwnerTest.android.kt
https://android-review.googlesource.com/3071744
Branch: androidx-main
commit 507de1178e29efb9e4fbfab001feacf6e1fa6711
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri May 03 15:27:19 2024
Rename `androidTest` to `androidInstrumentedTest` in `savedstate`
Test: N/A
Bug: 334076622
Change-Id: I39d9c83299ccabbc9f902d89d2ceaca0d76d28bb
M savedstate/savedstate/src/androidInstrumentedTest/AndroidManifest.xml
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ErrorInStaticBlock.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/SavedStateRegistryTest.android.kt
M savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwnerTest.android.kt
br...@gmail.com <br...@gmail.com> #14
Project: platform/frameworks/support
Branch: androidx-main
commit f802d46e4221eb1a1833c4b0099891a5930d1ea6
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue May 07 14:55:20 2024
Introduce `SavedState` to abstract the data structure used to save and restore data in native platforms when using KMP.
* An opaque `SavedState` type that typealiases to a native type based on the platform.
* A `Reader` and `Writer` abstraction to modify the `SavedState` within Kotlin's common source sets. The abstraction utilizes a `value class` and all methods are `inline fun` to guarantee no overhead when using these methods to modify an `Bundle` on Android.
RelNote: "Introduce `SavedState` to abstract the data structure used to save and restore data in native platforms when using KMP. Includes a reader and writer used to mutate the `SavedState`."
Test: N/A
Bug: 334076622
Change-Id: I185754bb2e7e04c32ccc89209a4d4e765334e547
M savedstate/savedstate/api/current.txt
M savedstate/savedstate/api/restricted_current.txt
M savedstate/savedstate/build.gradle
A savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/RobolectricTest.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/Recreator.android.kt
A savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedState.android.kt
A savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryOwner.android.kt
A savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
A savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/ParcelableSavedStateTest.android.kt
A savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/RobolectricTest.android.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedState.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SavedStateUtils.kt
A savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/RobolectricTest.kt
A savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
A savedstate/savedstate/src/nonAndroidTest/kotlin/androidx/savedstate/RobolectricTest.nonAndroid.kt
https://android-review.googlesource.com/3176247
Branch: androidx-main
commit f802d46e4221eb1a1833c4b0099891a5930d1ea6
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue May 07 14:55:20 2024
Introduce `SavedState` to abstract the data structure used to save and restore data in native platforms when using KMP.
* An opaque `SavedState` type that typealiases to a native type based on the platform.
* A `Reader` and `Writer` abstraction to modify the `SavedState` within Kotlin's common source sets. The abstraction utilizes a `value class` and all methods are `inline fun` to guarantee no overhead when using these methods to modify an `Bundle` on Android.
RelNote: "Introduce `SavedState` to abstract the data structure used to save and restore data in native platforms when using KMP. Includes a reader and writer used to mutate the `SavedState`."
Test: N/A
Bug: 334076622
Change-Id: I185754bb2e7e04c32ccc89209a4d4e765334e547
M savedstate/savedstate/api/current.txt
M savedstate/savedstate/api/restricted_current.txt
M savedstate/savedstate/build.gradle
A savedstate/savedstate/src/androidInstrumentedTest/kotlin/androidx/savedstate/RobolectricTest.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/Recreator.android.kt
A savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedState.android.kt
A savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryOwner.android.kt
A savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
A savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/ParcelableSavedStateTest.android.kt
A savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/RobolectricTest.android.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedState.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SavedStateUtils.kt
A savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/RobolectricTest.kt
A savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
A savedstate/savedstate/src/nonAndroidTest/kotlin/androidx/savedstate/RobolectricTest.nonAndroid.kt
br...@gmail.com <br...@gmail.com> #15
Project: platform/frameworks/support
Branch: androidx-main
commit 8b2da06337524429901a0c8c3db28d2eb1b529f0
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 11:26:35 2024
Add additional KMP targets to SavedState
RelNote: "SavedState, SavedStateWriter and SavedStateReader are now KMP compatible."
RelNote: "SavedState module now supports the following targets: android, desktop, ios, linux and mac."
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: I26305abd31dcbbf1c686e0bcfa9871b23cdd8545
A savedstate/savedstate/bcv/native/current.txt
M savedstate/savedstate/build.gradle
M savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
M savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
M savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
M savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
https://android-review.googlesource.com/3266971
Branch: androidx-main
commit 8b2da06337524429901a0c8c3db28d2eb1b529f0
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 11:26:35 2024
Add additional KMP targets to SavedState
RelNote: "SavedState, SavedStateWriter and SavedStateReader are now KMP compatible."
RelNote: "SavedState module now supports the following targets: android, desktop, ios, linux and mac."
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: I26305abd31dcbbf1c686e0bcfa9871b23cdd8545
A savedstate/savedstate/bcv/native/current.txt
M savedstate/savedstate/build.gradle
M savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
M savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
M savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
M savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
ni...@google.com <ni...@google.com>
sh...@google.com <sh...@google.com> #16
Project: platform/frameworks/support
Branch: androidx-main
commit 904217890feef81667eb1ae57c2fd762ea9e24ee
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 18:29:51 2024
Replace `SafeIterableMap` with `synchronized` + `mutableMap`
* `SafeIterableMap` class wasn't converted to KMP. Instead of converting, and to prevent `ConcurrentModificationException` during iteration, we replaced it with a standard `mutableMap` wrapped in a `synchronized` block. This ensures thread safety and allows for safe iteration.
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: Ie5ea66fa06fa6d2cd5e7abccc569db9a14908654
M savedstate/savedstate/build.gradle
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SynchronizedObject.kt
A savedstate/savedstate/src/darwinMain/kotlin/androidx/savedstate/internal/SynchronizedObject.darwin.kt
A savedstate/savedstate/src/jvmMain/kotlin/androidx/savedstate/internal/SynchronizedObject.jvm.kt
A savedstate/savedstate/src/linuxMain/kotlin/androidx/savedstate/internal/SynchronizedObject.linux.kt
A savedstate/savedstate/src/nativeMain/kotlin/androidx/savedstate/internal/SynchronizedObject.native.kt
https://android-review.googlesource.com/3267277
Branch: androidx-main
commit 904217890feef81667eb1ae57c2fd762ea9e24ee
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 18:29:51 2024
Replace `SafeIterableMap` with `synchronized` + `mutableMap`
* `SafeIterableMap` class wasn't converted to KMP. Instead of converting, and to prevent `ConcurrentModificationException` during iteration, we replaced it with a standard `mutableMap` wrapped in a `synchronized` block. This ensures thread safety and allows for safe iteration.
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: Ie5ea66fa06fa6d2cd5e7abccc569db9a14908654
M savedstate/savedstate/build.gradle
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SynchronizedObject.kt
A savedstate/savedstate/src/darwinMain/kotlin/androidx/savedstate/internal/SynchronizedObject.darwin.kt
A savedstate/savedstate/src/jvmMain/kotlin/androidx/savedstate/internal/SynchronizedObject.jvm.kt
A savedstate/savedstate/src/linuxMain/kotlin/androidx/savedstate/internal/SynchronizedObject.linux.kt
A savedstate/savedstate/src/nativeMain/kotlin/androidx/savedstate/internal/SynchronizedObject.native.kt
ni...@google.com <ni...@google.com> #17
Project: platform/frameworks/support
Branch: androidx-main
commit 33d5114f54ef6377d5d47176581551453825134e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 22:33:32 2024
Use unique Lifecycle dependency version in SavedState
* The project included, by mistake, two different lifecycle artifacts: one in the commonMain source set and the other in the androidMain source set.
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: I33cb7caeda5a5b3b0ffd4bd96985ea6e60d46f93
M savedstate/savedstate/build.gradle
https://android-review.googlesource.com/3267333
Branch: androidx-main
commit 33d5114f54ef6377d5d47176581551453825134e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 22:33:32 2024
Use unique Lifecycle dependency version in SavedState
* The project included, by mistake, two different lifecycle artifacts: one in the commonMain source set and the other in the androidMain source set.
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: I33cb7caeda5a5b3b0ffd4bd96985ea6e60d46f93
M savedstate/savedstate/build.gradle
Description
I have a real world app that was working fine with the setup described below using various versions of ConstraintLayout up to and including v2.0.0-beta2. Without making any other changes, I updated to ConstraintLayout v2.0.0-beta3 and this problem appeared, and it continues to appear in v2.0.0-beta4 (the attached demo app uses 2.0.0-beta4). Until this is resolved, my app is stuck using the old/outdated v2.0.0-beta2, which also means I cannot update my gradle plugin to version 3.6 due to another issue:
The problem:
With the following "Main layout" (see below) that contains a ViewPager2 who's height is set to "match constraints" and another view who's visibility is "gone" (this is the lynch pin reproducing the problem), any child ConstraintLayouts (see "Child layout" below) that are rendered inside of the ViewPager2 and have views with heights of "match constraints" do not get their heights set appropriately. Instead the child views with "match constraints" height get "hard coded" to 0dp tall (i.e. the height is treated as a literal 0dp and not as "match constraints").
To be clear, there are several pre-conditions that have to be true in order to produce this issue:
1. A ConstraintLayout that contains multiple views, and one of those views is a ViewPager2 with layout_height="0dp" (match constraints).
2. One of the other views in the ConstraintLayout has it's visibility set to "gone".
3. A "child" layout is used in the ViewPager2 that contains a ConstraintLayout with layout_height="match_parent", and one of the views in the child ConstraintLayout has a layout_height="0dp"
When these conditions are present, The views are not rendered correctly. The ViewPager2 correctly renders with it's height
properly "stretching" to match it's constraints. Since the child ConstraintLayout has a layout_height="match_parent", the expected behavior would be that it fills the ViewPager2's height. But that doesn't happen. Instead, the view in the child Layout that has layout_height="0dp" gets rendered with a 0 pixel height, instead of using match_constraints.
The 2 layout files below (and attached demo application that uses them) show the problem
<!-- Main Layout - Fills the screen, width and height are match_parent -->
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="
xmlns:app="
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- a fixed height view that is set to visibility="gone" -->
<!-- in my real app, the container is a MotionLayout and visibility of this view gets toggled during transitions. -->
<TextView android:id="@+id/top_view"
android:layout_width="match_parent"
android:layout_height="56dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone" />
<!-- ViewPager2 that has height="match constraints" and fills the rest of the screen -->
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/top_view"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Child Layout - Loaded in the ViewPager2, and fills the whole viewpager area, width and height are match_parent -->
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="
xmlns:app="
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- a fixed height view, renders correctly -->
<TextView android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="56dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- another view, with height of "match constraints" and constraints set to fill the rest of the parent -->
<!-- THIS VIEW DOES NOT GET RENDERED PROPERLY. IT DOES NOT FILL THE PARENT. IT GETS RENDERED WITH 0PX HEIGHT -->
<TextView android:id="@+id/constraint_view"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
In an app that uses the 2 layouts above, the "constraint_view" TextView in the Child Layout will not be displayed (it will have 0 height). See the attached screen shot "problem-view hidden" to see this. If you change the visibility on the TextView in the Main Layout to be visibility="visible", then the issue goes away, the "constraint_view" in the Child Layout not gets it's height set properly using match constraints and becomes visible. See the attached screen shot "working-view visible" to see it.
The screen shots and demo app use background and outlines on the views to demonstrate the problem:
The ViewPager2 has a yellow background.
The Child Fragment (ConstraintLayout) that is loaded in the ViewPager2 has a red outline.
The text_view (which shows up) in the Child Fragment has a green background.
The constraint_view (which is the problem view that doesn't show up) has a purple background.
The top_view (which has visibility="gone") in the Main Fragment is set to use a grey background.
The attached demo application shows the problem and provides 2 scenarios. When first launched the problem is demonstrated using a Fragment with MotionLayout as the primary layout, demonstrating a real world scenario where this problem comes up. Using the app, you can also toggle to show a different Fragment that uses ConstraintLayout as the primary layout. This demonstrates the root problem, which seems to be with ConstraintLayout and not MotionLayout. The demo app also uses background colors and outlines so that you can see the different views that are rendered on the screen.
When you run the app, you will see that the ViewPager2 (which has a light yellow background) correctly fills the screen, but the Child Layout inside of it does not fill the screen, and in fact the "constraint_view" TextView is not visible at all. In the demo app, you can click on the "play button" icon in the options menu to toggle the Transition in the motion scene, which makes the "top_view" in the Main Layout visible. When you do that, you will see the child layout now get rendered correctly, with it's "constraint_view" becoming visible and filling the rest of the screen. Interestingly, at this point, if you now use the options menu button to toggle the transition back and forth, the views remain correctly rendered all the time.
In the demo application, if you click the other button in the options menu, it will toggle to a different "ConstraintFragment" that uses a ConstraintLayout instead of a MotionLayout. This isolates the issue to ConstraintLayout, removing the MotionLayout from the equation.