SRE/02-Easy5/E5/sources/androidx/fragment/app/FragmentViewLifecycleOwner.java
2025-03-31 16:33:42 +02:00

110 lines
4.1 KiB
Java

package androidx.fragment.app;
import android.app.Application;
import android.content.Context;
import android.content.ContextWrapper;
import android.os.Bundle;
import androidx.lifecycle.HasDefaultViewModelProviderFactory;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleRegistry;
import androidx.lifecycle.SavedStateViewModelFactory;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStore;
import androidx.lifecycle.ViewModelStoreOwner;
import androidx.lifecycle.viewmodel.CreationExtras;
import androidx.savedstate.SavedStateRegistry;
import androidx.savedstate.SavedStateRegistryController;
import androidx.savedstate.SavedStateRegistryOwner;
/* loaded from: classes.dex */
class FragmentViewLifecycleOwner implements HasDefaultViewModelProviderFactory, SavedStateRegistryOwner, ViewModelStoreOwner {
private ViewModelProvider.Factory mDefaultFactory;
private final Fragment mFragment;
private LifecycleRegistry mLifecycleRegistry = null;
private SavedStateRegistryController mSavedStateRegistryController = null;
private final ViewModelStore mViewModelStore;
@Override // androidx.lifecycle.HasDefaultViewModelProviderFactory
public /* synthetic */ CreationExtras getDefaultViewModelCreationExtras() {
CreationExtras creationExtras;
creationExtras = CreationExtras.Empty.INSTANCE;
return creationExtras;
}
boolean isInitialized() {
return this.mLifecycleRegistry != null;
}
FragmentViewLifecycleOwner(Fragment fragment, ViewModelStore viewModelStore) {
this.mFragment = fragment;
this.mViewModelStore = viewModelStore;
}
@Override // androidx.lifecycle.ViewModelStoreOwner
public ViewModelStore getViewModelStore() {
initialize();
return this.mViewModelStore;
}
void initialize() {
if (this.mLifecycleRegistry == null) {
this.mLifecycleRegistry = new LifecycleRegistry(this);
this.mSavedStateRegistryController = SavedStateRegistryController.create(this);
}
}
@Override // androidx.lifecycle.LifecycleOwner
public Lifecycle getLifecycle() {
initialize();
return this.mLifecycleRegistry;
}
void setCurrentState(Lifecycle.State state) {
this.mLifecycleRegistry.setCurrentState(state);
}
void handleLifecycleEvent(Lifecycle.Event event) {
this.mLifecycleRegistry.handleLifecycleEvent(event);
}
@Override // androidx.lifecycle.HasDefaultViewModelProviderFactory
public ViewModelProvider.Factory getDefaultViewModelProviderFactory() {
Application application;
ViewModelProvider.Factory defaultViewModelProviderFactory = this.mFragment.getDefaultViewModelProviderFactory();
if (!defaultViewModelProviderFactory.equals(this.mFragment.mDefaultFactory)) {
this.mDefaultFactory = defaultViewModelProviderFactory;
return defaultViewModelProviderFactory;
}
if (this.mDefaultFactory == null) {
Context applicationContext = this.mFragment.requireContext().getApplicationContext();
while (true) {
if (!(applicationContext instanceof ContextWrapper)) {
application = null;
break;
}
if (applicationContext instanceof Application) {
application = (Application) applicationContext;
break;
}
applicationContext = ((ContextWrapper) applicationContext).getBaseContext();
}
this.mDefaultFactory = new SavedStateViewModelFactory(application, this, this.mFragment.getArguments());
}
return this.mDefaultFactory;
}
@Override // androidx.savedstate.SavedStateRegistryOwner
public SavedStateRegistry getSavedStateRegistry() {
initialize();
return this.mSavedStateRegistryController.getSavedStateRegistry();
}
void performRestore(Bundle bundle) {
this.mSavedStateRegistryController.performRestore(bundle);
}
void performSave(Bundle bundle) {
this.mSavedStateRegistryController.performSave(bundle);
}
}