ADD week 5
This commit is contained in:
		| @@ -0,0 +1,109 @@ | ||||
| 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); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user