149 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.fragment.app;
 | |
| 
 | |
| import android.os.Parcelable;
 | |
| import android.view.View;
 | |
| import android.view.ViewGroup;
 | |
| import androidx.lifecycle.Lifecycle;
 | |
| import androidx.viewpager.widget.PagerAdapter;
 | |
| 
 | |
| @Deprecated
 | |
| /* loaded from: classes.dex */
 | |
| public abstract class FragmentPagerAdapter extends PagerAdapter {
 | |
|     public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1;
 | |
| 
 | |
|     @Deprecated
 | |
|     public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0;
 | |
|     private static final boolean DEBUG = false;
 | |
|     private static final String TAG = "FragmentPagerAdapter";
 | |
|     private final int mBehavior;
 | |
|     private FragmentTransaction mCurTransaction;
 | |
|     private Fragment mCurrentPrimaryItem;
 | |
|     private boolean mExecutingFinishUpdate;
 | |
|     private final FragmentManager mFragmentManager;
 | |
| 
 | |
|     public abstract Fragment getItem(int i);
 | |
| 
 | |
|     public long getItemId(int i) {
 | |
|         return i;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public void restoreState(Parcelable parcelable, ClassLoader classLoader) {
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public Parcelable saveState() {
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     @Deprecated
 | |
|     public FragmentPagerAdapter(FragmentManager fragmentManager) {
 | |
|         this(fragmentManager, 0);
 | |
|     }
 | |
| 
 | |
|     public FragmentPagerAdapter(FragmentManager fragmentManager, int i) {
 | |
|         this.mCurTransaction = null;
 | |
|         this.mCurrentPrimaryItem = null;
 | |
|         this.mFragmentManager = fragmentManager;
 | |
|         this.mBehavior = i;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public void startUpdate(ViewGroup viewGroup) {
 | |
|         if (viewGroup.getId() != -1) {
 | |
|             return;
 | |
|         }
 | |
|         throw new IllegalStateException("ViewPager with adapter " + this + " requires a view id");
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public Object instantiateItem(ViewGroup viewGroup, int i) {
 | |
|         if (this.mCurTransaction == null) {
 | |
|             this.mCurTransaction = this.mFragmentManager.beginTransaction();
 | |
|         }
 | |
|         long itemId = getItemId(i);
 | |
|         Fragment findFragmentByTag = this.mFragmentManager.findFragmentByTag(makeFragmentName(viewGroup.getId(), itemId));
 | |
|         if (findFragmentByTag != null) {
 | |
|             this.mCurTransaction.attach(findFragmentByTag);
 | |
|         } else {
 | |
|             findFragmentByTag = getItem(i);
 | |
|             this.mCurTransaction.add(viewGroup.getId(), findFragmentByTag, makeFragmentName(viewGroup.getId(), itemId));
 | |
|         }
 | |
|         if (findFragmentByTag != this.mCurrentPrimaryItem) {
 | |
|             findFragmentByTag.setMenuVisibility(false);
 | |
|             if (this.mBehavior == 1) {
 | |
|                 this.mCurTransaction.setMaxLifecycle(findFragmentByTag, Lifecycle.State.STARTED);
 | |
|             } else {
 | |
|                 findFragmentByTag.setUserVisibleHint(false);
 | |
|             }
 | |
|         }
 | |
|         return findFragmentByTag;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public void destroyItem(ViewGroup viewGroup, int i, Object obj) {
 | |
|         Fragment fragment = (Fragment) obj;
 | |
|         if (this.mCurTransaction == null) {
 | |
|             this.mCurTransaction = this.mFragmentManager.beginTransaction();
 | |
|         }
 | |
|         this.mCurTransaction.detach(fragment);
 | |
|         if (fragment.equals(this.mCurrentPrimaryItem)) {
 | |
|             this.mCurrentPrimaryItem = null;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public void setPrimaryItem(ViewGroup viewGroup, int i, Object obj) {
 | |
|         Fragment fragment = (Fragment) obj;
 | |
|         Fragment fragment2 = this.mCurrentPrimaryItem;
 | |
|         if (fragment != fragment2) {
 | |
|             if (fragment2 != null) {
 | |
|                 fragment2.setMenuVisibility(false);
 | |
|                 if (this.mBehavior == 1) {
 | |
|                     if (this.mCurTransaction == null) {
 | |
|                         this.mCurTransaction = this.mFragmentManager.beginTransaction();
 | |
|                     }
 | |
|                     this.mCurTransaction.setMaxLifecycle(this.mCurrentPrimaryItem, Lifecycle.State.STARTED);
 | |
|                 } else {
 | |
|                     this.mCurrentPrimaryItem.setUserVisibleHint(false);
 | |
|                 }
 | |
|             }
 | |
|             fragment.setMenuVisibility(true);
 | |
|             if (this.mBehavior == 1) {
 | |
|                 if (this.mCurTransaction == null) {
 | |
|                     this.mCurTransaction = this.mFragmentManager.beginTransaction();
 | |
|                 }
 | |
|                 this.mCurTransaction.setMaxLifecycle(fragment, Lifecycle.State.RESUMED);
 | |
|             } else {
 | |
|                 fragment.setUserVisibleHint(true);
 | |
|             }
 | |
|             this.mCurrentPrimaryItem = fragment;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public void finishUpdate(ViewGroup viewGroup) {
 | |
|         FragmentTransaction fragmentTransaction = this.mCurTransaction;
 | |
|         if (fragmentTransaction != null) {
 | |
|             if (!this.mExecutingFinishUpdate) {
 | |
|                 try {
 | |
|                     this.mExecutingFinishUpdate = true;
 | |
|                     fragmentTransaction.commitNowAllowingStateLoss();
 | |
|                 } finally {
 | |
|                     this.mExecutingFinishUpdate = false;
 | |
|                 }
 | |
|             }
 | |
|             this.mCurTransaction = null;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.viewpager.widget.PagerAdapter
 | |
|     public boolean isViewFromObject(View view, Object obj) {
 | |
|         return ((Fragment) obj).getView() == view;
 | |
|     }
 | |
| 
 | |
|     private static String makeFragmentName(int i, long j) {
 | |
|         return "android:switcher:" + i + ":" + j;
 | |
|     }
 | |
| }
 |