Fixed
Status Update
Comments
il...@google.com <il...@google.com>
jb...@google.com <jb...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 3077e1a50ed365b8680b5887af4e867183adbf41
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Jan 26 13:43:11 2022
Convert SavedStateViewModelFactory to Kotlin
We now have a Kotlin dependency in lifecycle-viewmodel-savedstate so we
can benefit from converting SavedStateHandle to Kotlin as well.
RelNote: "`SavedStateViewModelFactory` has been converted to Kotlin."
Test: ./gradlew checkApi
Bug: 177667711
Change-Id: I9647ab9888955fbdc3b90f9ab86f8204df038a7b
M lifecycle/lifecycle-viewmodel-savedstate/api/public_plus_experimental_current.txt
M lifecycle/lifecycle-viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateViewModelFactory.kt
M lifecycle/lifecycle-viewmodel-savedstate/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel-savedstate/api/current.txt
https://android-review.googlesource.com/1961802
Branch: androidx-main
commit 3077e1a50ed365b8680b5887af4e867183adbf41
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Jan 26 13:43:11 2022
Convert SavedStateViewModelFactory to Kotlin
We now have a Kotlin dependency in lifecycle-viewmodel-savedstate so we
can benefit from converting SavedStateHandle to Kotlin as well.
RelNote: "`SavedStateViewModelFactory` has been converted to Kotlin."
Test: ./gradlew checkApi
Bug: 177667711
Change-Id: I9647ab9888955fbdc3b90f9ab86f8204df038a7b
M lifecycle/lifecycle-viewmodel-savedstate/api/public_plus_experimental_current.txt
M lifecycle/lifecycle-viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateViewModelFactory.kt
M lifecycle/lifecycle-viewmodel-savedstate/api/restricted_current.txt
M lifecycle/lifecycle-viewmodel-savedstate/api/current.txt
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e03ad14598f0896df66dc98ab8bfaa1926755bd5
Author: Jeremy Woods <jbwoods@google.com>
Date: Mon Jan 31 09:25:05 2022
Improve custom AndroidViewModel parameter error message
When implementing a custom AndroidViewModel, the order of the parameters
must match the order in the super class or there will be an error.
We should improve the error message so that developers know that they
need to reorder their parameters.
RelNote: "The error message when custom `AndroidViewModel` classes have
parameters in the wrong order has been improved."
Test: SavedStateFactoryTest
Bug: 177667711
Change-Id: I340f7696bbf90e331e0b727e9195210cf1dadd0a
M lifecycle/lifecycle-viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateViewModelFactory.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidTest/java/androidx/lifecycle/viewmodel/savedstate/SavedStateFactoryTest.kt
https://android-review.googlesource.com/1962284
Branch: androidx-main
commit e03ad14598f0896df66dc98ab8bfaa1926755bd5
Author: Jeremy Woods <jbwoods@google.com>
Date: Mon Jan 31 09:25:05 2022
Improve custom AndroidViewModel parameter error message
When implementing a custom AndroidViewModel, the order of the parameters
must match the order in the super class or there will be an error.
We should improve the error message so that developers know that they
need to reorder their parameters.
RelNote: "The error message when custom `AndroidViewModel` classes have
parameters in the wrong order has been improved."
Test: SavedStateFactoryTest
Bug: 177667711
Change-Id: I340f7696bbf90e331e0b727e9195210cf1dadd0a
M lifecycle/lifecycle-viewmodel-savedstate/src/main/java/androidx/lifecycle/SavedStateViewModelFactory.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidTest/java/androidx/lifecycle/viewmodel/savedstate/SavedStateFactoryTest.kt
jb...@google.com <jb...@google.com> #4
This has been fixed internally and will be available in the Lifecycle 2.5.0-alpha02
release.
Description
Component used: "androidx.lifecycle:lifecycle-viewmodel-ktx:$versions.lifecycle" Version used: '2.2.0' Devices/Android versions reproduced on:
Name: Pixel_3_API_29
CPU/ABI: Google Play Intel Atom (x86)
Path: /Users/jingtang/.android/avd/Pixel_3_API_29.avd
Target: google_apis_playstore [Google Play] (API level 29)
Skin: pixel_3
SD Card: 512M
If this is a bug in the library, we would appreciate if you could attach:
This code is fine:
class QuestionnaireViewModel(application: Application, private val state: SavedStateHandle) : AndroidViewModel(application) {
But this code:
class QuestionnaireViewModel(private val state: SavedStateHandle, application: Application) : AndroidViewModel(application) {
Causes this error:
Caused by: java.lang.NoSuchMethodException: com.google.android.fhir.datacapture.gallery.QuestionnaireViewModel.<init> [class android.app.Application] at java.lang.Class.getConstructor0(Class.java:2332) at java.lang.Class.getConstructor(Class.java:1728) at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:267) at androidx.lifecycle.SavedStateViewModelFactory.create(SavedStateViewModelFactory.java:112) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:185) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:54) at androidx.lifecycle.ViewModelLazy.getValue(ViewModelProvider.kt:41) at com.google.android.fhir.datacapture.gallery.QuestionnaireActivity.getViewModel(Unknown Source:2) at com.google.android.fhir.datacapture.gallery.QuestionnaireActivity.onCreate(QuestionnaireActivity.kt:42) at android.app.Activity.performCreate(Activity.java:7802) at android.app.Activity.performCreate(Activity.java:7791) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)