Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Hello, I want to ask about this feature. Is there any update on this?
ih...@gmail.com <ih...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 8c85cb8b91da49a3ae39d5d4e3a9475d1b4c58a7
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Mon Jan 29 18:42:33 2024
Convert `ViewModel` to Kotlin
* Convert `ViewModel` to Kotlin, last java file in the `:viewmodel` artifact.
* Add `@Suppress` to statements with warnings that are intentional, to better communicate they are there for a reason. Intentional warnings state for code that is required for the library to work as expected.
* Update docs to follow Kotlin extensions and conventions (see aosp/2930010).
* Remove hungary notation from private variables, following Kotlin conventions.
* Update code to be idiomatic Kotlin (such as `closeable += closeables`). Changes are only aesthetical, no logic has changed.
* Merge `ViewModelCoroutineScope` into `ViewModel`, now that both files are Kotlin and are placed in the same module.
RelNote: "`ViewModel` is now in Kotlin"
Test: ./gradlew checkApi
Test: ViewModelTest
Bug: 214568825
Change-Id: I16f26813d862c76154739888bb631c214fa1c810
M lifecycle/lifecycle-viewmodel/api/current.txt
M lifecycle/lifecycle-viewmodel/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel/src/androidTest/java/androidx/lifecycle/ViewModelTest.kt
D lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModel.java
A lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModel.kt
D lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModelCoroutineScope.kt
M lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModelStore.kt
https://android-review.googlesource.com/2936170
Branch: androidx-main
commit 8c85cb8b91da49a3ae39d5d4e3a9475d1b4c58a7
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Mon Jan 29 18:42:33 2024
Convert `ViewModel` to Kotlin
* Convert `ViewModel` to Kotlin, last java file in the `:viewmodel` artifact.
* Add `@Suppress` to statements with warnings that are intentional, to better communicate they are there for a reason. Intentional warnings state for code that is required for the library to work as expected.
* Update docs to follow Kotlin extensions and conventions (see aosp/2930010).
* Remove hungary notation from private variables, following Kotlin conventions.
* Update code to be idiomatic Kotlin (such as `closeable += closeables`). Changes are only aesthetical, no logic has changed.
* Merge `ViewModelCoroutineScope` into `ViewModel`, now that both files are Kotlin and are placed in the same module.
RelNote: "`ViewModel` is now in Kotlin"
Test: ./gradlew checkApi
Test: ViewModelTest
Bug: 214568825
Change-Id: I16f26813d862c76154739888bb631c214fa1c810
M lifecycle/lifecycle-viewmodel/api/current.txt
M lifecycle/lifecycle-viewmodel/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel/src/androidTest/java/androidx/lifecycle/ViewModelTest.kt
D lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModel.java
A lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModel.kt
D lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModelCoroutineScope.kt
M lifecycle/lifecycle-viewmodel/src/main/java/androidx/lifecycle/ViewModelStore.kt
b9...@gmail.com <b9...@gmail.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit d93ce790debd7791098ff45977e4ba92552996b1
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Jan 30 10:31:40 2024
Configure Kotlin Multiplatform in `lifecycle-viewmodel` artifact
* Adds multiplatform Gradle configuration to `lifecycle-viewmodel`, including changing the folder structure.
* Once aosp/2930010, aosp/2936170 and this change is merged, we will follow-up the work of b/214568825 with moving the implementations from `androidMain` to `commonMain`, and `androidUnitTest` to `commonTest`.
Test: ./gradlew checkApi
Test: ANDROIDX_PROJECTS=INFRAROGUE ./gradlew lifecycle:lifecycle-viewmodel:allTests
Bug: 214568825
Change-Id: Ib5a796dd743c9cc2ad83d7691a1ee656d3169583
M lifecycle/lifecycle-viewmodel/build.gradle
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/AndroidViewModelFactoryTest.kt
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/CreationExtrasTest.kt
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewModelTest.kt
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeViewModelStoreOwnerTest.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/AndroidManifest.xml
M lifecycle/lifecycle-viewmodel/src/androidMain/baseline-prof.txt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/AndroidViewModel.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelLazy.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProvider.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStore.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStoreOwner.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModel.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModelStoreOwner.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/CreationExtras.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/res/values/ids.xml
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelLazyTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelProviderReifiedTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelProviderTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelStoreTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/viewmodel/ViewModelInitializerTest.kt
M settings.gradle
https://android-review.googlesource.com/2935179
Branch: androidx-main
commit d93ce790debd7791098ff45977e4ba92552996b1
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Jan 30 10:31:40 2024
Configure Kotlin Multiplatform in `lifecycle-viewmodel` artifact
* Adds multiplatform Gradle configuration to `lifecycle-viewmodel`, including changing the folder structure.
* Once aosp/2930010, aosp/2936170 and this change is merged, we will follow-up the work of
Test: ./gradlew checkApi
Test: ANDROIDX_PROJECTS=INFRAROGUE ./gradlew lifecycle:lifecycle-viewmodel:allTests
Bug: 214568825
Change-Id: Ib5a796dd743c9cc2ad83d7691a1ee656d3169583
M lifecycle/lifecycle-viewmodel/build.gradle
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/AndroidViewModelFactoryTest.kt
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/CreationExtrasTest.kt
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewModelTest.kt
M lifecycle/lifecycle-viewmodel/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeViewModelStoreOwnerTest.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/AndroidManifest.xml
M lifecycle/lifecycle-viewmodel/src/androidMain/baseline-prof.txt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/AndroidViewModel.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelLazy.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProvider.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStore.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStoreOwner.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModel.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModelStoreOwner.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/CreationExtras.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/res/values/ids.xml
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelLazyTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelProviderReifiedTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelProviderTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelStoreTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/ViewModelTest.kt
M lifecycle/lifecycle-viewmodel/src/androidUnitTest/kotlin/androidx/lifecycle/viewmodel/ViewModelInitializerTest.kt
M settings.gradle
ih...@gmail.com <ih...@gmail.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit 326c13fc1898318463f41acf070d4f6e78e9f694
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Feb 13 14:56:57 2024
Use `AutoCloseable` in `ViewModel`
* Replace `Closeable` by `AutoCloseable`.
* Kotlin Multiplatform does not support `Closeable`, only `AutoCloseable`. The change is required to migrate `lifecycle-viewmodel` to Multiplatform.
* Keep previous stable constructor as `Deprecated(level = DeprecationLevel.HIDDEN)` to not break backward compatibility.
* Set `bagOfTags` and `closeables` to `nullable` to remove redundant `@Suppress("RedundantNullableReturnType")` on each `null` check.
* Add KDoc to `bagOfTags` to better explain the expected behaviour, and compatibility considerations.
RelNote: "`ViewModel` now uses `AutoCloseable` instead of `Closeable`. That is a backward compatible change, introduced to allow `lifecycle-viewmodel` to migrate to Kotlin Multiplatform."
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I27f8e7c85e59aae7c268d66d98f70d717d6f3c83
M lifecycle/lifecycle-viewmodel/api/current.txt
M lifecycle/lifecycle-viewmodel/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.kt
https://android-review.googlesource.com/2960843
Branch: androidx-main
commit 326c13fc1898318463f41acf070d4f6e78e9f694
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Tue Feb 13 14:56:57 2024
Use `AutoCloseable` in `ViewModel`
* Replace `Closeable` by `AutoCloseable`.
* Kotlin Multiplatform does not support `Closeable`, only `AutoCloseable`. The change is required to migrate `lifecycle-viewmodel` to Multiplatform.
* Keep previous stable constructor as `Deprecated(level = DeprecationLevel.HIDDEN)` to not break backward compatibility.
* Set `bagOfTags` and `closeables` to `nullable` to remove redundant `@Suppress("RedundantNullableReturnType")` on each `null` check.
* Add KDoc to `bagOfTags` to better explain the expected behaviour, and compatibility considerations.
RelNote: "`ViewModel` now uses `AutoCloseable` instead of `Closeable`. That is a backward compatible change, introduced to allow `lifecycle-viewmodel` to migrate to Kotlin Multiplatform."
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I27f8e7c85e59aae7c268d66d98f70d717d6f3c83
M lifecycle/lifecycle-viewmodel/api/current.txt
M lifecycle/lifecycle-viewmodel/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.kt
il...@google.com <il...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
commit ee7828cd1baf3375fee05b3b17b4cb39706576ac
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 15:56:08 2024
Move `ViewModel` files without deps to `commonMain`
* Move all source files that does not have a dependency with `ViewModelProvider` from `androidMain` to `commonMain`
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:validateMultiplatformSourceSetNaming
Change-Id: I9f81b600ae052ca979b3aae6c3b2b3954efb9e3a
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelStore.kt
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelStoreOwner.kt
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/CreationExtras.kt
https://android-review.googlesource.com/2965065
Branch: androidx-main
commit ee7828cd1baf3375fee05b3b17b4cb39706576ac
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 15:56:08 2024
Move `ViewModel` files without deps to `commonMain`
* Move all source files that does not have a dependency with `ViewModelProvider` from `androidMain` to `commonMain`
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:validateMultiplatformSourceSetNaming
Change-Id: I9f81b600ae052ca979b3aae6c3b2b3954efb9e3a
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelStore.kt
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelStoreOwner.kt
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/CreationExtras.kt
ih...@gmail.com <ih...@gmail.com> #7
Project: platform/frameworks/support
Branch: androidx-main
commit 965e5b9bfa6b9074903a5ca737af623e4313272c
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 11:07:57 2024
Set-up common dependencies for ViewModel KMP
* Includes all multiplatform version from `androidMain.dependencies`.
Bug: 214568825
Test: manual (project builds)
Change-Id: I55538f4640072bca8ac9305fe0562a5e0a55a20c
M lifecycle/lifecycle-viewmodel/build.gradle
https://android-review.googlesource.com/2965062
Branch: androidx-main
commit 965e5b9bfa6b9074903a5ca737af623e4313272c
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 11:07:57 2024
Set-up common dependencies for ViewModel KMP
* Includes all multiplatform version from `androidMain.dependencies`.
Bug: 214568825
Test: manual (project builds)
Change-Id: I55538f4640072bca8ac9305fe0562a5e0a55a20c
M lifecycle/lifecycle-viewmodel/build.gradle
b9...@gmail.com <b9...@gmail.com> #8
Project: platform/frameworks/support
Branch: androidx-main
commit 5c19d5033cbfe2c9be61522f6d56e947fcf0ee0e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 11:49:48 2024
Migrate `ViewModel` class to KMP
* Includes `atomicfu` as a dependency. We need access to `kotlinx.atomicfu.locks.synchronized` for converting the internal `ViewModel` synchronization logic to multiplatform.
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I18fc338a41c9d032163f686892e04212a881face
M lifecycle/lifecycle-viewmodel/build.gradle
D lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.android.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModel.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelImpl.kt
A lifecycle/lifecycle-viewmodel/src/jvmMain/kotlin/androidx/lifecycle/ViewModel.jvm.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/ViewModel.native.kt
https://android-review.googlesource.com/2965063
Branch: androidx-main
commit 5c19d5033cbfe2c9be61522f6d56e947fcf0ee0e
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 11:49:48 2024
Migrate `ViewModel` class to KMP
* Includes `atomicfu` as a dependency. We need access to `kotlinx.atomicfu.locks.synchronized` for converting the internal `ViewModel` synchronization logic to multiplatform.
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I18fc338a41c9d032163f686892e04212a881face
M lifecycle/lifecycle-viewmodel/build.gradle
D lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.android.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModel.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelImpl.kt
A lifecycle/lifecycle-viewmodel/src/jvmMain/kotlin/androidx/lifecycle/ViewModel.jvm.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/ViewModel.native.kt
ra...@google.com <ra...@google.com>
ap...@google.com <ap...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-main
commit 0e3cb6e4730e0bdfc6005b0806e4df757c2a449c
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Feb 16 16:37:08 2024
Migrate `ViewModelProviderGet` class to KMP
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I953a052cb891ff9813daa67e12dff4ff19a7167d
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelProviderGet.kt
https://android-review.googlesource.com/2966766
Branch: androidx-main
commit 0e3cb6e4730e0bdfc6005b0806e4df757c2a449c
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Feb 16 16:37:08 2024
Migrate `ViewModelProviderGet` class to KMP
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I953a052cb891ff9813daa67e12dff4ff19a7167d
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelProviderGet.kt
jb...@google.com <jb...@google.com> #10
Project: platform/frameworks/support
Branch: androidx-main
commit d05b9d6dd4daa1442f014e21a062300b5790e441
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 19:42:27 2024
Migrate `ViewModelProvider` class to KMP
* `ViewModelProvider`, all nested types and classes with cyclic dependency have been converted to Kotlin Multiplatform.
* All methods that expects a `java.lang.Class<T>` have been converted to `expect`/`actual`, and received a new `KClass<T>` overload.
* A new constructor for `ViewModelProvider` has been added to avoid breaking binary compatibility with the Android source: the original Android source would generate overloaded constructors and a public synthetic constructor with last parameter as `DefaultConstructorMarker`, but when combining `JvmOverloads` with `expect`/`actual`, the synthetic constructor has not been generated. That is a binary compatibility.
* The `@JvmOverload` constructor has been left as an Android-only API for now.
* Kotlin Multiplatform does not support expect class with default implementation yet. Hence, the common logic has been extracted to an internal `ViewModelProviderImpl` (for stateful logic) and `ViewModelProviders` (for stateless logic).
RelNote: "`ViewModelProvider` is now Kotlin Multiplatform. To accommodate this change, compatibility methods have been added for handling `java.lang.Class<T>` and `kotlin.reflect.KClass<T>`."
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I898c8d73432c41045ef5e330741b0c724f92ee1f
M lifecycle/lifecycle-viewmodel/api/api_lint.ignore
M lifecycle/lifecycle-viewmodel/api/current.txt
M lifecycle/lifecycle-viewmodel/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProvider.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.android.kt
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory.android.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelProvider.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviders.kt
A lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/ViewModelProvider.desktop.kt
A lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.desktop.kt
A lifecycle/lifecycle-viewmodel/src/jvmMain/kotlin/androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.jvm.kt
A lifecycle/lifecycle-viewmodel/src/jvmMain/kotlin/androidx/lifecycle/viewmodel/internal/JvmViewModelProviders.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/ViewModelProvider.native.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.native.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.native.kt
https://android-review.googlesource.com/2966765
Branch: androidx-main
commit d05b9d6dd4daa1442f014e21a062300b5790e441
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 19:42:27 2024
Migrate `ViewModelProvider` class to KMP
* `ViewModelProvider`, all nested types and classes with cyclic dependency have been converted to Kotlin Multiplatform.
* All methods that expects a `java.lang.Class<T>` have been converted to `expect`/`actual`, and received a new `KClass<T>` overload.
* A new constructor for `ViewModelProvider` has been added to avoid breaking binary compatibility with the Android source: the original Android source would generate overloaded constructors and a public synthetic constructor with last parameter as `DefaultConstructorMarker`, but when combining `JvmOverloads` with `expect`/`actual`, the synthetic constructor has not been generated. That is a binary compatibility.
* The `@JvmOverload` constructor has been left as an Android-only API for now.
* Kotlin Multiplatform does not support expect class with default implementation yet. Hence, the common logic has been extracted to an internal `ViewModelProviderImpl` (for stateful logic) and `ViewModelProviders` (for stateless logic).
RelNote: "`ViewModelProvider` is now Kotlin Multiplatform. To accommodate this change, compatibility methods have been added for handling `java.lang.Class<T>` and `kotlin.reflect.KClass<T>`."
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I898c8d73432c41045ef5e330741b0c724f92ee1f
M lifecycle/lifecycle-viewmodel/api/api_lint.ignore
M lifecycle/lifecycle-viewmodel/api/current.txt
M lifecycle/lifecycle-viewmodel/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProvider.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.android.kt
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory.android.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelProvider.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviderImpl.kt
A lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/viewmodel/internal/ViewModelProviders.kt
A lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/ViewModelProvider.desktop.kt
A lifecycle/lifecycle-viewmodel/src/desktopMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.desktop.kt
A lifecycle/lifecycle-viewmodel/src/jvmMain/kotlin/androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.jvm.kt
A lifecycle/lifecycle-viewmodel/src/jvmMain/kotlin/androidx/lifecycle/viewmodel/internal/JvmViewModelProviders.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/ViewModelProvider.native.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.native.kt
A lifecycle/lifecycle-viewmodel/src/nativeMain/kotlin/androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.native.kt
b9...@gmail.com <b9...@gmail.com> #11
Project: platform/frameworks/support
Branch: androidx-main
commit d209cc4713f19ec534bd94c91276443ac05edf99
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Feb 16 16:39:17 2024
Migrate `ViewModelLazy` class to KMP
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I6485752da173356ea4fef4505d9ec53c1145e91a
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelLazy.kt
https://android-review.googlesource.com/2966767
Branch: androidx-main
commit d209cc4713f19ec534bd94c91276443ac05edf99
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Feb 16 16:39:17 2024
Migrate `ViewModelLazy` class to KMP
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Change-Id: I6485752da173356ea4fef4505d9ec53c1145e91a
M lifecycle/lifecycle-viewmodel/src/commonMain/kotlin/androidx/lifecycle/ViewModelLazy.kt
ra...@google.com <ra...@google.com> #12
Project: platform/frameworks/support
Branch: androidx-main
commit 2b0f90508a5821c82e9b2e73a9d44ae3753a3b06
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 15:40:43 2024
Add `android` suffix to all `ViewModel.androidMain` files
* Required to comply with `:lifecycle:lifecycle-viewmodel:validateMultiplatformSourceSetNaming` task.
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:validateMultiplatformSourceSetNaming
Change-Id: I41235a51bb943cf26e23f27d50dcad97ec588290
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/AndroidViewModel.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelLazy.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProvider.android.kt
A lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProviderGet.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStore.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStoreOwner.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModel.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModelStoreOwner.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/CreationExtras.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.android.kt
https://android-review.googlesource.com/2965244
Branch: androidx-main
commit 2b0f90508a5821c82e9b2e73a9d44ae3753a3b06
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Feb 15 15:40:43 2024
Add `android` suffix to all `ViewModel.androidMain` files
* Required to comply with `:lifecycle:lifecycle-viewmodel:validateMultiplatformSourceSetNaming` task.
Bug: 214568825
Test: ./gradlew :lifecycle:lifecycle-viewmodel:checkApi
Test: ./gradlew :lifecycle:lifecycle-viewmodel:connectedDebugAndroidTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:testDebugUnitTest
Test: ./gradlew :lifecycle:lifecycle-viewmodel:validateMultiplatformSourceSetNaming
Change-Id: I41235a51bb943cf26e23f27d50dcad97ec588290
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/AndroidViewModel.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModel.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelLazy.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProvider.android.kt
A lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelProviderGet.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStore.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewModelStoreOwner.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModel.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/ViewTreeViewModelStoreOwner.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/CreationExtras.android.kt
M lifecycle/lifecycle-viewmodel/src/androidMain/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactory.android.kt
Description
Component used: lifecycle-process
Version used: 2.5.0-alpha01
Devices/Android versions reproduced on: Android 11 on Xiaomi Mi 8
Description: After update lifecycle component to version 2.5.0-alpha01 I received error on application launch:
I didn't make any other changes to the project, and in manifest I have meta-data block. But I investigated this and think this is due to EmojiCompatInitializer from emoji2 witch call:
in method delayUntilFirstResume. I hope my thoughts will help in a speedy solution to the problem.