Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
To use
The issue is happening because, starting from LocalLifecycleOwner
has been moved from androidx.compose.ui
to lifecycle-runtime-compose
, as outlined in their respective release notes. For compatibility reasons, you must update both dependencies.
For context, note these changes were made to enable the utilization of its Compose-based helper APIs beyond Compose UI (such as in
If the issue persists even after updating your Compose UI, please let us know.
Edit: please see
il...@google.com <il...@google.com> #3
Thanks for your answer.
If this change has made both libraries version dependent, it seems that guide them to the release note so that users will not experience difficulties :)
If this change has made both libraries version dependent, it seems that guide them to the release note so that users will not experience difficulties :)
Description
Component used: lifecycle-viewmodel-savedstate Version used: 2.3.0-alpha01
SavedStateHandle
is currently the only mechanism for accessing saved instance state from aViewModel
. However, it currently forces you to only use objects that can be put in a Bundle sinceset()
verifies the type of object immediately.It would be nice if
SavedStateHandle
could also support lazy serialization of objects - namely, having some equivalent to being able to register aonSaveInstanceState()
like callback.It seems like this is precisely what something like
SavedStateProvider
could fill. You couldregisterSavedStateProvider()
with aString key
and aSavedStateProvider
and theSavedStateHandle
would be responsible for callingsaveState()
on each provider to fill in theBundle
for that key.It would be the responsibility of the
ViewModel
for maintaining the non-bundable object outside ofSavedStateHandle
(i.e., having its ownMutableLiveData
) as well as in implementing theSavedStateProvider
.There'd need be some way to access the previously saved state - perhaps the underlying
get()
method would return aBundle?
indicating the previously saved state and/orregisterSavedStateProvider()
could return that sameBundle?
.