Skip to content

Commit

Permalink
Merge "Fix LegacySavedStateHandleController null pointer exception …
Browse files Browse the repository at this point in the history
…when the store is cleared during recreation" into androidx-main
  • Loading branch information
marcellogalhardo authored and Gerrit Code Review committed Nov 8, 2024
2 parents 9051011 + db0d2c3 commit 9903d6e
Showing 1 changed file with 5 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,14 @@ internal object LegacySavedStateHandleController {
internal class OnRecreation : SavedStateRegistry.AutoRecreated {
override fun onRecreated(owner: SavedStateRegistryOwner) {
check(owner is ViewModelStoreOwner) {
("Internal error: OnRecreation should be registered only on components " +
"that implement ViewModelStoreOwner")
"Internal error: OnRecreation should be registered only on components " +
"that implement ViewModelStoreOwner. Received owner: $owner"
}
val viewModelStore = (owner as ViewModelStoreOwner).viewModelStore
val viewModelStore = owner.viewModelStore
val savedStateRegistry = owner.savedStateRegistry
for (key in viewModelStore.keys()) {
val viewModel = viewModelStore[key]
attachHandleIfNeeded(viewModel!!, savedStateRegistry, owner.lifecycle)
val viewModel = viewModelStore[key] ?: continue
attachHandleIfNeeded(viewModel, savedStateRegistry, owner.lifecycle)
}
if (viewModelStore.keys().isNotEmpty()) {
savedStateRegistry.runOnNextRecreation(OnRecreation::class.java)
Expand Down

0 comments on commit 9903d6e

Please sign in to comment.