package android.support.v4.app; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.Resources.NotFoundException; import android.content.res.TypedArray; import android.os.Build.VERSION; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Parcelable; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.Window; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; public class FragmentActivity extends Activity { static final String FRAGMENTS_TAG = "android:support:fragments"; private static final int HONEYCOMB = 11; static final int MSG_REALLY_STOPPED = 1; static final int MSG_RESUME_PENDING = 2; private static final String TAG = "FragmentActivity"; HashMap<String, LoaderManagerImpl> mAllLoaderManagers; boolean mCheckedForLoaderManager; final FragmentContainer mContainer = new FragmentContainer() { public View findViewById(int paramAnonymousInt) { return FragmentActivity.this.findViewById(paramAnonymousInt); } }; boolean mCreated; final FragmentManagerImpl mFragments = new FragmentManagerImpl(); final Handler mHandler = new Handler() { public void handleMessage(Message paramAnonymousMessage) { switch (paramAnonymousMessage.what) { default: super.handleMessage(paramAnonymousMessage); } for (;;) { return; if (FragmentActivity.this.mStopped) { FragmentActivity.this.doReallyStop(false); continue; FragmentActivity.this.onResumeFragments(); FragmentActivity.this.mFragments.execPendingActions(); } } } }; LoaderManagerImpl mLoaderManager; boolean mLoadersStarted; boolean mOptionsMenuInvalidated; boolean mReallyStopped; boolean mResumed; boolean mRetaining; boolean mStopped; private void dumpViewHierarchy(String paramString, PrintWriter paramPrintWriter, View paramView) { paramPrintWriter.print(paramString); if (paramView == null) { paramPrintWriter.println("null"); } for (;;) { return; paramPrintWriter.println(viewToString(paramView)); if ((paramView instanceof ViewGroup)) { ViewGroup localViewGroup = (ViewGroup)paramView; int i = localViewGroup.getChildCount(); if (i > 0) { String str = paramString + " "; for (int j = 0; j < i; j++) { dumpViewHierarchy(str, paramPrintWriter, localViewGroup.getChildAt(j)); } } } } } private static String viewToString(View paramView) { char c1 = 'F'; char c2 = '.'; StringBuilder localStringBuilder = new StringBuilder(128); localStringBuilder.append(paramView.getClass().getName()); localStringBuilder.append('{'); localStringBuilder.append(Integer.toHexString(System.identityHashCode(paramView))); localStringBuilder.append(' '); switch (paramView.getVisibility()) { default: localStringBuilder.append(c2); } for (;;) { char c3; label108: char c4; label126: char c5; label143: char c6; label161: char c7; label179: char c8; label197: char c9; label215: label236: char c10; label253: int i; Resources localResources; if (paramView.isFocusable()) { c3 = c1; localStringBuilder.append(c3); if (!paramView.isEnabled()) { break label533; } c4 = 'E'; localStringBuilder.append(c4); if (!paramView.willNotDraw()) { break label539; } c5 = c2; localStringBuilder.append(c5); if (!paramView.isHorizontalScrollBarEnabled()) { break label546; } c6 = 'H'; localStringBuilder.append(c6); if (!paramView.isVerticalScrollBarEnabled()) { break label552; } c7 = 'V'; localStringBuilder.append(c7); if (!paramView.isClickable()) { break label558; } c8 = 'C'; localStringBuilder.append(c8); if (!paramView.isLongClickable()) { break label564; } c9 = 'L'; localStringBuilder.append(c9); localStringBuilder.append(' '); if (!paramView.isFocused()) { break label570; } localStringBuilder.append(c1); if (!paramView.isSelected()) { break label575; } c10 = 'S'; localStringBuilder.append(c10); if (paramView.isPressed()) { c2 = 'P'; } localStringBuilder.append(c2); localStringBuilder.append(' '); localStringBuilder.append(paramView.getLeft()); localStringBuilder.append(','); localStringBuilder.append(paramView.getTop()); localStringBuilder.append('-'); localStringBuilder.append(paramView.getRight()); localStringBuilder.append(','); localStringBuilder.append(paramView.getBottom()); i = paramView.getId(); if (i != -1) { localStringBuilder.append(" #"); localStringBuilder.append(Integer.toHexString(i)); localResources = paramView.getResources(); if ((i != 0) && (localResources != null)) { switch (0xFF000000 & i) { } } } } try { String str1 = localResources.getResourcePackageName(i); for (;;) { String str2 = localResources.getResourceTypeName(i); String str3 = localResources.getResourceEntryName(i); localStringBuilder.append(" "); localStringBuilder.append(str1); localStringBuilder.append(":"); localStringBuilder.append(str2); localStringBuilder.append("/"); localStringBuilder.append(str3); label485: localStringBuilder.append("}"); return localStringBuilder.toString(); localStringBuilder.append('V'); break; localStringBuilder.append('I'); break; localStringBuilder.append('G'); break; c3 = c2; break label108; label533: c4 = c2; break label126; label539: c5 = 'D'; break label143; label546: c6 = c2; break label161; label552: c7 = c2; break label179; label558: c8 = c2; break label197; label564: c9 = c2; break label215; label570: c1 = c2; break label236; label575: c10 = c2; break label253; str1 = "app"; continue; str1 = "android"; } } catch (Resources.NotFoundException localNotFoundException) { break label485; } } } void doReallyStop(boolean paramBoolean) { if (!this.mReallyStopped) { this.mReallyStopped = true; this.mRetaining = paramBoolean; this.mHandler.removeMessages(1); onReallyStop(); } } public void dump(String paramString, FileDescriptor paramFileDescriptor, PrintWriter paramPrintWriter, String[] paramArrayOfString) { if (Build.VERSION.SDK_INT >= 11) {} paramPrintWriter.print(paramString); paramPrintWriter.print("Local FragmentActivity "); paramPrintWriter.print(Integer.toHexString(System.identityHashCode(this))); paramPrintWriter.println(" State:"); String str = paramString + " "; paramPrintWriter.print(str); paramPrintWriter.print("mCreated="); paramPrintWriter.print(this.mCreated); paramPrintWriter.print("mResumed="); paramPrintWriter.print(this.mResumed); paramPrintWriter.print(" mStopped="); paramPrintWriter.print(this.mStopped); paramPrintWriter.print(" mReallyStopped="); paramPrintWriter.println(this.mReallyStopped); paramPrintWriter.print(str); paramPrintWriter.print("mLoadersStarted="); paramPrintWriter.println(this.mLoadersStarted); if (this.mLoaderManager != null) { paramPrintWriter.print(paramString); paramPrintWriter.print("Loader Manager "); paramPrintWriter.print(Integer.toHexString(System.identityHashCode(this.mLoaderManager))); paramPrintWriter.println(":"); this.mLoaderManager.dump(paramString + " ", paramFileDescriptor, paramPrintWriter, paramArrayOfString); } this.mFragments.dump(paramString, paramFileDescriptor, paramPrintWriter, paramArrayOfString); paramPrintWriter.print(paramString); paramPrintWriter.println("View Hierarchy:"); dumpViewHierarchy(paramString + " ", paramPrintWriter, getWindow().getDecorView()); } public Object getLastCustomNonConfigurationInstance() { NonConfigurationInstances localNonConfigurationInstances = (NonConfigurationInstances)getLastNonConfigurationInstance(); if (localNonConfigurationInstances != null) {} for (Object localObject = localNonConfigurationInstances.custom;; localObject = null) { return localObject; } } LoaderManagerImpl getLoaderManager(String paramString, boolean paramBoolean1, boolean paramBoolean2) { if (this.mAllLoaderManagers == null) { this.mAllLoaderManagers = new HashMap(); } LoaderManagerImpl localLoaderManagerImpl = (LoaderManagerImpl)this.mAllLoaderManagers.get(paramString); if (localLoaderManagerImpl == null) { if (paramBoolean2) { localLoaderManagerImpl = new LoaderManagerImpl(paramString, this, paramBoolean1); this.mAllLoaderManagers.put(paramString, localLoaderManagerImpl); } } for (;;) { return localLoaderManagerImpl; localLoaderManagerImpl.updateActivity(this); } } public FragmentManager getSupportFragmentManager() { return this.mFragments; } public LoaderManager getSupportLoaderManager() { if (this.mLoaderManager != null) {} for (LoaderManagerImpl localLoaderManagerImpl = this.mLoaderManager;; localLoaderManagerImpl = this.mLoaderManager) { return localLoaderManagerImpl; this.mCheckedForLoaderManager = true; this.mLoaderManager = getLoaderManager(null, this.mLoadersStarted, true); } } void invalidateSupportFragment(String paramString) { if (this.mAllLoaderManagers != null) { LoaderManagerImpl localLoaderManagerImpl = (LoaderManagerImpl)this.mAllLoaderManagers.get(paramString); if ((localLoaderManagerImpl != null) && (!localLoaderManagerImpl.mRetaining)) { localLoaderManagerImpl.doDestroy(); this.mAllLoaderManagers.remove(paramString); } } } protected void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { this.mFragments.noteStateNotSaved(); int i = paramInt1 >> 16; int j; if (i != 0) { j = i - 1; if ((this.mFragments.mActive == null) || (j < 0) || (j >= this.mFragments.mActive.size())) { Log.w("FragmentActivity", "Activity result fragment index out of range: 0x" + Integer.toHexString(paramInt1)); } } for (;;) { return; Fragment localFragment = (Fragment)this.mFragments.mActive.get(j); if (localFragment == null) { Log.w("FragmentActivity", "Activity result no fragment exists for index: 0x" + Integer.toHexString(paramInt1)); } else { localFragment.onActivityResult(0xFFFF & paramInt1, paramInt2, paramIntent); continue; super.onActivityResult(paramInt1, paramInt2, paramIntent); } } } public void onAttachFragment(Fragment paramFragment) {} public void onBackPressed() { if (!this.mFragments.popBackStackImmediate()) { finish(); } } public void onConfigurationChanged(Configuration paramConfiguration) { super.onConfigurationChanged(paramConfiguration); this.mFragments.dispatchConfigurationChanged(paramConfiguration); } protected void onCreate(Bundle paramBundle) { ArrayList localArrayList = null; this.mFragments.attachActivity(this, this.mContainer, null); if (getLayoutInflater().getFactory() == null) { getLayoutInflater().setFactory(this); } super.onCreate(paramBundle); NonConfigurationInstances localNonConfigurationInstances = (NonConfigurationInstances)getLastNonConfigurationInstance(); if (localNonConfigurationInstances != null) { this.mAllLoaderManagers = localNonConfigurationInstances.loaders; } if (paramBundle != null) { Parcelable localParcelable = paramBundle.getParcelable("android:support:fragments"); FragmentManagerImpl localFragmentManagerImpl = this.mFragments; if (localNonConfigurationInstances != null) { localArrayList = localNonConfigurationInstances.fragments; } localFragmentManagerImpl.restoreAllState(localParcelable, localArrayList); } this.mFragments.dispatchCreate(); } public boolean onCreatePanelMenu(int paramInt, Menu paramMenu) { boolean bool; if (paramInt == 0) { bool = super.onCreatePanelMenu(paramInt, paramMenu) | this.mFragments.dispatchCreateOptionsMenu(paramMenu, getMenuInflater()); if (Build.VERSION.SDK_INT < 11) {} } for (;;) { return bool; bool = true; continue; bool = super.onCreatePanelMenu(paramInt, paramMenu); } } public View onCreateView(String paramString, Context paramContext, AttributeSet paramAttributeSet) { Fragment localFragment = null; int i = 0; if (!"fragment".equals(paramString)) {} for (View localView = super.onCreateView(paramString, paramContext, paramAttributeSet);; localView = localFragment.mView) { return localView; String str1 = paramAttributeSet.getAttributeValue(null, "class"); TypedArray localTypedArray = paramContext.obtainStyledAttributes(paramAttributeSet, FragmentTag.Fragment); if (str1 == null) { str1 = localTypedArray.getString(0); } int j = localTypedArray.getResourceId(1, -1); String str2 = localTypedArray.getString(2); localTypedArray.recycle(); if (0 != 0) { i = null.getId(); } if ((i == -1) && (j == -1) && (str2 == null)) { throw new IllegalArgumentException(paramAttributeSet.getPositionDescription() + ": Must specify unique android:id, android:tag, or have a parent with an id for " + str1); } if (j != -1) { localFragment = this.mFragments.findFragmentById(j); } if ((localFragment == null) && (str2 != null)) { localFragment = this.mFragments.findFragmentByTag(str2); } if ((localFragment == null) && (i != -1)) { localFragment = this.mFragments.findFragmentById(i); } if (FragmentManagerImpl.DEBUG) { Log.v("FragmentActivity", "onCreateView: id=0x" + Integer.toHexString(j) + " fname=" + str1 + " existing=" + localFragment); } int k; if (localFragment == null) { localFragment = Fragment.instantiate(this, str1); localFragment.mFromLayout = true; if (j != 0) { k = j; localFragment.mFragmentId = k; localFragment.mContainerId = i; localFragment.mTag = str2; localFragment.mInLayout = true; localFragment.mFragmentManager = this.mFragments; localFragment.onInflate(this, paramAttributeSet, localFragment.mSavedFragmentState); this.mFragments.addFragment(localFragment, true); } } for (;;) { if (localFragment.mView != null) { break label532; } throw new IllegalStateException("Fragment " + str1 + " did not create a view."); k = i; break; if (localFragment.mInLayout) { throw new IllegalArgumentException(paramAttributeSet.getPositionDescription() + ": Duplicate id 0x" + Integer.toHexString(j) + ", tag " + str2 + ", or parent id 0x" + Integer.toHexString(i) + " with another fragment for " + str1); } localFragment.mInLayout = true; if (!localFragment.mRetaining) { localFragment.onInflate(this, paramAttributeSet, localFragment.mSavedFragmentState); } this.mFragments.moveToState(localFragment); } label532: if (j != 0) { localFragment.mView.setId(j); } if (localFragment.mView.getTag() == null) { localFragment.mView.setTag(str2); } } } protected void onDestroy() { super.onDestroy(); doReallyStop(false); this.mFragments.dispatchDestroy(); if (this.mLoaderManager != null) { this.mLoaderManager.doDestroy(); } } public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) { if ((Build.VERSION.SDK_INT < 5) && (paramInt == 4) && (paramKeyEvent.getRepeatCount() == 0)) { onBackPressed(); } for (boolean bool = true;; bool = super.onKeyDown(paramInt, paramKeyEvent)) { return bool; } } public void onLowMemory() { super.onLowMemory(); this.mFragments.dispatchLowMemory(); } public boolean onMenuItemSelected(int paramInt, MenuItem paramMenuItem) { boolean bool; if (super.onMenuItemSelected(paramInt, paramMenuItem)) { bool = true; } for (;;) { return bool; switch (paramInt) { default: bool = false; break; case 0: bool = this.mFragments.dispatchOptionsItemSelected(paramMenuItem); break; case 6: bool = this.mFragments.dispatchContextItemSelected(paramMenuItem); } } } protected void onNewIntent(Intent paramIntent) { super.onNewIntent(paramIntent); this.mFragments.noteStateNotSaved(); } public void onPanelClosed(int paramInt, Menu paramMenu) { switch (paramInt) { } for (;;) { super.onPanelClosed(paramInt, paramMenu); return; this.mFragments.dispatchOptionsMenuClosed(paramMenu); } } protected void onPause() { super.onPause(); this.mResumed = false; if (this.mHandler.hasMessages(2)) { this.mHandler.removeMessages(2); onResumeFragments(); } this.mFragments.dispatchPause(); } protected void onPostResume() { super.onPostResume(); this.mHandler.removeMessages(2); onResumeFragments(); this.mFragments.execPendingActions(); } public boolean onPreparePanel(int paramInt, View paramView, Menu paramMenu) { boolean bool = false; if ((paramInt == 0) && (paramMenu != null)) { if (this.mOptionsMenuInvalidated) { this.mOptionsMenuInvalidated = false; paramMenu.clear(); onCreatePanelMenu(paramInt, paramMenu); } if ((!(super.onPreparePanel(paramInt, paramView, paramMenu) | this.mFragments.dispatchPrepareOptionsMenu(paramMenu))) || (!paramMenu.hasVisibleItems())) {} } for (bool = true;; bool = super.onPreparePanel(paramInt, paramView, paramMenu)) { return bool; } } void onReallyStop() { if (this.mLoadersStarted) { this.mLoadersStarted = false; if (this.mLoaderManager != null) { if (this.mRetaining) { break label41; } this.mLoaderManager.doStop(); } } for (;;) { this.mFragments.dispatchReallyStop(); return; label41: this.mLoaderManager.doRetain(); } } protected void onResume() { super.onResume(); this.mHandler.sendEmptyMessage(2); this.mResumed = true; this.mFragments.execPendingActions(); } protected void onResumeFragments() { this.mFragments.dispatchResume(); } public Object onRetainCustomNonConfigurationInstance() { return null; } public final Object onRetainNonConfigurationInstance() { if (this.mStopped) { doReallyStop(true); } Object localObject1 = onRetainCustomNonConfigurationInstance(); ArrayList localArrayList = this.mFragments.retainNonConfig(); int i = 0; if (this.mAllLoaderManagers != null) { LoaderManagerImpl[] arrayOfLoaderManagerImpl = new LoaderManagerImpl[this.mAllLoaderManagers.size()]; this.mAllLoaderManagers.values().toArray(arrayOfLoaderManagerImpl); if (arrayOfLoaderManagerImpl != null) { int j = 0; if (j < arrayOfLoaderManagerImpl.length) { LoaderManagerImpl localLoaderManagerImpl = arrayOfLoaderManagerImpl[j]; if (localLoaderManagerImpl.mRetaining) { i = 1; } for (;;) { j++; break; localLoaderManagerImpl.doDestroy(); this.mAllLoaderManagers.remove(localLoaderManagerImpl.mWho); } } } } Object localObject2; if ((localArrayList == null) && (i == 0) && (localObject1 == null)) { localObject2 = null; } for (;;) { return localObject2; localObject2 = new NonConfigurationInstances(); ((NonConfigurationInstances)localObject2).activity = null; ((NonConfigurationInstances)localObject2).custom = localObject1; ((NonConfigurationInstances)localObject2).children = null; ((NonConfigurationInstances)localObject2).fragments = localArrayList; ((NonConfigurationInstances)localObject2).loaders = this.mAllLoaderManagers; } } protected void onSaveInstanceState(Bundle paramBundle) { super.onSaveInstanceState(paramBundle); Parcelable localParcelable = this.mFragments.saveAllState(); if (localParcelable != null) { paramBundle.putParcelable("android:support:fragments", localParcelable); } } protected void onStart() { super.onStart(); this.mStopped = false; this.mReallyStopped = false; this.mHandler.removeMessages(1); if (!this.mCreated) { this.mCreated = true; this.mFragments.dispatchActivityCreated(); } this.mFragments.noteStateNotSaved(); this.mFragments.execPendingActions(); if (!this.mLoadersStarted) { this.mLoadersStarted = true; if (this.mLoaderManager == null) { break label162; } this.mLoaderManager.doStart(); } for (;;) { this.mCheckedForLoaderManager = true; this.mFragments.dispatchStart(); if (this.mAllLoaderManagers == null) { break; } LoaderManagerImpl[] arrayOfLoaderManagerImpl = new LoaderManagerImpl[this.mAllLoaderManagers.size()]; this.mAllLoaderManagers.values().toArray(arrayOfLoaderManagerImpl); if (arrayOfLoaderManagerImpl == null) { break; } for (int i = 0; i < arrayOfLoaderManagerImpl.length; i++) { LoaderManagerImpl localLoaderManagerImpl = arrayOfLoaderManagerImpl[i]; localLoaderManagerImpl.finishRetain(); localLoaderManagerImpl.doReportStart(); } label162: if (!this.mCheckedForLoaderManager) { this.mLoaderManager = getLoaderManager(null, this.mLoadersStarted, false); if ((this.mLoaderManager != null) && (!this.mLoaderManager.mStarted)) { this.mLoaderManager.doStart(); } } } } protected void onStop() { super.onStop(); this.mStopped = true; this.mHandler.sendEmptyMessage(1); this.mFragments.dispatchStop(); } public void startActivityForResult(Intent paramIntent, int paramInt) { if ((paramInt != -1) && ((0xFFFF0000 & paramInt) != 0)) { throw new IllegalArgumentException("Can only use lower 16 bits for requestCode"); } super.startActivityForResult(paramIntent, paramInt); } public void startActivityFromFragment(Fragment paramFragment, Intent paramIntent, int paramInt) { if (paramInt == -1) { super.startActivityForResult(paramIntent, -1); } for (;;) { return; if ((0xFFFF0000 & paramInt) != 0) { throw new IllegalArgumentException("Can only use lower 16 bits for requestCode"); } super.startActivityForResult(paramIntent, (1 + paramFragment.mIndex << 16) + (0xFFFF & paramInt)); } } public void supportInvalidateOptionsMenu() { if (Build.VERSION.SDK_INT >= 11) { ActivityCompatHoneycomb.invalidateOptionsMenu(this); } for (;;) { return; this.mOptionsMenuInvalidated = true; } } static class FragmentTag { public static final int[] Fragment; public static final int Fragment_id = 1; public static final int Fragment_name = 0; public static final int Fragment_tag = 2; static { int[] arrayOfInt = new int[3]; arrayOfInt[0] = 16842755; arrayOfInt[1] = 16842960; arrayOfInt[2] = 16842961; Fragment = arrayOfInt; } } static final class NonConfigurationInstances { Object activity; HashMap<String, Object> children; Object custom; ArrayList<Fragment> fragments; HashMap<String, LoaderManagerImpl> loaders; } } /* Location: F:\neembuu\Research\android_apps\output_jar.jar * Qualified Name: android.support.v4.app.FragmentActivity * JD-Core Version: 0.7.0.1 */