ADD week 5
This commit is contained in:
		| @@ -0,0 +1,88 @@ | ||||
| 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.Metadata; | ||||
| import kotlin.jvm.JvmStatic; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
|  | ||||
| /* compiled from: LegacySavedStateHandleController.kt */ | ||||
| @Metadata(d1 = {"\u0000:\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\bÀ\u0002\u0018\u00002\u00020\u0001:\u0001\u0013B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J \u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\b2\u0006\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\fH\u0007J,\u0010\r\u001a\u00020\u000e2\u0006\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\f2\b\u0010\u000f\u001a\u0004\u0018\u00010\u00042\b\u0010\u0010\u001a\u0004\u0018\u00010\u0011H\u0007J\u0018\u0010\u0012\u001a\u00020\u00062\u0006\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\fH\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0086T¢\u0006\u0002\n\u0000¨\u0006\u0014"}, d2 = {"Landroidx/lifecycle/LegacySavedStateHandleController;", "", "()V", "TAG_SAVED_STATE_HANDLE_CONTROLLER", "", "attachHandleIfNeeded", "", "viewModel", "Landroidx/lifecycle/ViewModel;", "registry", "Landroidx/savedstate/SavedStateRegistry;", "lifecycle", "Landroidx/lifecycle/Lifecycle;", "create", "Landroidx/lifecycle/SavedStateHandleController;", "key", "defaultArgs", "Landroid/os/Bundle;", "tryToAddRecreator", "OnRecreation", "lifecycle-viewmodel-savedstate_release"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
| /* 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() { | ||||
|     } | ||||
|  | ||||
|     @JvmStatic | ||||
|     public static final SavedStateHandleController create(SavedStateRegistry registry, Lifecycle lifecycle, String key, Bundle defaultArgs) { | ||||
|         Intrinsics.checkNotNullParameter(registry, "registry"); | ||||
|         Intrinsics.checkNotNullParameter(lifecycle, "lifecycle"); | ||||
|         Intrinsics.checkNotNull(key); | ||||
|         SavedStateHandleController savedStateHandleController = new SavedStateHandleController(key, SavedStateHandle.INSTANCE.createHandle(registry.consumeRestoredStateForKey(key), defaultArgs)); | ||||
|         savedStateHandleController.attachToLifecycle(registry, lifecycle); | ||||
|         INSTANCE.tryToAddRecreator(registry, lifecycle); | ||||
|         return savedStateHandleController; | ||||
|     } | ||||
|  | ||||
|     @JvmStatic | ||||
|     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.getIsAttached()) { | ||||
|             return; | ||||
|         } | ||||
|         savedStateHandleController.attachToLifecycle(registry, lifecycle); | ||||
|         INSTANCE.tryToAddRecreator(registry, lifecycle); | ||||
|     } | ||||
|  | ||||
|     private final void tryToAddRecreator(final SavedStateRegistry registry, final Lifecycle lifecycle) { | ||||
|         Lifecycle.State state = lifecycle.getState(); | ||||
|         if (state == Lifecycle.State.INITIALIZED || state.isAtLeast(Lifecycle.State.STARTED)) { | ||||
|             registry.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); | ||||
|                         registry.runOnNextRecreation(LegacySavedStateHandleController.OnRecreation.class); | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* compiled from: LegacySavedStateHandleController.kt */ | ||||
|     @Metadata(d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\b\u0000\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u0010\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0016¨\u0006\u0007"}, d2 = {"Landroidx/lifecycle/LegacySavedStateHandleController$OnRecreation;", "Landroidx/savedstate/SavedStateRegistry$AutoRecreated;", "()V", "onRecreated", "", "owner", "Landroidx/savedstate/SavedStateRegistryOwner;", "lifecycle-viewmodel-savedstate_release"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
|     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); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user