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