Fixed
Status Update
Comments
su...@google.com <su...@google.com> #2
Hello, I want to ask about this feature. Is there any update on this?
su...@yahooinc.com <su...@yahooinc.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
su...@google.com <su...@google.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
su...@yahooinc.com <su...@yahooinc.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
su...@google.com <su...@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
su...@yahooinc.com <su...@yahooinc.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
ap...@google.com <ap...@google.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
Description
Version used: Alpha 10
Devices/Android versions reproduced on: Nvidia (100%)
stacktrace:
ConnectivityManager.java in android.net.ConnectivityManager.unregisterNetworkCallback at line 3106
NetworkStateTracker.java in androidx.work.impl.constraints.trackers.NetworkStateTracker.stopTracking at line 94
ConstraintTracker.java in androidx.work.impl.constraints.trackers.ConstraintTracker.removeListener at line 79
ConstraintController.java in androidx.work.impl.constraints.controllers.ConstraintController.replace at line 98
GreedyScheduler.java in androidx.work.impl.background.greedy.GreedyScheduler.removeConstraintTrackingFor at line 150
Processor.java in androidx.work.impl.Processor.onExecuted at line 228
Processor.java in androidx.work.impl.Processor$FutureListener.run at line 258
Handler.java in android.os.Handler.handleCallback at line 751
Handler.java in android.os.Handler.dispatchMessage at line 95
Looper.java in android.os.Looper.loop at line 154
ActivityThread.java in android.app.ActivityThread.main at line 6120
java.lang.reflect.Method in invoke
ZygoteInit.java in com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run at line 865
ZygoteInit.java in com.android.internal.os.ZygoteInit.main at line 755