Files
rr3-apk/decompiled/sources/androidx/lifecycle/LegacySavedStateHandleController.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

81 lines
4.4 KiB
Java

package androidx.lifecycle;
import android.os.Bundle;
import androidx.lifecycle.LegacySavedStateHandleController;
import androidx.lifecycle.Lifecycle;
import androidx.savedstate.SavedStateRegistry;
import androidx.savedstate.SavedStateRegistryOwner;
import java.util.Iterator;
import kotlin.jvm.internal.Intrinsics;
/* loaded from: classes.dex */
public final class LegacySavedStateHandleController {
public static final LegacySavedStateHandleController INSTANCE = new LegacySavedStateHandleController();
public static final String TAG_SAVED_STATE_HANDLE_CONTROLLER = "androidx.lifecycle.savedstate.vm.tag";
private LegacySavedStateHandleController() {
}
public static final SavedStateHandleController create(SavedStateRegistry registry, Lifecycle lifecycle, String str, Bundle bundle) {
Intrinsics.checkNotNullParameter(registry, "registry");
Intrinsics.checkNotNullParameter(lifecycle, "lifecycle");
Intrinsics.checkNotNull(str);
SavedStateHandleController savedStateHandleController = new SavedStateHandleController(str, SavedStateHandle.Companion.createHandle(registry.consumeRestoredStateForKey(str), bundle));
savedStateHandleController.attachToLifecycle(registry, lifecycle);
INSTANCE.tryToAddRecreator(registry, lifecycle);
return savedStateHandleController;
}
public static final void attachHandleIfNeeded(ViewModel viewModel, SavedStateRegistry registry, Lifecycle lifecycle) {
Intrinsics.checkNotNullParameter(viewModel, "viewModel");
Intrinsics.checkNotNullParameter(registry, "registry");
Intrinsics.checkNotNullParameter(lifecycle, "lifecycle");
SavedStateHandleController savedStateHandleController = (SavedStateHandleController) viewModel.getTag("androidx.lifecycle.savedstate.vm.tag");
if (savedStateHandleController == null || savedStateHandleController.isAttached()) {
return;
}
savedStateHandleController.attachToLifecycle(registry, lifecycle);
INSTANCE.tryToAddRecreator(registry, lifecycle);
}
private final void tryToAddRecreator(final SavedStateRegistry savedStateRegistry, final Lifecycle lifecycle) {
Lifecycle.State currentState = lifecycle.getCurrentState();
if (currentState == Lifecycle.State.INITIALIZED || currentState.isAtLeast(Lifecycle.State.STARTED)) {
savedStateRegistry.runOnNextRecreation(OnRecreation.class);
} else {
lifecycle.addObserver(new LifecycleEventObserver() { // from class: androidx.lifecycle.LegacySavedStateHandleController$tryToAddRecreator$1
@Override // androidx.lifecycle.LifecycleEventObserver
public void onStateChanged(LifecycleOwner source, Lifecycle.Event event) {
Intrinsics.checkNotNullParameter(source, "source");
Intrinsics.checkNotNullParameter(event, "event");
if (event == Lifecycle.Event.ON_START) {
Lifecycle.this.removeObserver(this);
savedStateRegistry.runOnNextRecreation(LegacySavedStateHandleController.OnRecreation.class);
}
}
});
}
}
public static final class OnRecreation implements SavedStateRegistry.AutoRecreated {
@Override // androidx.savedstate.SavedStateRegistry.AutoRecreated
public void onRecreated(SavedStateRegistryOwner owner) {
Intrinsics.checkNotNullParameter(owner, "owner");
if (!(owner instanceof ViewModelStoreOwner)) {
throw new IllegalStateException("Internal error: OnRecreation should be registered only on components that implement ViewModelStoreOwner".toString());
}
ViewModelStore viewModelStore = ((ViewModelStoreOwner) owner).getViewModelStore();
SavedStateRegistry savedStateRegistry = owner.getSavedStateRegistry();
Iterator<String> it = viewModelStore.keys().iterator();
while (it.hasNext()) {
ViewModel viewModel = viewModelStore.get(it.next());
Intrinsics.checkNotNull(viewModel);
LegacySavedStateHandleController.attachHandleIfNeeded(viewModel, savedStateRegistry, owner.getLifecycle());
}
if (!viewModelStore.keys().isEmpty()) {
savedStateRegistry.runOnNextRecreation(OnRecreation.class);
}
}
}
}