ADD week 5
This commit is contained in:
		
							
								
								
									
										447
									
								
								02-Easy5/E5/sources/androidx/fragment/app/FragmentActivity.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										447
									
								
								02-Easy5/E5/sources/androidx/fragment/app/FragmentActivity.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,447 @@ | ||||
| package androidx.fragment.app; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.Intent; | ||||
| import android.content.IntentSender; | ||||
| import android.content.res.Configuration; | ||||
| import android.os.Bundle; | ||||
| import android.os.Parcelable; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.Menu; | ||||
| import android.view.MenuItem; | ||||
| import android.view.View; | ||||
| import android.view.Window; | ||||
| import androidx.activity.ComponentActivity; | ||||
| import androidx.activity.OnBackPressedDispatcher; | ||||
| import androidx.activity.OnBackPressedDispatcherOwner; | ||||
| import androidx.activity.contextaware.OnContextAvailableListener; | ||||
| import androidx.activity.result.ActivityResultRegistry; | ||||
| import androidx.activity.result.ActivityResultRegistryOwner; | ||||
| import androidx.core.app.ActivityCompat; | ||||
| import androidx.core.app.SharedElementCallback; | ||||
| import androidx.lifecycle.Lifecycle; | ||||
| import androidx.lifecycle.LifecycleRegistry; | ||||
| import androidx.lifecycle.ViewModelStore; | ||||
| import androidx.lifecycle.ViewModelStoreOwner; | ||||
| import androidx.loader.app.LoaderManager; | ||||
| import androidx.savedstate.SavedStateRegistry; | ||||
| import java.io.FileDescriptor; | ||||
| import java.io.PrintWriter; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class FragmentActivity extends ComponentActivity implements ActivityCompat.OnRequestPermissionsResultCallback, ActivityCompat.RequestPermissionsRequestCodeValidator { | ||||
|     static final String FRAGMENTS_TAG = "android:support:fragments"; | ||||
|     boolean mCreated; | ||||
|     final LifecycleRegistry mFragmentLifecycleRegistry; | ||||
|     final FragmentController mFragments; | ||||
|     boolean mResumed; | ||||
|     boolean mStopped; | ||||
|  | ||||
|     @Deprecated | ||||
|     public void onAttachFragment(Fragment fragment) { | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator | ||||
|     @Deprecated | ||||
|     public final void validateRequestPermissionsRequestCode(int i) { | ||||
|     } | ||||
|  | ||||
|     public FragmentActivity() { | ||||
|         this.mFragments = FragmentController.createController(new HostCallbacks()); | ||||
|         this.mFragmentLifecycleRegistry = new LifecycleRegistry(this); | ||||
|         this.mStopped = true; | ||||
|         init(); | ||||
|     } | ||||
|  | ||||
|     public FragmentActivity(int i) { | ||||
|         super(i); | ||||
|         this.mFragments = FragmentController.createController(new HostCallbacks()); | ||||
|         this.mFragmentLifecycleRegistry = new LifecycleRegistry(this); | ||||
|         this.mStopped = true; | ||||
|         init(); | ||||
|     } | ||||
|  | ||||
|     private void init() { | ||||
|         getSavedStateRegistry().registerSavedStateProvider(FRAGMENTS_TAG, new SavedStateRegistry.SavedStateProvider() { // from class: androidx.fragment.app.FragmentActivity.1 | ||||
|             @Override // androidx.savedstate.SavedStateRegistry.SavedStateProvider | ||||
|             public Bundle saveState() { | ||||
|                 Bundle bundle = new Bundle(); | ||||
|                 FragmentActivity.this.markFragmentsCreated(); | ||||
|                 FragmentActivity.this.mFragmentLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP); | ||||
|                 Parcelable saveAllState = FragmentActivity.this.mFragments.saveAllState(); | ||||
|                 if (saveAllState != null) { | ||||
|                     bundle.putParcelable(FragmentActivity.FRAGMENTS_TAG, saveAllState); | ||||
|                 } | ||||
|                 return bundle; | ||||
|             } | ||||
|         }); | ||||
|         addOnContextAvailableListener(new OnContextAvailableListener() { // from class: androidx.fragment.app.FragmentActivity.2 | ||||
|             @Override // androidx.activity.contextaware.OnContextAvailableListener | ||||
|             public void onContextAvailable(Context context) { | ||||
|                 FragmentActivity.this.mFragments.attachHost(null); | ||||
|                 Bundle consumeRestoredStateForKey = FragmentActivity.this.getSavedStateRegistry().consumeRestoredStateForKey(FragmentActivity.FRAGMENTS_TAG); | ||||
|                 if (consumeRestoredStateForKey != null) { | ||||
|                     FragmentActivity.this.mFragments.restoreSaveState(consumeRestoredStateForKey.getParcelable(FragmentActivity.FRAGMENTS_TAG)); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity | ||||
|     protected void onActivityResult(int i, int i2, Intent intent) { | ||||
|         this.mFragments.noteStateNotSaved(); | ||||
|         super.onActivityResult(i, i2, intent); | ||||
|     } | ||||
|  | ||||
|     public void supportFinishAfterTransition() { | ||||
|         ActivityCompat.finishAfterTransition(this); | ||||
|     } | ||||
|  | ||||
|     public void setEnterSharedElementCallback(SharedElementCallback sharedElementCallback) { | ||||
|         ActivityCompat.setEnterSharedElementCallback(this, sharedElementCallback); | ||||
|     } | ||||
|  | ||||
|     public void setExitSharedElementCallback(SharedElementCallback sharedElementCallback) { | ||||
|         ActivityCompat.setExitSharedElementCallback(this, sharedElementCallback); | ||||
|     } | ||||
|  | ||||
|     public void supportPostponeEnterTransition() { | ||||
|         ActivityCompat.postponeEnterTransition(this); | ||||
|     } | ||||
|  | ||||
|     public void supportStartPostponedEnterTransition() { | ||||
|         ActivityCompat.startPostponedEnterTransition(this); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity | ||||
|     public void onMultiWindowModeChanged(boolean z) { | ||||
|         this.mFragments.dispatchMultiWindowModeChanged(z); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity | ||||
|     public void onPictureInPictureModeChanged(boolean z) { | ||||
|         this.mFragments.dispatchPictureInPictureModeChanged(z); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity, android.content.ComponentCallbacks | ||||
|     public void onConfigurationChanged(Configuration configuration) { | ||||
|         this.mFragments.noteStateNotSaved(); | ||||
|         super.onConfigurationChanged(configuration); | ||||
|         this.mFragments.dispatchConfigurationChanged(configuration); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, androidx.core.app.ComponentActivity, android.app.Activity | ||||
|     protected void onCreate(Bundle bundle) { | ||||
|         super.onCreate(bundle); | ||||
|         this.mFragmentLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE); | ||||
|         this.mFragments.dispatchCreate(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity, android.view.Window.Callback | ||||
|     public boolean onCreatePanelMenu(int i, Menu menu) { | ||||
|         if (i == 0) { | ||||
|             return super.onCreatePanelMenu(i, menu) | this.mFragments.dispatchCreateOptionsMenu(menu, getMenuInflater()); | ||||
|         } | ||||
|         return super.onCreatePanelMenu(i, menu); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity, android.view.LayoutInflater.Factory2 | ||||
|     public View onCreateView(View view, String str, Context context, AttributeSet attributeSet) { | ||||
|         View dispatchFragmentsOnCreateView = dispatchFragmentsOnCreateView(view, str, context, attributeSet); | ||||
|         return dispatchFragmentsOnCreateView == null ? super.onCreateView(view, str, context, attributeSet) : dispatchFragmentsOnCreateView; | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity, android.view.LayoutInflater.Factory | ||||
|     public View onCreateView(String str, Context context, AttributeSet attributeSet) { | ||||
|         View dispatchFragmentsOnCreateView = dispatchFragmentsOnCreateView(null, str, context, attributeSet); | ||||
|         return dispatchFragmentsOnCreateView == null ? super.onCreateView(str, context, attributeSet) : dispatchFragmentsOnCreateView; | ||||
|     } | ||||
|  | ||||
|     final View dispatchFragmentsOnCreateView(View view, String str, Context context, AttributeSet attributeSet) { | ||||
|         return this.mFragments.onCreateView(view, str, context, attributeSet); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     protected void onDestroy() { | ||||
|         super.onDestroy(); | ||||
|         this.mFragments.dispatchDestroy(); | ||||
|         this.mFragmentLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity, android.content.ComponentCallbacks | ||||
|     public void onLowMemory() { | ||||
|         super.onLowMemory(); | ||||
|         this.mFragments.dispatchLowMemory(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity, android.view.Window.Callback | ||||
|     public boolean onMenuItemSelected(int i, MenuItem menuItem) { | ||||
|         if (super.onMenuItemSelected(i, menuItem)) { | ||||
|             return true; | ||||
|         } | ||||
|         if (i == 0) { | ||||
|             return this.mFragments.dispatchOptionsItemSelected(menuItem); | ||||
|         } | ||||
|         if (i != 6) { | ||||
|             return false; | ||||
|         } | ||||
|         return this.mFragments.dispatchContextItemSelected(menuItem); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity, android.view.Window.Callback | ||||
|     public void onPanelClosed(int i, Menu menu) { | ||||
|         if (i == 0) { | ||||
|             this.mFragments.dispatchOptionsMenuClosed(menu); | ||||
|         } | ||||
|         super.onPanelClosed(i, menu); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     protected void onPause() { | ||||
|         super.onPause(); | ||||
|         this.mResumed = false; | ||||
|         this.mFragments.dispatchPause(); | ||||
|         this.mFragmentLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity | ||||
|     protected void onNewIntent(Intent intent) { | ||||
|         this.mFragments.noteStateNotSaved(); | ||||
|         super.onNewIntent(intent); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     public void onStateNotSaved() { | ||||
|         this.mFragments.noteStateNotSaved(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     protected void onResume() { | ||||
|         this.mFragments.noteStateNotSaved(); | ||||
|         super.onResume(); | ||||
|         this.mResumed = true; | ||||
|         this.mFragments.execPendingActions(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     protected void onPostResume() { | ||||
|         super.onPostResume(); | ||||
|         onResumeFragments(); | ||||
|     } | ||||
|  | ||||
|     protected void onResumeFragments() { | ||||
|         this.mFragmentLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_RESUME); | ||||
|         this.mFragments.dispatchResume(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity, android.view.Window.Callback | ||||
|     public boolean onPreparePanel(int i, View view, Menu menu) { | ||||
|         if (i == 0) { | ||||
|             return onPrepareOptionsPanel(view, menu) | this.mFragments.dispatchPrepareOptionsMenu(menu); | ||||
|         } | ||||
|         return super.onPreparePanel(i, view, menu); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     protected boolean onPrepareOptionsPanel(View view, Menu menu) { | ||||
|         return super.onPreparePanel(0, view, menu); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     protected void onStart() { | ||||
|         this.mFragments.noteStateNotSaved(); | ||||
|         super.onStart(); | ||||
|         this.mStopped = false; | ||||
|         if (!this.mCreated) { | ||||
|             this.mCreated = true; | ||||
|             this.mFragments.dispatchActivityCreated(); | ||||
|         } | ||||
|         this.mFragments.execPendingActions(); | ||||
|         this.mFragmentLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START); | ||||
|         this.mFragments.dispatchStart(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     protected void onStop() { | ||||
|         super.onStop(); | ||||
|         this.mStopped = true; | ||||
|         markFragmentsCreated(); | ||||
|         this.mFragments.dispatchStop(); | ||||
|         this.mFragmentLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void supportInvalidateOptionsMenu() { | ||||
|         invalidateOptionsMenu(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.app.Activity | ||||
|     public void dump(String str, FileDescriptor fileDescriptor, PrintWriter printWriter, String[] strArr) { | ||||
|         super.dump(str, fileDescriptor, printWriter, strArr); | ||||
|         printWriter.print(str); | ||||
|         printWriter.print("Local FragmentActivity "); | ||||
|         printWriter.print(Integer.toHexString(System.identityHashCode(this))); | ||||
|         printWriter.println(" State:"); | ||||
|         String str2 = str + "  "; | ||||
|         printWriter.print(str2); | ||||
|         printWriter.print("mCreated="); | ||||
|         printWriter.print(this.mCreated); | ||||
|         printWriter.print(" mResumed="); | ||||
|         printWriter.print(this.mResumed); | ||||
|         printWriter.print(" mStopped="); | ||||
|         printWriter.print(this.mStopped); | ||||
|         if (getApplication() != null) { | ||||
|             LoaderManager.getInstance(this).dump(str2, fileDescriptor, printWriter, strArr); | ||||
|         } | ||||
|         this.mFragments.getSupportFragmentManager().dump(str, fileDescriptor, printWriter, strArr); | ||||
|     } | ||||
|  | ||||
|     public FragmentManager getSupportFragmentManager() { | ||||
|         return this.mFragments.getSupportFragmentManager(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public LoaderManager getSupportLoaderManager() { | ||||
|         return LoaderManager.getInstance(this); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.activity.ComponentActivity, android.app.Activity | ||||
|     public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) { | ||||
|         this.mFragments.noteStateNotSaved(); | ||||
|         super.onRequestPermissionsResult(i, strArr, iArr); | ||||
|     } | ||||
|  | ||||
|     public void startActivityFromFragment(Fragment fragment, Intent intent, int i) { | ||||
|         startActivityFromFragment(fragment, intent, i, (Bundle) null); | ||||
|     } | ||||
|  | ||||
|     public void startActivityFromFragment(Fragment fragment, Intent intent, int i, Bundle bundle) { | ||||
|         if (i == -1) { | ||||
|             ActivityCompat.startActivityForResult(this, intent, -1, bundle); | ||||
|         } else { | ||||
|             fragment.startActivityForResult(intent, i, bundle); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void startIntentSenderFromFragment(Fragment fragment, IntentSender intentSender, int i, Intent intent, int i2, int i3, int i4, Bundle bundle) throws IntentSender.SendIntentException { | ||||
|         if (i == -1) { | ||||
|             ActivityCompat.startIntentSenderForResult(this, intentSender, i, intent, i2, i3, i4, bundle); | ||||
|         } else { | ||||
|             fragment.startIntentSenderForResult(intentSender, i, intent, i2, i3, i4, bundle); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     class HostCallbacks extends FragmentHostCallback<FragmentActivity> implements ViewModelStoreOwner, OnBackPressedDispatcherOwner, ActivityResultRegistryOwner, FragmentOnAttachListener { | ||||
|         /* JADX WARN: Can't rename method to resolve collision */ | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public FragmentActivity onGetHost() { | ||||
|             return FragmentActivity.this; | ||||
|         } | ||||
|  | ||||
|         public HostCallbacks() { | ||||
|             super(FragmentActivity.this); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.lifecycle.LifecycleOwner | ||||
|         public Lifecycle getLifecycle() { | ||||
|             return FragmentActivity.this.mFragmentLifecycleRegistry; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.lifecycle.ViewModelStoreOwner | ||||
|         public ViewModelStore getViewModelStore() { | ||||
|             return FragmentActivity.this.getViewModelStore(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.activity.OnBackPressedDispatcherOwner | ||||
|         public OnBackPressedDispatcher getOnBackPressedDispatcher() { | ||||
|             return FragmentActivity.this.getOnBackPressedDispatcher(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public void onDump(String str, FileDescriptor fileDescriptor, PrintWriter printWriter, String[] strArr) { | ||||
|             FragmentActivity.this.dump(str, fileDescriptor, printWriter, strArr); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public boolean onShouldSaveFragmentState(Fragment fragment) { | ||||
|             return !FragmentActivity.this.isFinishing(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public LayoutInflater onGetLayoutInflater() { | ||||
|             return FragmentActivity.this.getLayoutInflater().cloneInContext(FragmentActivity.this); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public void onSupportInvalidateOptionsMenu() { | ||||
|             FragmentActivity.this.supportInvalidateOptionsMenu(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public boolean onShouldShowRequestPermissionRationale(String str) { | ||||
|             return ActivityCompat.shouldShowRequestPermissionRationale(FragmentActivity.this, str); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public boolean onHasWindowAnimations() { | ||||
|             return FragmentActivity.this.getWindow() != null; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback | ||||
|         public int onGetWindowAnimations() { | ||||
|             Window window = FragmentActivity.this.getWindow(); | ||||
|             if (window == null) { | ||||
|                 return 0; | ||||
|             } | ||||
|             return window.getAttributes().windowAnimations; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentOnAttachListener | ||||
|         public void onAttachFragment(FragmentManager fragmentManager, Fragment fragment) { | ||||
|             FragmentActivity.this.onAttachFragment(fragment); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback, androidx.fragment.app.FragmentContainer | ||||
|         public View onFindViewById(int i) { | ||||
|             return FragmentActivity.this.findViewById(i); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.fragment.app.FragmentHostCallback, androidx.fragment.app.FragmentContainer | ||||
|         public boolean onHasView() { | ||||
|             Window window = FragmentActivity.this.getWindow(); | ||||
|             return (window == null || window.peekDecorView() == null) ? false : true; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.activity.result.ActivityResultRegistryOwner | ||||
|         public ActivityResultRegistry getActivityResultRegistry() { | ||||
|             return FragmentActivity.this.getActivityResultRegistry(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void markFragmentsCreated() { | ||||
|         while (markState(getSupportFragmentManager(), Lifecycle.State.CREATED)) { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static boolean markState(FragmentManager fragmentManager, Lifecycle.State state) { | ||||
|         boolean z = false; | ||||
|         for (Fragment fragment : fragmentManager.getFragments()) { | ||||
|             if (fragment != null) { | ||||
|                 if (fragment.getHost() != null) { | ||||
|                     z |= markState(fragment.getChildFragmentManager(), state); | ||||
|                 } | ||||
|                 if (fragment.mViewLifecycleOwner != null && fragment.mViewLifecycleOwner.getLifecycle().getState().isAtLeast(Lifecycle.State.STARTED)) { | ||||
|                     fragment.mViewLifecycleOwner.setCurrentState(state); | ||||
|                     z = true; | ||||
|                 } | ||||
|                 if (fragment.mLifecycleRegistry.getState().isAtLeast(Lifecycle.State.STARTED)) { | ||||
|                     fragment.mLifecycleRegistry.setCurrentState(state); | ||||
|                     z = true; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return z; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user