mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
371 lines
14 KiB
Java
371 lines
14 KiB
Java
package androidx.fragment.app;
|
|
|
|
import android.os.Bundle;
|
|
import android.util.Log;
|
|
import android.view.ViewGroup;
|
|
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;
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
/* loaded from: classes2.dex */
|
|
public class FragmentStore {
|
|
private static final String TAG = "FragmentManager";
|
|
private FragmentManagerViewModel mNonConfig;
|
|
private final ArrayList<Fragment> mAdded = new ArrayList<>();
|
|
private final HashMap<String, FragmentStateManager> mActive = new HashMap<>();
|
|
private final HashMap<String, Bundle> mSavedState = new HashMap<>();
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public HashMap<String, Bundle> getAllSavedState() {
|
|
return this.mSavedState;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public FragmentManagerViewModel getNonConfig() {
|
|
return this.mNonConfig;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setNonConfig(FragmentManagerViewModel fragmentManagerViewModel) {
|
|
this.mNonConfig = fragmentManagerViewModel;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void resetActiveFragments() {
|
|
this.mActive.clear();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void restoreAddedFragments(List<String> 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)) {
|
|
Log.v("FragmentManager", "restoreSaveState: added (" + str + "): " + findActiveFragment);
|
|
}
|
|
addFragment(findActiveFragment);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void makeActive(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)) {
|
|
Log.v("FragmentManager", "Added fragment to active set " + fragment);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void addFragment(Fragment fragment) {
|
|
if (this.mAdded.contains(fragment)) {
|
|
throw new IllegalStateException("Fragment already added: " + fragment);
|
|
}
|
|
synchronized (this.mAdded) {
|
|
this.mAdded.add(fragment);
|
|
}
|
|
fragment.mAdded = true;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void dispatchStateChange(int i) {
|
|
for (FragmentStateManager fragmentStateManager : this.mActive.values()) {
|
|
if (fragmentStateManager != null) {
|
|
fragmentStateManager.setFragmentManagerState(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void moveToExpectedState() {
|
|
Iterator<Fragment> 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)) {
|
|
setSavedState(fragment.mWho, fragmentStateManager2.saveState());
|
|
}
|
|
makeInactive(fragmentStateManager2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void removeFragment(Fragment fragment) {
|
|
synchronized (this.mAdded) {
|
|
this.mAdded.remove(fragment);
|
|
}
|
|
fragment.mAdded = false;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void makeInactive(FragmentStateManager fragmentStateManager) {
|
|
Fragment fragment = fragmentStateManager.getFragment();
|
|
if (fragment.mRetainInstance) {
|
|
this.mNonConfig.removeRetainedFragment(fragment);
|
|
}
|
|
if (this.mActive.get(fragment.mWho) == fragmentStateManager && this.mActive.put(fragment.mWho, null) != null && FragmentManager.isLoggingEnabled(2)) {
|
|
Log.v("FragmentManager", "Removed fragment from active set " + fragment);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void burpActive() {
|
|
this.mActive.values().removeAll(Collections.singleton(null));
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Bundle getSavedState(String str) {
|
|
return this.mSavedState.get(str);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Bundle setSavedState(String str, Bundle bundle) {
|
|
if (bundle != null) {
|
|
return this.mSavedState.put(str, bundle);
|
|
}
|
|
return this.mSavedState.remove(str);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void restoreSaveState(HashMap<String, Bundle> hashMap) {
|
|
this.mSavedState.clear();
|
|
this.mSavedState.putAll(hashMap);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ArrayList<String> saveActiveFragments() {
|
|
ArrayList<String> arrayList = new ArrayList<>(this.mActive.size());
|
|
for (FragmentStateManager fragmentStateManager : this.mActive.values()) {
|
|
if (fragmentStateManager != null) {
|
|
Fragment fragment = fragmentStateManager.getFragment();
|
|
setSavedState(fragment.mWho, fragmentStateManager.saveState());
|
|
arrayList.add(fragment.mWho);
|
|
if (FragmentManager.isLoggingEnabled(2)) {
|
|
Log.v("FragmentManager", "Saved state of " + fragment + ": " + fragment.mSavedFragmentState);
|
|
}
|
|
}
|
|
}
|
|
return arrayList;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ArrayList<String> saveAddedFragments() {
|
|
synchronized (this.mAdded) {
|
|
if (this.mAdded.isEmpty()) {
|
|
return null;
|
|
}
|
|
ArrayList<String> arrayList = new ArrayList<>(this.mAdded.size());
|
|
Iterator<Fragment> it = this.mAdded.iterator();
|
|
while (it.hasNext()) {
|
|
Fragment next = it.next();
|
|
arrayList.add(next.mWho);
|
|
if (FragmentManager.isLoggingEnabled(2)) {
|
|
Log.v("FragmentManager", "saveAllState: adding fragment (" + next.mWho + "): " + next);
|
|
}
|
|
}
|
|
return arrayList;
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public List<FragmentStateManager> getActiveFragmentStateManagers() {
|
|
ArrayList arrayList = new ArrayList();
|
|
for (FragmentStateManager fragmentStateManager : this.mActive.values()) {
|
|
if (fragmentStateManager != null) {
|
|
arrayList.add(fragmentStateManager);
|
|
}
|
|
}
|
|
return arrayList;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public List<Fragment> getFragments() {
|
|
ArrayList arrayList;
|
|
if (this.mAdded.isEmpty()) {
|
|
return Collections.emptyList();
|
|
}
|
|
synchronized (this.mAdded) {
|
|
arrayList = new ArrayList(this.mAdded);
|
|
}
|
|
return arrayList;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public List<Fragment> getActiveFragments() {
|
|
ArrayList arrayList = new ArrayList();
|
|
for (FragmentStateManager fragmentStateManager : this.mActive.values()) {
|
|
if (fragmentStateManager != null) {
|
|
arrayList.add(fragmentStateManager.getFragment());
|
|
} else {
|
|
arrayList.add(null);
|
|
}
|
|
}
|
|
return arrayList;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public int getActiveFragmentCount() {
|
|
return this.mActive.size();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Fragment findFragmentById(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;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Fragment findFragmentByTag(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;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public boolean containsActiveFragment(String str) {
|
|
return this.mActive.get(str) != null;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public FragmentStateManager getFragmentStateManager(String str) {
|
|
return this.mActive.get(str);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Fragment findFragmentByWho(String str) {
|
|
Fragment findFragmentByWho;
|
|
for (FragmentStateManager fragmentStateManager : this.mActive.values()) {
|
|
if (fragmentStateManager != null && (findFragmentByWho = fragmentStateManager.getFragment().findFragmentByWho(str)) != null) {
|
|
return findFragmentByWho;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Fragment findActiveFragment(String str) {
|
|
FragmentStateManager fragmentStateManager = this.mActive.get(str);
|
|
if (fragmentStateManager != null) {
|
|
return fragmentStateManager.getFragment();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public int findFragmentIndexInContainer(Fragment fragment) {
|
|
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 && fragment2.mView != null) {
|
|
return viewGroup.indexOfChild(fragment2.mView) + 1;
|
|
}
|
|
}
|
|
while (true) {
|
|
indexOf++;
|
|
if (indexOf >= this.mAdded.size()) {
|
|
return -1;
|
|
}
|
|
Fragment fragment3 = this.mAdded.get(indexOf);
|
|
if (fragment3.mContainer == viewGroup && fragment3.mView != null) {
|
|
return viewGroup.indexOfChild(fragment3.mView);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void dump(String str, FileDescriptor fileDescriptor, PrintWriter printWriter, 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());
|
|
}
|
|
}
|
|
}
|
|
}
|