// Decompiled by JEB v0.9.0 alpha
package android.support.v4.app;
import android.util.Log;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
final class BackStackRecord extends FragmentTransaction implements BackStackEntry, Runnable {
final class Op {
Op() {
super();
}
}
static final int OP_ADD = 1;
static final int OP_ATTACH = 7;
static final int OP_DETACH = 6;
static final int OP_HIDE = 4;
static final int OP_NULL = 0;
static final int OP_REMOVE = 3;
static final int OP_REPLACE = 2;
static final int OP_SHOW = 5;
static final String TAG = "BackStackEntry";
boolean mAddToBackStack;
boolean mAllowAddToBackStack;
int mBreadCrumbShortTitleRes;
CharSequence mBreadCrumbShortTitleText;
int mBreadCrumbTitleRes;
CharSequence mBreadCrumbTitleText;
boolean mCommitted;
int mEnterAnim;
int mExitAnim;
Op mHead;
int mIndex;
final FragmentManagerImpl mManager;
String mName;
int mNumOp;
int mPopEnterAnim;
int mPopExitAnim;
Op mTail;
int mTransition;
int mTransitionStyle;
public BackStackRecord(FragmentManagerImpl arg2) {
super();
this.mAllowAddToBackStack = true;
this.mManager = arg2;
}
public FragmentTransaction add(int arg3, Fragment arg4) {
this.doAddOp(arg3, arg4, 0, 1);
return this;
}
public FragmentTransaction add(int arg2, Fragment arg3, String arg4) {
this.doAddOp(arg2, arg3, arg4, 1);
return this;
}
public FragmentTransaction add(Fragment arg3, String arg4) {
this.doAddOp(0, arg3, arg4, 1);
return this;
}
void addOp(Op arg2) {
if(this.mHead == 0) {
this.mTail = arg2;
this.mHead = arg2;
}
else {
arg2.prev = this.mTail;
this.mTail.next = arg2;
this.mTail = arg2;
}
arg2.enterAnim = this.mEnterAnim;
arg2.exitAnim = this.mExitAnim;
arg2.popEnterAnim = this.mPopEnterAnim;
arg2.popExitAnim = this.mPopExitAnim;
++this.mNumOp;
}
public FragmentTransaction addToBackStack(String arg3) {
if(!this.mAllowAddToBackStack) {
throw new IllegalStateException("This FragmentTransaction is not allowed to be added to the back stack.");
}
this.mAddToBackStack = true;
this.mName = arg3;
return this;
}
public FragmentTransaction attach(Fragment arg3) {
Op v0 = new Op();
v0.cmd = 7;
v0.fragment = arg3;
this.addOp(v0);
return this;
}
void bumpBackStackNesting(int arg7) {
if(this.mAddToBackStack) {
if(FragmentManagerImpl.DEBUG != false) {
StringBuilder v4 = new StringBuilder();
v4 = v4.append("Bump nesting in ");
v4 = v4.append(((Object)this));
v4 = v4.append(" by ");
v4 = v4.append(arg7);
String v4_1 = v4.toString();
Log.v("BackStackEntry", v4_1);
}
Op v1 = this.mHead;
while(v1 != 0) {
if(v1.fragment != 0) {
v1.fragment.mBackStackNesting += arg7;
if(FragmentManagerImpl.DEBUG != false) {
v4 = new StringBuilder();
v4 = v4.append("Bump nesting of ");
v4 = v4.append(v1.fragment);
v4 = v4.append(" to ");
v4 = v4.append(v1.fragment.mBackStackNesting);
v4_1 = v4.toString();
Log.v("BackStackEntry", v4_1);
}
}
if(v1.removed != 0) {
int v0 = v1.removed.size() - 1;
while(v0 >= 0) {
Object v2 = v1.removed.get(v0);
((Fragment)v2).mBackStackNesting += arg7;
if(FragmentManagerImpl.DEBUG != false) {
v4 = new StringBuilder();
v4 = v4.append("Bump nesting of ");
v4 = v4.append(v2);
v4 = v4.append(" to ");
v4 = v4.append(((Fragment)v2).mBackStackNesting);
v4_1 = v4.toString();
Log.v("BackStackEntry", v4_1);
}
--v0;
}
}
v1 = v1.next;
}
}
}
public int commit() {
return this.commitInternal(false);
}
public int commitAllowingStateLoss() {
return this.commitInternal(true);
}
int commitInternal(boolean arg4) {
if(this.mCommitted) {
throw new IllegalStateException("commit already called");
}
if(FragmentManagerImpl.DEBUG) {
StringBuilder v1 = new StringBuilder();
v1 = v1.append("Commit: ");
v1 = v1.append(((Object)this));
String v1_1 = v1.toString();
Log.v("BackStackEntry", v1_1);
}
this.mCommitted = true;
if(this.mAddToBackStack) {
this.mIndex = this.mManager.allocBackStackIndex(this);
}
else {
this.mIndex = 1;
}
this.mManager.enqueueAction(((Runnable)this), arg4);
return this.mIndex;
}
public FragmentTransaction detach(Fragment arg3) {
Op v0 = new Op();
v0.cmd = 6;
v0.fragment = arg3;
this.addOp(v0);
return this;
}
public FragmentTransaction disallowAddToBackStack() {
if(this.mAddToBackStack) {
throw new IllegalStateException("This transaction is already being added to the back stack");
}
this.mAllowAddToBackStack = false;
return this;
}
private void doAddOp(int arg5, Fragment arg6, String arg7, int arg8) {
arg6.mFragmentManager = this.mManager;
if(arg7 != 0) {
if(arg6.mTag != 0 && arg7.equals(arg6.mTag) == false) {
StringBuilder v2 = new StringBuilder();
v2 = v2.append("Can\'t change tag of fragment ");
v2 = v2.append(((Object)arg6));
v2 = v2.append(": was ");
v2 = v2.append(arg6.mTag);
v2 = v2.append(" now ");
v2 = v2.append(arg7);
String v2_1 = v2.toString();
throw new IllegalStateException(v2_1);
}
arg6.mTag = arg7;
}
if(arg5 != 0) {
if(arg6.mFragmentId != 0 && arg6.mFragmentId != arg5) {
v2 = new StringBuilder();
v2 = v2.append("Can\'t change container ID of fragment ");
v2 = v2.append(((Object)arg6));
v2 = v2.append(": was ");
v2 = v2.append(arg6.mFragmentId);
v2 = v2.append(" now ");
v2 = v2.append(arg5);
v2_1 = v2.toString();
throw new IllegalStateException(v2_1);
}
arg6.mFragmentId = arg5;
arg6.mContainerId = arg5;
}
Op v0 = new Op();
v0.cmd = arg8;
v0.fragment = arg6;
this.addOp(v0);
}
public void dump(String arg7, FileDescriptor arg8, PrintWriter arg9, String[] arg10) {
arg9.print(arg7);
arg9.print("mName=");
arg9.print(this.mName);
arg9.print(" mIndex=");
arg9.print(this.mIndex);
arg9.print(" mCommitted=");
arg9.println(this.mCommitted);
if(this.mTransition != 0) {
arg9.print(arg7);
arg9.print("mTransition=#");
String v4 = Integer.toHexString(this.mTransition);
arg9.print(v4);
arg9.print(" mTransitionStyle=#");
v4 = Integer.toHexString(this.mTransitionStyle);
arg9.println(v4);
}
if(this.mEnterAnim != 0 || this.mExitAnim != 0) {
arg9.print(arg7);
arg9.print("mEnterAnim=#");
v4 = Integer.toHexString(this.mEnterAnim);
arg9.print(v4);
arg9.print(" mExitAnim=#");
v4 = Integer.toHexString(this.mExitAnim);
arg9.println(v4);
}
if(this.mPopEnterAnim != 0 || this.mPopExitAnim != 0) {
arg9.print(arg7);
arg9.print("mPopEnterAnim=#");
v4 = Integer.toHexString(this.mPopEnterAnim);
arg9.print(v4);
arg9.print(" mPopExitAnim=#");
v4 = Integer.toHexString(this.mPopExitAnim);
arg9.println(v4);
}
if(this.mBreadCrumbTitleRes != 0 || this.mBreadCrumbTitleText != 0) {
arg9.print(arg7);
arg9.print("mBreadCrumbTitleRes=#");
v4 = Integer.toHexString(this.mBreadCrumbTitleRes);
arg9.print(v4);
arg9.print(" mBreadCrumbTitleText=");
arg9.println(this.mBreadCrumbTitleText);
}
if(this.mBreadCrumbShortTitleRes != 0 || this.mBreadCrumbShortTitleText != 0) {
arg9.print(arg7);
arg9.print("mBreadCrumbShortTitleRes=#");
v4 = Integer.toHexString(this.mBreadCrumbShortTitleRes);
arg9.print(v4);
arg9.print(" mBreadCrumbShortTitleText=");
arg9.println(this.mBreadCrumbShortTitleText);
}
if(this.mHead != 0) {
arg9.print(arg7);
arg9.println("Operations:");
StringBuilder v4_1 = new StringBuilder();
v4_1 = v4_1.append(arg7);
v4_1 = v4_1.append(" ");
String v1 = v4_1.toString();
Op v3 = this.mHead;
while(v3 != 0) {
arg9.print(arg7);
arg9.print(" Op #");
arg9.print(0);
arg9.println(":");
arg9.print(v1);
arg9.print("cmd=");
arg9.print(v3.cmd);
arg9.print(" fragment=");
arg9.println(v3.fragment);
if(v3.enterAnim != 0 || v3.exitAnim != 0) {
arg9.print(arg7);
arg9.print("enterAnim=#");
v4 = Integer.toHexString(v3.enterAnim);
arg9.print(v4);
arg9.print(" exitAnim=#");
v4 = Integer.toHexString(v3.exitAnim);
arg9.println(v4);
}
if(v3.popEnterAnim != 0 || v3.popExitAnim != 0) {
arg9.print(arg7);
arg9.print("popEnterAnim=#");
v4 = Integer.toHexString(v3.popEnterAnim);
arg9.print(v4);
arg9.print(" popExitAnim=#");
v4 = Integer.toHexString(v3.popExitAnim);
arg9.println(v4);
}
if(v3.removed != 0 && v3.removed.size() > 0) {
int v0 = 0;
while(v0 < v3.removed.size()) {
arg9.print(v1);
if(v3.removed.size() == 1) {
arg9.print("Removed: ");
}
else {
arg9.println("Removed:");
arg9.print(v1);
arg9.print(" #");
arg9.print(0);
arg9.print(": ");
}
Object v4_2 = v3.removed.get(v0);
arg9.println(v4_2);
++v0;
}
}
v3 = v3.next;
}
}
}
public CharSequence getBreadCrumbShortTitle() {
if(this.mBreadCrumbShortTitleRes != 0) {
CharSequence v0 = this.mManager.mActivity.getText(this.mBreadCrumbShortTitleRes);
}
else {
v0 = this.mBreadCrumbShortTitleText;
}
return v0;
}
public int getBreadCrumbShortTitleRes() {
return this.mBreadCrumbShortTitleRes;
}
public CharSequence getBreadCrumbTitle() {
if(this.mBreadCrumbTitleRes != 0) {
CharSequence v0 = this.mManager.mActivity.getText(this.mBreadCrumbTitleRes);
}
else {
v0 = this.mBreadCrumbTitleText;
}
return v0;
}
public int getBreadCrumbTitleRes() {
return this.mBreadCrumbTitleRes;
}
public int getId() {
return this.mIndex;
}
public String getName() {
return this.mName;
}
public int getTransition() {
return this.mTransition;
}
public int getTransitionStyle() {
return this.mTransitionStyle;
}
public FragmentTransaction hide(Fragment arg3) {
Op v0 = new Op();
v0.cmd = 4;
v0.fragment = arg3;
this.addOp(v0);
return this;
}
public boolean isAddToBackStackAllowed() {
return this.mAllowAddToBackStack;
}
public boolean isEmpty() {
if(this.mNumOp == 0) {
boolean v0 = true;
}
else {
v0 = false;
}
return v0;
}
public void popFromBackStack(boolean arg11) {
int v9 = 1;
if(FragmentManagerImpl.DEBUG) {
StringBuilder v5 = new StringBuilder();
v5 = v5.append("popFromBackStack: ");
v5 = v5.append(((Object)this));
String v5_1 = v5.toString();
Log.v("BackStackEntry", v5_1);
}
this.bumpBackStackNesting(v9);
Op v3 = this.mTail;
while(v3 != 0) {
switch(v3.cmd) {
case 0x1: {
v0 = v3.fragment;
v0.mNextAnim = v3.popExitAnim;
v4 = this.mManager;
v5_2 = FragmentManagerImpl.reverseTransit(this.mTransition);
v4.removeFragment(v0, v5_2, this.mTransitionStyle);
break;
}
case 0x2: {
v0 = v3.fragment;
if(v0 != 0) {
v0.mNextAnim = v3.popExitAnim;
FragmentManagerImpl v4 = this.mManager;
int v5_2 = FragmentManagerImpl.reverseTransit(this.mTransition);
v4.removeFragment(v0, v5_2, this.mTransitionStyle);
}
if(v3.removed == 0) {
goto label_32;
}
int v1 = 0;
while(v1 < v3.removed.size()) {
Object v2 = v3.removed.get(v1);
((Fragment)v2).mNextAnim = v3.popEnterAnim;
this.mManager.addFragment(((Fragment)v2), false);
++v1;
}
}
case 0x3: {
Fragment v0 = v3.fragment;
v0.mNextAnim = v3.popEnterAnim;
this.mManager.addFragment(v0, false);
break;
}
case 0x4: {
v0 = v3.fragment;
v0.mNextAnim = v3.popEnterAnim;
v4 = this.mManager;
v5_2 = FragmentManagerImpl.reverseTransit(this.mTransition);
v4.showFragment(v0, v5_2, this.mTransitionStyle);
break;
}
case 0x5: {
v0 = v3.fragment;
v0.mNextAnim = v3.popExitAnim;
v4 = this.mManager;
v5_2 = FragmentManagerImpl.reverseTransit(this.mTransition);
v4.hideFragment(v0, v5_2, this.mTransitionStyle);
break;
}
case 0x6: {
v0 = v3.fragment;
v0.mNextAnim = v3.popEnterAnim;
v4 = this.mManager;
v5_2 = FragmentManagerImpl.reverseTransit(this.mTransition);
v4.attachFragment(v0, v5_2, this.mTransitionStyle);
break;
}
case 0x7: {
v0 = v3.fragment;
v0.mNextAnim = v3.popEnterAnim;
v4 = this.mManager;
v5_2 = FragmentManagerImpl.reverseTransit(this.mTransition);
v4.detachFragment(v0, v5_2, this.mTransitionStyle);
break;
}
default: {
v5 = new StringBuilder();
v5 = v5.append("Unknown cmd: ");
v5 = v5.append(v3.cmd);
v5_1 = v5.toString();
throw new IllegalArgumentException(v5_1);
}
}
label_32:
v3 = v3.prev;
}
if(arg11) {
v4 = this.mManager;
v5_2 = this.mManager.mCurState;
int v6 = FragmentManagerImpl.reverseTransit(this.mTransition);
v4.moveToState(v5_2, v6, this.mTransitionStyle, true);
}
if(this.mIndex >= 0) {
this.mManager.freeBackStackIndex(this.mIndex);
this.mIndex = v9;
}
}
public FragmentTransaction remove(Fragment arg3) {
Op v0 = new Op();
v0.cmd = 3;
v0.fragment = arg3;
this.addOp(v0);
return this;
}
public FragmentTransaction replace(int arg2, Fragment arg3) {
return this.replace(arg2, arg3, 0);
}
public FragmentTransaction replace(int arg3, Fragment arg4, String arg5) {
if(arg3 == 0) {
throw new IllegalArgumentException("Must use non-zero containerViewId");
}
this.doAddOp(arg3, arg4, arg5, 2);
return this;
}
public void run() {
if(FragmentManagerImpl.DEBUG) {
StringBuilder v5 = new StringBuilder();
v5 = v5.append("Run: ");
v5 = v5.append(((Object)this));
String v5_1 = v5.toString();
Log.v("BackStackEntry", v5_1);
}
if(this.mAddToBackStack) {
if(this.mIndex >= 0) {
goto label_18;
}
goto label_15;
}
label_18:
this.bumpBackStackNesting(1);
Op v3 = this.mHead;
while(v3 != 0) {
switch(v3.cmd) {
case 0x1: {
v0 = v3.fragment;
v0.mNextAnim = v3.enterAnim;
this.mManager.addFragment(v0, false);
break;
}
case 0x2: {
v0 = v3.fragment;
if(this.mManager.mAdded != 0) {
int v1 = 0;
while(v1 < this.mManager.mAdded.size()) {
Object v2 = this.mManager.mAdded.get(v1);
if(FragmentManagerImpl.DEBUG != false) {
v5 = new StringBuilder();
v5 = v5.append("OP_REPLACE: adding=");
v5 = v5.append(((Object)v0));
v5 = v5.append(" old=");
v5 = v5.append(v2);
v5_1 = v5.toString();
Log.v("BackStackEntry", v5_1);
}
if(v0 == 0 || ((Fragment)v2).mContainerId == v0.mContainerId) {
if((((Fragment)v2)) == v0) {
Object v0_1 = 0;
v3.fragment = v0;
}
else {
if(v3.removed == 0) {
v3.removed = new ArrayList();
}
v3.removed.add(v2);
((Fragment)v2).mNextAnim = v3.exitAnim;
if(this.mAddToBackStack != false) {
++((Fragment)v2).mBackStackNesting;
if(FragmentManagerImpl.DEBUG != false) {
v5 = new StringBuilder();
v5 = v5.append("Bump nesting of ");
v5 = v5.append(v2);
v5 = v5.append(" to ");
v5 = v5.append(((Fragment)v2).mBackStackNesting);
v5_1 = v5.toString();
Log.v("BackStackEntry", v5_1);
}
}
this.mManager.removeFragment(((Fragment)v2), this.mTransition, this.mTransitionStyle);
}
}
++v1;
}
}
if(v0 == 0) {
goto label_36;
}
v0.mNextAnim = v3.enterAnim;
this.mManager.addFragment(v0, false);
break;
}
case 0x3: {
Fragment v0 = v3.fragment;
v0.mNextAnim = v3.exitAnim;
this.mManager.removeFragment(v0, this.mTransition, this.mTransitionStyle);
break;
}
case 0x4: {
v0 = v3.fragment;
v0.mNextAnim = v3.exitAnim;
this.mManager.hideFragment(v0, this.mTransition, this.mTransitionStyle);
break;
}
case 0x5: {
v0 = v3.fragment;
v0.mNextAnim = v3.enterAnim;
this.mManager.showFragment(v0, this.mTransition, this.mTransitionStyle);
break;
}
case 0x6: {
v0 = v3.fragment;
v0.mNextAnim = v3.exitAnim;
this.mManager.detachFragment(v0, this.mTransition, this.mTransitionStyle);
break;
}
case 0x7: {
v0 = v3.fragment;
v0.mNextAnim = v3.enterAnim;
this.mManager.attachFragment(v0, this.mTransition, this.mTransitionStyle);
break;
}
default: {
v5 = new StringBuilder();
v5 = v5.append("Unknown cmd: ");
v5 = v5.append(v3.cmd);
v5_1 = v5.toString();
throw new IllegalArgumentException(v5_1);
}
}
label_36:
v3 = v3.next;
}
this.mManager.moveToState(this.mManager.mCurState, this.mTransition, this.mTransitionStyle, true);
if(this.mAddToBackStack) {
this.mManager.addBackStackState(this);
}
return;
label_15:
throw new IllegalStateException("addToBackStack() called after commit()");
}
public FragmentTransaction setBreadCrumbShortTitle(int arg2) {
this.mBreadCrumbShortTitleRes = arg2;
this.mBreadCrumbShortTitleText = 0;
return this;
}
public FragmentTransaction setBreadCrumbShortTitle(CharSequence arg2) {
this.mBreadCrumbShortTitleRes = 0;
this.mBreadCrumbShortTitleText = arg2;
return this;
}
public FragmentTransaction setBreadCrumbTitle(int arg2) {
this.mBreadCrumbTitleRes = arg2;
this.mBreadCrumbTitleText = 0;
return this;
}
public FragmentTransaction setBreadCrumbTitle(CharSequence arg2) {
this.mBreadCrumbTitleRes = 0;
this.mBreadCrumbTitleText = arg2;
return this;
}
public FragmentTransaction setCustomAnimations(int arg2, int arg3) {
return this.setCustomAnimations(arg2, arg3, 0, 0);
}
public FragmentTransaction setCustomAnimations(int arg1, int arg2, int arg3, int arg4) {
this.mEnterAnim = arg1;
this.mExitAnim = arg2;
this.mPopEnterAnim = arg3;
this.mPopExitAnim = arg4;
return this;
}
public FragmentTransaction setTransition(int arg1) {
this.mTransition = arg1;
return this;
}
public FragmentTransaction setTransitionStyle(int arg1) {
this.mTransitionStyle = arg1;
return this;
}
public FragmentTransaction show(Fragment arg3) {
Op v0 = new Op();
v0.cmd = 5;
v0.fragment = arg3;
this.addOp(v0);
return this;
}
} |
// Decompiled by JD-GUI v0.3.5
package android.support.v4.app;
import android.util.Log;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
final class BackStackRecord extends FragmentTransaction
implements FragmentManager.BackStackEntry, Runnable
{
static final int OP_ADD = 1;
static final int OP_ATTACH = 7;
static final int OP_DETACH = 6;
static final int OP_HIDE = 4;
static final int OP_NULL = 0;
static final int OP_REMOVE = 3;
static final int OP_REPLACE = 2;
static final int OP_SHOW = 5;
static final String TAG = "BackStackEntry";
boolean mAddToBackStack;
boolean mAllowAddToBackStack = true;
int mBreadCrumbShortTitleRes;
CharSequence mBreadCrumbShortTitleText;
int mBreadCrumbTitleRes;
CharSequence mBreadCrumbTitleText;
boolean mCommitted;
int mEnterAnim;
int mExitAnim;
Op mHead;
int mIndex;
final FragmentManagerImpl mManager;
String mName;
int mNumOp;
int mPopEnterAnim;
int mPopExitAnim;
Op mTail;
int mTransition;
int mTransitionStyle;
public BackStackRecord(FragmentManagerImpl paramFragmentManagerImpl)
{
this.mManager = paramFragmentManagerImpl;
}
private void doAddOp(int paramInt1, Fragment paramFragment, String paramString, int paramInt2)
{
paramFragment.mFragmentManager = this.mManager;
if (paramString != null)
{
if ((paramFragment.mTag != null) && (!paramString.equals(paramFragment.mTag)))
throw new IllegalStateException("Can't change tag of fragment " + paramFragment + ": was " + paramFragment.mTag + " now " + paramString);
paramFragment.mTag = paramString;
}
if (paramInt1 != 0)
{
if ((paramFragment.mFragmentId != 0) && (paramFragment.mFragmentId != paramInt1))
throw new IllegalStateException("Can't change container ID of fragment " + paramFragment + ": was " + paramFragment.mFragmentId + " now " + paramInt1);
paramFragment.mFragmentId = paramInt1;
paramFragment.mContainerId = paramInt1;
}
Op localOp = new Op();
localOp.cmd = paramInt2;
localOp.fragment = paramFragment;
addOp(localOp);
}
public FragmentTransaction add(int paramInt, Fragment paramFragment)
{
doAddOp(paramInt, paramFragment, null, 1);
return this;
}
public FragmentTransaction add(int paramInt, Fragment paramFragment, String paramString)
{
doAddOp(paramInt, paramFragment, paramString, 1);
return this;
}
public FragmentTransaction add(Fragment paramFragment, String paramString)
{
doAddOp(0, paramFragment, paramString, 1);
return this;
}
void addOp(Op paramOp)
{
if (this.mHead == null)
{
this.mTail = paramOp;
this.mHead = paramOp;
}
while (true)
{
paramOp.enterAnim = this.mEnterAnim;
paramOp.exitAnim = this.mExitAnim;
paramOp.popEnterAnim = this.mPopEnterAnim;
paramOp.popExitAnim = this.mPopExitAnim;
this.mNumOp = (1 + this.mNumOp);
return;
paramOp.prev = this.mTail;
this.mTail.next = paramOp;
this.mTail = paramOp;
}
}
public FragmentTransaction addToBackStack(String paramString)
{
if (!this.mAllowAddToBackStack)
throw new IllegalStateException("This FragmentTransaction is not allowed to be added to the back stack.");
this.mAddToBackStack = true;
this.mName = paramString;
return this;
}
public FragmentTransaction attach(Fragment paramFragment)
{
Op localOp = new Op();
localOp.cmd = 7;
localOp.fragment = paramFragment;
addOp(localOp);
return this;
}
void bumpBackStackNesting(int paramInt)
{
if (!this.mAddToBackStack);
while (true)
{
return;
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "Bump nesting in " + this + " by " + paramInt);
for (Op localOp = this.mHead; localOp != null; localOp = localOp.next)
{
if (localOp.fragment != null)
{
Fragment localFragment2 = localOp.fragment;
localFragment2.mBackStackNesting = (paramInt + localFragment2.mBackStackNesting);
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "Bump nesting of " + localOp.fragment + " to " + localOp.fragment.mBackStackNesting);
}
if (localOp.removed != null)
for (int i = -1 + localOp.removed.size(); i >= 0; i--)
{
Fragment localFragment1 = (Fragment)localOp.removed.get(i);
localFragment1.mBackStackNesting = (paramInt + localFragment1.mBackStackNesting);
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "Bump nesting of " + localFragment1 + " to " + localFragment1.mBackStackNesting);
}
}
}
}
public int commit()
{
return commitInternal(false);
}
public int commitAllowingStateLoss()
{
return commitInternal(true);
}
int commitInternal(boolean paramBoolean)
{
if (this.mCommitted)
throw new IllegalStateException("commit already called");
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "Commit: " + this);
this.mCommitted = true;
if (this.mAddToBackStack);
for (this.mIndex = this.mManager.allocBackStackIndex(this); ; this.mIndex = -1)
{
this.mManager.enqueueAction(this, paramBoolean);
return this.mIndex;
}
}
public FragmentTransaction detach(Fragment paramFragment)
{
Op localOp = new Op();
localOp.cmd = 6;
localOp.fragment = paramFragment;
addOp(localOp);
return this;
}
public FragmentTransaction disallowAddToBackStack()
{
if (this.mAddToBackStack)
throw new IllegalStateException("This transaction is already being added to the back stack");
this.mAllowAddToBackStack = false;
return this;
}
public void dump(String paramString, FileDescriptor paramFileDescriptor, PrintWriter paramPrintWriter, String[] paramArrayOfString)
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("mName=");
paramPrintWriter.print(this.mName);
paramPrintWriter.print(" mIndex=");
paramPrintWriter.print(this.mIndex);
paramPrintWriter.print(" mCommitted=");
paramPrintWriter.println(this.mCommitted);
if (this.mTransition != 0)
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("mTransition=#");
paramPrintWriter.print(Integer.toHexString(this.mTransition));
paramPrintWriter.print(" mTransitionStyle=#");
paramPrintWriter.println(Integer.toHexString(this.mTransitionStyle));
}
if ((this.mEnterAnim != 0) || (this.mExitAnim != 0))
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("mEnterAnim=#");
paramPrintWriter.print(Integer.toHexString(this.mEnterAnim));
paramPrintWriter.print(" mExitAnim=#");
paramPrintWriter.println(Integer.toHexString(this.mExitAnim));
}
if ((this.mPopEnterAnim != 0) || (this.mPopExitAnim != 0))
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("mPopEnterAnim=#");
paramPrintWriter.print(Integer.toHexString(this.mPopEnterAnim));
paramPrintWriter.print(" mPopExitAnim=#");
paramPrintWriter.println(Integer.toHexString(this.mPopExitAnim));
}
if ((this.mBreadCrumbTitleRes != 0) || (this.mBreadCrumbTitleText != null))
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("mBreadCrumbTitleRes=#");
paramPrintWriter.print(Integer.toHexString(this.mBreadCrumbTitleRes));
paramPrintWriter.print(" mBreadCrumbTitleText=");
paramPrintWriter.println(this.mBreadCrumbTitleText);
}
if ((this.mBreadCrumbShortTitleRes != 0) || (this.mBreadCrumbShortTitleText != null))
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("mBreadCrumbShortTitleRes=#");
paramPrintWriter.print(Integer.toHexString(this.mBreadCrumbShortTitleRes));
paramPrintWriter.print(" mBreadCrumbShortTitleText=");
paramPrintWriter.println(this.mBreadCrumbShortTitleText);
}
if (this.mHead != null)
{
paramPrintWriter.print(paramString);
paramPrintWriter.println("Operations:");
String str = paramString + " ";
for (Op localOp = this.mHead; localOp != null; localOp = localOp.next)
{
paramPrintWriter.print(paramString);
paramPrintWriter.print(" Op #");
paramPrintWriter.print(0);
paramPrintWriter.println(":");
paramPrintWriter.print(str);
paramPrintWriter.print("cmd=");
paramPrintWriter.print(localOp.cmd);
paramPrintWriter.print(" fragment=");
paramPrintWriter.println(localOp.fragment);
if ((localOp.enterAnim != 0) || (localOp.exitAnim != 0))
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("enterAnim=#");
paramPrintWriter.print(Integer.toHexString(localOp.enterAnim));
paramPrintWriter.print(" exitAnim=#");
paramPrintWriter.println(Integer.toHexString(localOp.exitAnim));
}
if ((localOp.popEnterAnim != 0) || (localOp.popExitAnim != 0))
{
paramPrintWriter.print(paramString);
paramPrintWriter.print("popEnterAnim=#");
paramPrintWriter.print(Integer.toHexString(localOp.popEnterAnim));
paramPrintWriter.print(" popExitAnim=#");
paramPrintWriter.println(Integer.toHexString(localOp.popExitAnim));
}
if ((localOp.removed != null) && (localOp.removed.size() > 0))
{
int i = 0;
if (i < localOp.removed.size())
{
paramPrintWriter.print(str);
if (localOp.removed.size() == 1)
paramPrintWriter.print("Removed: ");
while (true)
{
paramPrintWriter.println(localOp.removed.get(i));
i++;
break;
paramPrintWriter.println("Removed:");
paramPrintWriter.print(str);
paramPrintWriter.print(" #");
paramPrintWriter.print(0);
paramPrintWriter.print(": ");
}
}
}
}
}
}
public CharSequence getBreadCrumbShortTitle()
{
if (this.mBreadCrumbShortTitleRes != 0);
for (CharSequence localCharSequence = this.mManager.mActivity.getText(this.mBreadCrumbShortTitleRes); ; localCharSequence = this.mBreadCrumbShortTitleText)
return localCharSequence;
}
public int getBreadCrumbShortTitleRes()
{
return this.mBreadCrumbShortTitleRes;
}
public CharSequence getBreadCrumbTitle()
{
if (this.mBreadCrumbTitleRes != 0);
for (CharSequence localCharSequence = this.mManager.mActivity.getText(this.mBreadCrumbTitleRes); ; localCharSequence = this.mBreadCrumbTitleText)
return localCharSequence;
}
public int getBreadCrumbTitleRes()
{
return this.mBreadCrumbTitleRes;
}
public int getId()
{
return this.mIndex;
}
public String getName()
{
return this.mName;
}
public int getTransition()
{
return this.mTransition;
}
public int getTransitionStyle()
{
return this.mTransitionStyle;
}
public FragmentTransaction hide(Fragment paramFragment)
{
Op localOp = new Op();
localOp.cmd = 4;
localOp.fragment = paramFragment;
addOp(localOp);
return this;
}
public boolean isAddToBackStackAllowed()
{
return this.mAllowAddToBackStack;
}
public boolean isEmpty()
{
if (this.mNumOp == 0);
for (boolean bool = true; ; bool = false)
return bool;
}
public void popFromBackStack(boolean paramBoolean)
{
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "popFromBackStack: " + this);
bumpBackStackNesting(-1);
Op localOp = this.mTail;
if (localOp != null)
{
switch (localOp.cmd)
{
default:
throw new IllegalArgumentException("Unknown cmd: " + localOp.cmd);
case 1:
Fragment localFragment8 = localOp.fragment;
localFragment8.mNextAnim = localOp.popExitAnim;
this.mManager.removeFragment(localFragment8, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
}
while (true)
{
localOp = localOp.prev;
break;
Fragment localFragment6 = localOp.fragment;
if (localFragment6 != null)
{
localFragment6.mNextAnim = localOp.popExitAnim;
this.mManager.removeFragment(localFragment6, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
}
if (localOp.removed != null)
{
for (int i = 0; i < localOp.removed.size(); i++)
{
Fragment localFragment7 = (Fragment)localOp.removed.get(i);
localFragment7.mNextAnim = localOp.popEnterAnim;
this.mManager.addFragment(localFragment7, false);
}
Fragment localFragment5 = localOp.fragment;
localFragment5.mNextAnim = localOp.popEnterAnim;
this.mManager.addFragment(localFragment5, false);
continue;
Fragment localFragment4 = localOp.fragment;
localFragment4.mNextAnim = localOp.popEnterAnim;
this.mManager.showFragment(localFragment4, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
continue;
Fragment localFragment3 = localOp.fragment;
localFragment3.mNextAnim = localOp.popExitAnim;
this.mManager.hideFragment(localFragment3, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
continue;
Fragment localFragment2 = localOp.fragment;
localFragment2.mNextAnim = localOp.popEnterAnim;
this.mManager.attachFragment(localFragment2, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
continue;
Fragment localFragment1 = localOp.fragment;
localFragment1.mNextAnim = localOp.popEnterAnim;
this.mManager.detachFragment(localFragment1, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
}
}
}
if (paramBoolean)
this.mManager.moveToState(this.mManager.mCurState, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle, true);
if (this.mIndex >= 0)
{
this.mManager.freeBackStackIndex(this.mIndex);
this.mIndex = -1;
}
}
public FragmentTransaction remove(Fragment paramFragment)
{
Op localOp = new Op();
localOp.cmd = 3;
localOp.fragment = paramFragment;
addOp(localOp);
return this;
}
public FragmentTransaction replace(int paramInt, Fragment paramFragment)
{
return replace(paramInt, paramFragment, null);
}
public FragmentTransaction replace(int paramInt, Fragment paramFragment, String paramString)
{
if (paramInt == 0)
throw new IllegalArgumentException("Must use non-zero containerViewId");
doAddOp(paramInt, paramFragment, paramString, 2);
return this;
}
public void run()
{
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "Run: " + this);
if ((this.mAddToBackStack) && (this.mIndex < 0))
throw new IllegalStateException("addToBackStack() called after commit()");
bumpBackStackNesting(1);
Op localOp = this.mHead;
if (localOp != null)
{
switch (localOp.cmd)
{
default:
throw new IllegalArgumentException("Unknown cmd: " + localOp.cmd);
case 1:
Fragment localFragment8 = localOp.fragment;
localFragment8.mNextAnim = localOp.enterAnim;
this.mManager.addFragment(localFragment8, false);
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
}
while (true)
{
localOp = localOp.next;
break;
Fragment localFragment6 = localOp.fragment;
if (this.mManager.mAdded != null)
{
int i = 0;
if (i < this.mManager.mAdded.size())
{
Fragment localFragment7 = (Fragment)this.mManager.mAdded.get(i);
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "OP_REPLACE: adding=" + localFragment6 + " old=" + localFragment7);
if ((localFragment6 == null) || (localFragment7.mContainerId == localFragment6.mContainerId))
{
if (localFragment7 != localFragment6)
break label314;
localFragment6 = null;
localOp.fragment = null;
}
while (true)
{
i++;
break;
label314: if (localOp.removed == null)
localOp.removed = new ArrayList();
localOp.removed.add(localFragment7);
localFragment7.mNextAnim = localOp.exitAnim;
if (this.mAddToBackStack)
{
localFragment7.mBackStackNesting = (1 + localFragment7.mBackStackNesting);
if (FragmentManagerImpl.DEBUG)
Log.v("BackStackEntry", "Bump nesting of " + localFragment7 + " to " + localFragment7.mBackStackNesting);
}
this.mManager.removeFragment(localFragment7, this.mTransition, this.mTransitionStyle);
}
}
}
if (localFragment6 != null)
{
localFragment6.mNextAnim = localOp.enterAnim;
this.mManager.addFragment(localFragment6, false);
continue;
Fragment localFragment5 = localOp.fragment;
localFragment5.mNextAnim = localOp.exitAnim;
this.mManager.removeFragment(localFragment5, this.mTransition, this.mTransitionStyle);
continue;
Fragment localFragment4 = localOp.fragment;
localFragment4.mNextAnim = localOp.exitAnim;
this.mManager.hideFragment(localFragment4, this.mTransition, this.mTransitionStyle);
continue;
Fragment localFragment3 = localOp.fragment;
localFragment3.mNextAnim = localOp.enterAnim;
this.mManager.showFragment(localFragment3, this.mTransition, this.mTransitionStyle);
continue;
Fragment localFragment2 = localOp.fragment;
localFragment2.mNextAnim = localOp.exitAnim;
this.mManager.detachFragment(localFragment2, this.mTransition, this.mTransitionStyle);
continue;
Fragment localFragment1 = localOp.fragment;
localFragment1.mNextAnim = localOp.enterAnim;
this.mManager.attachFragment(localFragment1, this.mTransition, this.mTransitionStyle);
}
}
}
this.mManager.moveToState(this.mManager.mCurState, this.mTransition, this.mTransitionStyle, true);
if (this.mAddToBackStack)
this.mManager.addBackStackState(this);
}
public FragmentTransaction setBreadCrumbShortTitle(int paramInt)
{
this.mBreadCrumbShortTitleRes = paramInt;
this.mBreadCrumbShortTitleText = null;
return this;
}
public FragmentTransaction setBreadCrumbShortTitle(CharSequence paramCharSequence)
{
this.mBreadCrumbShortTitleRes = 0;
this.mBreadCrumbShortTitleText = paramCharSequence;
return this;
}
public FragmentTransaction setBreadCrumbTitle(int paramInt)
{
this.mBreadCrumbTitleRes = paramInt;
this.mBreadCrumbTitleText = null;
return this;
}
public FragmentTransaction setBreadCrumbTitle(CharSequence paramCharSequence)
{
this.mBreadCrumbTitleRes = 0;
this.mBreadCrumbTitleText = paramCharSequence;
return this;
}
public FragmentTransaction setCustomAnimations(int paramInt1, int paramInt2)
{
return setCustomAnimations(paramInt1, paramInt2, 0, 0);
}
public FragmentTransaction setCustomAnimations(int paramInt1, int paramInt2, int paramInt3, int paramInt4)
{
this.mEnterAnim = paramInt1;
this.mExitAnim = paramInt2;
this.mPopEnterAnim = paramInt3;
this.mPopExitAnim = paramInt4;
return this;
}
public FragmentTransaction setTransition(int paramInt)
{
this.mTransition = paramInt;
return this;
}
public FragmentTransaction setTransitionStyle(int paramInt)
{
this.mTransitionStyle = paramInt;
return this;
}
public FragmentTransaction show(Fragment paramFragment)
{
Op localOp = new Op();
localOp.cmd = 5;
localOp.fragment = paramFragment;
addOp(localOp);
return this;
}
static final class Op
{
int cmd;
int enterAnim;
int exitAnim;
Fragment fragment;
Op next;
int popEnterAnim;
int popExitAnim;
Op prev;
ArrayList removed;
}
} |