package androidx.fragment.app; import android.os.Bundle; import android.os.Parcelable; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.lifecycle.Lifecycle; import androidx.viewpager.widget.PagerAdapter; import c.d.b.a.a; import java.util.ArrayList; @Deprecated public abstract class FragmentStatePagerAdapter 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 = "FragmentStatePagerAdapt"; private final int mBehavior; private FragmentTransaction mCurTransaction; private Fragment mCurrentPrimaryItem; private boolean mExecutingFinishUpdate; private final FragmentManager mFragmentManager; private ArrayList mFragments; private ArrayList mSavedState; @Deprecated public FragmentStatePagerAdapter(@NonNull FragmentManager fragmentManager) { this(fragmentManager, 0); } public FragmentStatePagerAdapter(@NonNull FragmentManager fragmentManager, int i) { this.mCurTransaction = null; this.mSavedState = new ArrayList<>(); this.mFragments = new ArrayList<>(); this.mCurrentPrimaryItem = null; this.mFragmentManager = fragmentManager; this.mBehavior = i; } @Override // androidx.viewpager.widget.PagerAdapter public void destroyItem(@NonNull ViewGroup viewGroup, int i, @NonNull Object obj) { Fragment fragment = (Fragment) obj; if (this.mCurTransaction == null) { this.mCurTransaction = this.mFragmentManager.beginTransaction(); } while (this.mSavedState.size() <= i) { this.mSavedState.add(null); } this.mSavedState.set(i, fragment.isAdded() ? this.mFragmentManager.saveFragmentInstanceState(fragment) : null); this.mFragments.set(i, null); this.mCurTransaction.remove(fragment); if (fragment.equals(this.mCurrentPrimaryItem)) { this.mCurrentPrimaryItem = null; } } /* JADX INFO: finally extract failed */ @Override // androidx.viewpager.widget.PagerAdapter public void finishUpdate(@NonNull ViewGroup viewGroup) { FragmentTransaction fragmentTransaction = this.mCurTransaction; if (fragmentTransaction != null) { if (!this.mExecutingFinishUpdate) { try { this.mExecutingFinishUpdate = true; fragmentTransaction.commitNowAllowingStateLoss(); this.mExecutingFinishUpdate = false; } catch (Throwable th) { this.mExecutingFinishUpdate = false; throw th; } } this.mCurTransaction = null; } } @NonNull public abstract Fragment getItem(int i); @Override // androidx.viewpager.widget.PagerAdapter @NonNull public Object instantiateItem(@NonNull ViewGroup viewGroup, int i) { Fragment.SavedState savedState; Fragment fragment; if (this.mFragments.size() > i && (fragment = this.mFragments.get(i)) != null) { return fragment; } if (this.mCurTransaction == null) { this.mCurTransaction = this.mFragmentManager.beginTransaction(); } Fragment item = getItem(i); if (this.mSavedState.size() > i && (savedState = this.mSavedState.get(i)) != null) { item.setInitialSavedState(savedState); } while (this.mFragments.size() <= i) { this.mFragments.add(null); } item.setMenuVisibility(false); if (this.mBehavior == 0) { item.setUserVisibleHint(false); } this.mFragments.set(i, item); this.mCurTransaction.add(viewGroup.getId(), item); if (this.mBehavior == 1) { this.mCurTransaction.setMaxLifecycle(item, Lifecycle.State.STARTED); } return item; } @Override // androidx.viewpager.widget.PagerAdapter public boolean isViewFromObject(@NonNull View view, @NonNull Object obj) { return ((Fragment) obj).getView() == view; } @Override // androidx.viewpager.widget.PagerAdapter public void restoreState(@Nullable Parcelable parcelable, @Nullable ClassLoader classLoader) { if (parcelable != null) { Bundle bundle = (Bundle) parcelable; bundle.setClassLoader(classLoader); Parcelable[] parcelableArray = bundle.getParcelableArray("states"); this.mSavedState.clear(); this.mFragments.clear(); if (parcelableArray != null) { for (Parcelable parcelable2 : parcelableArray) { this.mSavedState.add((Fragment.SavedState) parcelable2); } } for (String str : bundle.keySet()) { if (str.startsWith("f")) { int parseInt = Integer.parseInt(str.substring(1)); Fragment fragment = this.mFragmentManager.getFragment(bundle, str); if (fragment != null) { while (this.mFragments.size() <= parseInt) { this.mFragments.add(null); } fragment.setMenuVisibility(false); this.mFragments.set(parseInt, fragment); } else { a.h0("Bad fragment at key ", str, "FragmentStatePagerAdapt"); } } } } } @Override // androidx.viewpager.widget.PagerAdapter @Nullable public Parcelable saveState() { Bundle bundle; if (this.mSavedState.size() > 0) { bundle = new Bundle(); Fragment.SavedState[] savedStateArr = new Fragment.SavedState[this.mSavedState.size()]; this.mSavedState.toArray(savedStateArr); bundle.putParcelableArray("states", savedStateArr); } else { bundle = null; } for (int i = 0; i < this.mFragments.size(); i++) { Fragment fragment = this.mFragments.get(i); if (fragment != null && fragment.isAdded()) { if (bundle == null) { bundle = new Bundle(); } this.mFragmentManager.putFragment(bundle, a.k("f", i), fragment); } } return bundle; } @Override // androidx.viewpager.widget.PagerAdapter public void setPrimaryItem(@NonNull ViewGroup viewGroup, int i, @NonNull 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 startUpdate(@NonNull ViewGroup viewGroup) { if (viewGroup.getId() == -1) { throw new IllegalStateException("ViewPager with adapter " + this + " requires a view id"); } } }