Obsolete
Status Update
Comments
va...@google.com <va...@google.com> #2
The first CL of this effort has been officially submitted in lifecycle-common
.
mg...@google.com <mg...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e4a654d863af22d2a4f486b90cf29c26c487cffb
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Mon Jan 22 11:49:53 2024
Multiplatform support for lifecycle-runtime
This change introduces multiplatform support for the lifecycle-runtime module by exposing the `LifecycleRegistry` to common, ensuring compatibility with published versions on Android.
BUG: 317249252
Relnote: Added multiplatform support for `lifecycle-runtime`
Test: Run existing and newly added tests
Change-Id: I0c5acfde52bd6c4a3cf7f38193c235915b45d549
M lifecycle/lifecycle-runtime/build.gradle
M lifecycle/lifecycle-runtime/src/androidInstrumentedTest/kotlin/androidx/lifecycle/MissingClassTest.kt
M lifecycle/lifecycle-runtime/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeLifecycleOwnerTest.kt
M lifecycle/lifecycle-runtime/src/androidMain/baseline-prof.txt
M lifecycle/lifecycle-runtime/src/androidMain/java/androidx/lifecycle/LifecycleRegistryOwner.java
A lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/LifecycleRegistry.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/ReportFragment.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/ViewTreeLifecycleOwner.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/res/values/ids.xml
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/NoPackageObserver.kt
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/NoPackageTest.kt
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/androidx/lifecycle/LifecycleRegistryTest.java
A lifecycle/lifecycle-runtime/src/commonMain/kotlin/androidx/lifecycle/LifecycleRegistry.kt
A lifecycle/lifecycle-runtime/src/commonTest/kotlin/androidx/lifecycle/CommonLifecycleRegistryTest.kt
A lifecycle/lifecycle-runtime/src/commonTest/kotlin/androidx/lifecycle/TestObserver.kt
A lifecycle/lifecycle-runtime/src/desktopMain/kotlin/androidx/lifecycle/LifecycleRegistry.desktop.kt
M lifecycle/lifecycle-runtime/src/jvmMain/kotlin/androidx/lifecycle/LifecycleRegistry.jvm.kt
M lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/LifecycleRegistry.native.kt
A lifecycle/lifecycle-runtime/src/nativeTest/kotlin/androidx/lifecycle/NativeLifecycleRegistryTest.kt
M settings.gradle
https://android-review.googlesource.com/2927699
Branch: androidx-main
commit e4a654d863af22d2a4f486b90cf29c26c487cffb
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Mon Jan 22 11:49:53 2024
Multiplatform support for lifecycle-runtime
This change introduces multiplatform support for the lifecycle-runtime module by exposing the `LifecycleRegistry` to common, ensuring compatibility with published versions on Android.
BUG: 317249252
Relnote: Added multiplatform support for `lifecycle-runtime`
Test: Run existing and newly added tests
Change-Id: I0c5acfde52bd6c4a3cf7f38193c235915b45d549
M lifecycle/lifecycle-runtime/build.gradle
M lifecycle/lifecycle-runtime/src/androidInstrumentedTest/kotlin/androidx/lifecycle/MissingClassTest.kt
M lifecycle/lifecycle-runtime/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeLifecycleOwnerTest.kt
M lifecycle/lifecycle-runtime/src/androidMain/baseline-prof.txt
M lifecycle/lifecycle-runtime/src/androidMain/java/androidx/lifecycle/LifecycleRegistryOwner.java
A lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/LifecycleRegistry.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/ReportFragment.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/ViewTreeLifecycleOwner.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/res/values/ids.xml
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/NoPackageObserver.kt
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/NoPackageTest.kt
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/androidx/lifecycle/LifecycleRegistryTest.java
A lifecycle/lifecycle-runtime/src/commonMain/kotlin/androidx/lifecycle/LifecycleRegistry.kt
A lifecycle/lifecycle-runtime/src/commonTest/kotlin/androidx/lifecycle/CommonLifecycleRegistryTest.kt
A lifecycle/lifecycle-runtime/src/commonTest/kotlin/androidx/lifecycle/TestObserver.kt
A lifecycle/lifecycle-runtime/src/desktopMain/kotlin/androidx/lifecycle/LifecycleRegistry.desktop.kt
M lifecycle/lifecycle-runtime/src/jvmMain/kotlin/androidx/lifecycle/LifecycleRegistry.jvm.kt
M lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/LifecycleRegistry.native.kt
A lifecycle/lifecycle-runtime/src/nativeTest/kotlin/androidx/lifecycle/NativeLifecycleRegistryTest.kt
M settings.gradle
mg...@google.com <mg...@google.com> #4
The second CL of this effort has been officially submitted in aosp/2927699, adding multiplatform support to lifecycle-runtime
.
mg...@google.com <mg...@google.com>
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit 08f40110a0400fa434ed023e763152e6f4aa39af
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Fri Jan 26 17:06:51 2024
Multiplatform support for lifecycle-runtime-ktx
BUG: 317249252
Relnote: Added multiplatform support for `lifecycle-runtime-ktx`
Test: Run existing tests
Change-Id: If445d68e7e85929839ad10347b31b9f11d61c00d
M lifecycle/lifecycle-runtime-ktx/build.gradle
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/Expectations.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/FakeLifecycleOwner.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/FlowWithLifecycleTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/LaunchWhenTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/PausingDispatcherTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/RepeatOnLifecycleTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/TaskTracker.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/TrackedExecutor.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeLifecycleOwnerTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/WithLifecycleStateTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidMain/AndroidManifest.xml
M lifecycle/lifecycle-runtime-ktx/src/androidMain/kotlin/androidx/lifecycle/View.android.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/FlowExt.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/RepeatOnLifecycle.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/WithLifecycleState.kt
M settings.gradle
https://android-review.googlesource.com/2930012
Branch: androidx-main
commit 08f40110a0400fa434ed023e763152e6f4aa39af
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Fri Jan 26 17:06:51 2024
Multiplatform support for lifecycle-runtime-ktx
BUG: 317249252
Relnote: Added multiplatform support for `lifecycle-runtime-ktx`
Test: Run existing tests
Change-Id: If445d68e7e85929839ad10347b31b9f11d61c00d
M lifecycle/lifecycle-runtime-ktx/build.gradle
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/Expectations.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/FakeLifecycleOwner.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/FlowWithLifecycleTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/LaunchWhenTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/PausingDispatcherTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/RepeatOnLifecycleTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/TaskTracker.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/TrackedExecutor.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeLifecycleOwnerTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/WithLifecycleStateTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidMain/AndroidManifest.xml
M lifecycle/lifecycle-runtime-ktx/src/androidMain/kotlin/androidx/lifecycle/View.android.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/FlowExt.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/RepeatOnLifecycle.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/WithLifecycleState.kt
M settings.gradle
mg...@google.com <mg...@google.com>
mg...@google.com <mg...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
commit d48a756bfcbc4679bbcf641554f75be5458cad04
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Mon Mar 04 22:55:59 2024
Align source sets in lifecycle-runtime with JetBrains fork
- Move shared code into `nonJvmMain` (a common source set for native and web targets)
- Use expect/actual for `WeakReference` and `isMainThread`
Bug: 317249252
Test: N/A
Change-Id: If70f6aa691d231674a7e3234a668e4b8184f2d91
M development/build_log_simplifier/messages.ignore
M lifecycle/lifecycle-runtime/build.gradle
M lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/LifecycleRegistry.native.kt
A lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/WeakReference.native.kt
A lifecycle/lifecycle-runtime/src/nonJvmMain/kotlin/androidx/lifecycle/LifecycleRegistry.nonJvm.kt
A lifecycle/lifecycle-runtime/src/nonJvmMain/kotlin/androidx/lifecycle/WeakReference.nonJvm.kt
https://android-review.googlesource.com/2986215
Branch: androidx-main
commit d48a756bfcbc4679bbcf641554f75be5458cad04
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Mon Mar 04 22:55:59 2024
Align source sets in lifecycle-runtime with JetBrains fork
- Move shared code into `nonJvmMain` (a common source set for native and web targets)
- Use expect/actual for `WeakReference` and `isMainThread`
Bug: 317249252
Test: N/A
Change-Id: If70f6aa691d231674a7e3234a668e4b8184f2d91
M development/build_log_simplifier/messages.ignore
M lifecycle/lifecycle-runtime/build.gradle
M lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/LifecycleRegistry.native.kt
A lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/WeakReference.native.kt
A lifecycle/lifecycle-runtime/src/nonJvmMain/kotlin/androidx/lifecycle/LifecycleRegistry.nonJvm.kt
A lifecycle/lifecycle-runtime/src/nonJvmMain/kotlin/androidx/lifecycle/WeakReference.nonJvm.kt
Description
While
saveable
depends on aSaver
implementation,saved
depends on aKSerializer
. Both are valid options, depending on project needs (e.g., adding a KotlinX Serialization dependency might be undesirable).To smooth the transition between these APIs, we want to enable using
Saver
as aKSerializer
and vice versa.This would allow using
Serializable
classes insaveable
, andSaveable
data insaved
.Since
Saver
returns a type accepted byBundle
, andencodeToSavedState
returns aBundle
, we can theoretically wrap one within the other for compatibility with both APIs at the cost of an wrapper instance.The goal is to determine the best way to handle this interoperability.