package androidx.fragment.app; import android.view.View; import android.view.ViewGroup; import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; /* loaded from: classes.dex */ class FragmentStore { private static final String TAG = "FragmentManager"; private FragmentManagerViewModel mNonConfig; private final ArrayList mAdded = new ArrayList<>(); private final HashMap mActive = new HashMap<>(); private final HashMap mSavedState = new HashMap<>(); public FragmentManagerViewModel getNonConfig() { return this.mNonConfig; } public void setNonConfig(@NonNull FragmentManagerViewModel fragmentManagerViewModel) { this.mNonConfig = fragmentManagerViewModel; } public void resetActiveFragments() { this.mActive.clear(); } public void restoreAddedFragments(@Nullable List list) { this.mAdded.clear(); if (list != null) { for (String str : list) { Fragment findActiveFragment = findActiveFragment(str); if (findActiveFragment == null) { throw new IllegalStateException("No instantiated fragment for (" + str + ")"); } if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("restoreSaveState: added ("); sb.append(str); sb.append("): "); sb.append(findActiveFragment); } addFragment(findActiveFragment); } } } public void makeActive(@NonNull FragmentStateManager fragmentStateManager) { Fragment fragment = fragmentStateManager.getFragment(); if (containsActiveFragment(fragment.mWho)) { return; } this.mActive.put(fragment.mWho, fragmentStateManager); if (fragment.mRetainInstanceChangedWhileDetached) { if (fragment.mRetainInstance) { this.mNonConfig.addRetainedFragment(fragment); } else { this.mNonConfig.removeRetainedFragment(fragment); } fragment.mRetainInstanceChangedWhileDetached = false; } if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Added fragment to active set "); sb.append(fragment); } } public void addFragment(@NonNull Fragment fragment) { if (this.mAdded.contains(fragment)) { throw new IllegalStateException("Fragment already added: " + fragment); } synchronized (this.mAdded) { this.mAdded.add(fragment); } fragment.mAdded = true; } public void dispatchStateChange(int i) { for (FragmentStateManager fragmentStateManager : this.mActive.values()) { if (fragmentStateManager != null) { fragmentStateManager.setFragmentManagerState(i); } } } public void moveToExpectedState() { Iterator it = this.mAdded.iterator(); while (it.hasNext()) { FragmentStateManager fragmentStateManager = this.mActive.get(it.next().mWho); if (fragmentStateManager != null) { fragmentStateManager.moveToExpectedState(); } } for (FragmentStateManager fragmentStateManager2 : this.mActive.values()) { if (fragmentStateManager2 != null) { fragmentStateManager2.moveToExpectedState(); Fragment fragment = fragmentStateManager2.getFragment(); if (fragment.mRemoving && !fragment.isInBackStack()) { if (fragment.mBeingSaved && !this.mSavedState.containsKey(fragment.mWho)) { fragmentStateManager2.saveState(); } makeInactive(fragmentStateManager2); } } } } public void removeFragment(@NonNull Fragment fragment) { synchronized (this.mAdded) { this.mAdded.remove(fragment); } fragment.mAdded = false; } public void makeInactive(@NonNull FragmentStateManager fragmentStateManager) { Fragment fragment = fragmentStateManager.getFragment(); if (fragment.mRetainInstance) { this.mNonConfig.removeRetainedFragment(fragment); } if (this.mActive.put(fragment.mWho, null) != null && FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Removed fragment from active set "); sb.append(fragment); } } public void burpActive() { this.mActive.values().removeAll(Collections.singleton(null)); } @Nullable public FragmentState getSavedState(@NonNull String str) { return this.mSavedState.get(str); } @Nullable public FragmentState setSavedState(@NonNull String str, @Nullable FragmentState fragmentState) { if (fragmentState != null) { return this.mSavedState.put(str, fragmentState); } return this.mSavedState.remove(str); } public void restoreSaveState(@NonNull ArrayList arrayList) { this.mSavedState.clear(); Iterator it = arrayList.iterator(); while (it.hasNext()) { FragmentState next = it.next(); this.mSavedState.put(next.mWho, next); } } @NonNull public ArrayList getAllSavedState() { return new ArrayList<>(this.mSavedState.values()); } @NonNull public ArrayList saveActiveFragments() { ArrayList arrayList = new ArrayList<>(this.mActive.size()); for (FragmentStateManager fragmentStateManager : this.mActive.values()) { if (fragmentStateManager != null) { Fragment fragment = fragmentStateManager.getFragment(); fragmentStateManager.saveState(); arrayList.add(fragment.mWho); if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("Saved state of "); sb.append(fragment); sb.append(": "); sb.append(fragment.mSavedFragmentState); } } } return arrayList; } @Nullable public ArrayList saveAddedFragments() { synchronized (this.mAdded) { try { if (this.mAdded.isEmpty()) { return null; } ArrayList arrayList = new ArrayList<>(this.mAdded.size()); Iterator it = this.mAdded.iterator(); while (it.hasNext()) { Fragment next = it.next(); arrayList.add(next.mWho); if (FragmentManager.isLoggingEnabled(2)) { StringBuilder sb = new StringBuilder(); sb.append("saveAllState: adding fragment ("); sb.append(next.mWho); sb.append("): "); sb.append(next); } } return arrayList; } catch (Throwable th) { throw th; } } } @NonNull public List getActiveFragmentStateManagers() { ArrayList arrayList = new ArrayList(); for (FragmentStateManager fragmentStateManager : this.mActive.values()) { if (fragmentStateManager != null) { arrayList.add(fragmentStateManager); } } return arrayList; } @NonNull public List getFragments() { ArrayList arrayList; if (this.mAdded.isEmpty()) { return Collections.emptyList(); } synchronized (this.mAdded) { arrayList = new ArrayList(this.mAdded); } return arrayList; } @NonNull public List getActiveFragments() { ArrayList arrayList = new ArrayList(); for (FragmentStateManager fragmentStateManager : this.mActive.values()) { if (fragmentStateManager != null) { arrayList.add(fragmentStateManager.getFragment()); } else { arrayList.add(null); } } return arrayList; } public int getActiveFragmentCount() { return this.mActive.size(); } @Nullable public Fragment findFragmentById(@IdRes int i) { for (int size = this.mAdded.size() - 1; size >= 0; size--) { Fragment fragment = this.mAdded.get(size); if (fragment != null && fragment.mFragmentId == i) { return fragment; } } for (FragmentStateManager fragmentStateManager : this.mActive.values()) { if (fragmentStateManager != null) { Fragment fragment2 = fragmentStateManager.getFragment(); if (fragment2.mFragmentId == i) { return fragment2; } } } return null; } @Nullable public Fragment findFragmentByTag(@Nullable String str) { if (str != null) { for (int size = this.mAdded.size() - 1; size >= 0; size--) { Fragment fragment = this.mAdded.get(size); if (fragment != null && str.equals(fragment.mTag)) { return fragment; } } } if (str == null) { return null; } for (FragmentStateManager fragmentStateManager : this.mActive.values()) { if (fragmentStateManager != null) { Fragment fragment2 = fragmentStateManager.getFragment(); if (str.equals(fragment2.mTag)) { return fragment2; } } } return null; } public boolean containsActiveFragment(@NonNull String str) { return this.mActive.get(str) != null; } @Nullable public FragmentStateManager getFragmentStateManager(@NonNull String str) { return this.mActive.get(str); } @Nullable public Fragment findFragmentByWho(@NonNull String str) { Fragment findFragmentByWho; for (FragmentStateManager fragmentStateManager : this.mActive.values()) { if (fragmentStateManager != null && (findFragmentByWho = fragmentStateManager.getFragment().findFragmentByWho(str)) != null) { return findFragmentByWho; } } return null; } @Nullable public Fragment findActiveFragment(@NonNull String str) { FragmentStateManager fragmentStateManager = this.mActive.get(str); if (fragmentStateManager != null) { return fragmentStateManager.getFragment(); } return null; } public int findFragmentIndexInContainer(@NonNull Fragment fragment) { View view; View view2; ViewGroup viewGroup = fragment.mContainer; if (viewGroup == null) { return -1; } int indexOf = this.mAdded.indexOf(fragment); for (int i = indexOf - 1; i >= 0; i--) { Fragment fragment2 = this.mAdded.get(i); if (fragment2.mContainer == viewGroup && (view2 = fragment2.mView) != null) { return viewGroup.indexOfChild(view2) + 1; } } while (true) { indexOf++; if (indexOf >= this.mAdded.size()) { return -1; } Fragment fragment3 = this.mAdded.get(indexOf); if (fragment3.mContainer == viewGroup && (view = fragment3.mView) != null) { return viewGroup.indexOfChild(view); } } } public void dump(@NonNull String str, @Nullable FileDescriptor fileDescriptor, @NonNull PrintWriter printWriter, @Nullable String[] strArr) { String str2 = str + " "; if (!this.mActive.isEmpty()) { printWriter.print(str); printWriter.println("Active Fragments:"); for (FragmentStateManager fragmentStateManager : this.mActive.values()) { printWriter.print(str); if (fragmentStateManager != null) { Fragment fragment = fragmentStateManager.getFragment(); printWriter.println(fragment); fragment.dump(str2, fileDescriptor, printWriter, strArr); } else { printWriter.println("null"); } } } int size = this.mAdded.size(); if (size > 0) { printWriter.print(str); printWriter.println("Added Fragments:"); for (int i = 0; i < size; i++) { Fragment fragment2 = this.mAdded.get(i); printWriter.print(str); printWriter.print(" #"); printWriter.print(i); printWriter.print(": "); printWriter.println(fragment2.toString()); } } } }