List of usage examples for android.support.v4.app FragmentManager getBackStackEntryCount
public abstract int getBackStackEntryCount();
From source file:pl.openrnd.managers.fragmentsswapper.SingleContainerFragmentSwapper.java
private boolean findCurrentFragment() { mContentFragment = (F) getFragmentManager().findFragmentById(mInitializationParams.getContentFrame()); if (mContentFragment != null) { mContentFragment.assignFragmentSwapper(this); }//from w ww . ja va2 s . co m FragmentManager fragmentManager = getFragmentManager(); int entryCount = fragmentManager.getBackStackEntryCount(); Log.v(TAG, String.format("findCurrentFragment()... entries [%d]", entryCount)); return mContentFragment != null; }
From source file:com.dwdesign.tweetings.activity.SearchActivity.java
@Override public void onBackStackChanged() { super.onBackStackChanged(); if (!isDualPaneMode()) return;/*from w w w . j a va2 s . c o m*/ final FragmentManager fm = getSupportFragmentManager(); final Fragment left_pane_fragment = fm.findFragmentById(PANE_LEFT); final boolean left_pane_used = left_pane_fragment != null && left_pane_fragment.isAdded(); setPagingEnabled(!left_pane_used); final int count = fm.getBackStackEntryCount(); if (mActionBar != null && mDisplayAppIcon) { mActionBar.setDisplayHomeAsUpEnabled(count > 0); } if (count == 0) { bringLeftPaneToFront(); } }
From source file:pl.openrnd.managers.fragmentsswapper.SingleContainerFragmentSwapper.java
/** * Clears fragments back stack removing all fragments from the hierarchy. *///from ww w . j a v a 2s . c o m public void clearStack() { mPopInProgress = true; setAnimationEnabled(false); FragmentManager fragmentManager = getFragmentManager(); int entryCount = fragmentManager.getBackStackEntryCount(); Log.v(TAG, String.format("clearStack()... entries [%d]", entryCount)); for (int i = 0; i < entryCount; ++i) { try { fragmentManager.popBackStackImmediate(); } catch (Exception exc) { Log.e(TAG, "clearStack()", exc); } } findCurrentFragment(); Log.v(TAG, "clearStack()... DONE"); setAnimationEnabled(true); mPopInProgress = false; }
From source file:org.mariotaku.twidere.activity.LinkHandlerActivity.java
@Override public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { case MENU_HOME: { final FragmentManager fm = getSupportFragmentManager(); if (isDualPaneMode()) { final int count = fm.getBackStackEntryCount(); if (count == 0) { // NavUtils.navigateUpFromSameTask(this); onBackPressed();/*www. j av a 2 s.co m*/ } else if (!FragmentManagerTrojan.isStateSaved(fm)) { for (int i = 0; i < count; i++) { fm.popBackStackImmediate(); } setSupportProgressBarIndeterminateVisibility(false); } } else { // NavUtils.navigateUpFromSameTask(this); onBackPressed(); } break; } } return super.onOptionsItemSelected(item); }
From source file:org.fuusio.api.flow.AbstractFlow.java
@Override public void onBackStackChanged() { final FragmentManager fragmentManager = mFragmentContainer.getSupportFragmentManager(); final int oldBackStackSize = mBackStackSize; mBackStackSize = fragmentManager.getBackStackEntryCount(); if (mBackStackSize > 0 && oldBackStackSize > mBackStackSize) { final FragmentManager.BackStackEntry entry = fragmentManager.getBackStackEntryAt(mBackStackSize - 1); final String tag = entry.getName(); final Fragment fragment = fragmentManager.findFragmentByTag(tag); if (fragment instanceof View) { onNavigatedBackTo((View) fragment); }//w w w. j a va 2s. c om } }
From source file:com.cnm.cnmrc.fragment.vodtvch.Base.java
/** * ? depth? fragment Base ?? loadingData()? addToBackStack? ?. * ? MainActivity onBackPressed()? back key ?. * ? isFirstDepth false . 4? ?(,?,TV,)? . * vod (1st selectedCategory arg : 2nd title arg) : (0:) / (1:?) / (2:TV) / (3:) *//*from ww w .j av a 2s. c o m*/ protected void loadingData(int selectedCategory, String title, boolean isFirstDepth, Bundle bundle) { // ft.replace(R.id.loading_data_panel, base)? base? // base? isSldebar? ? ?, ? ?, newInstance() ? . // this.isFirstDepth = isFirstDepth; // 1 depth? ft.replace(R.id.loading_data_panel, base)? base? ?? hide. if (this.isFirstDepth) { // ? ?? ?? ? ? ??. Fragment f = getActivity().getSupportFragmentManager().findFragmentById(R.id.loading_data_panel); FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); if (f != null) { if (f.isVisible()) ft.hide(f).commit(); } if (!isFirstDepth) setTitle(title); } else { Fragment f = getActivity().getSupportFragmentManager() .findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE); FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); if (f != null) { if (f.isVisible()) ft.hide(f).commit(); } setTitle(title); } FragmentManager fm = getActivity().getSupportFragmentManager(); Log.i("hwang", "before adding base fragment count --> " + Integer.toString(fm.getBackStackEntryCount())); FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); Class<?> classObject; try { String packageName = this.getClass().getPackage().getName() + "."; classObject = Class.forName(packageName + mClassTypeArray[selectedCategory]); Object obj = classObject.newInstance(); Log.v("hwang", "classObject : " + obj.getClass()); Base base = ((Base) obj).newInstance(selectedCategory, title, isFirstDepth, bundle); Fragment f = getActivity().getSupportFragmentManager().findFragmentById(R.id.vod_tvch_panel); if (f != null) { ft.add(R.id.loading_data_panel, base, ((MainActivity) getActivity()).TAG_FRAGMENT_BASE); ft.addToBackStack(null); // push to "fragment stack" for back key operation } ft.commit(); fm.executePendingTransactions(); // ------------------------------------ // ? bottom menu? depth level // ------------------------------------ addDepthLevel(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (java.lang.InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } FragmentManager fm1 = getActivity().getSupportFragmentManager(); Log.i("hwang", "after adding base fragment count --> " + Integer.toString(fm1.getBackStackEntryCount())); }
From source file:com.kayzook.bracediary.BaseActivity.java
@Override public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); String fragmentSimpleName = fragment.getClass().getSimpleName(); if (!fragmentSimpleName.equals("CustomDialogFragment")) { FragmentManager fm = getSupportFragmentManager(); for (int i = 0; i < fm.getBackStackEntryCount(); ++i) { fm.popBackStack();/* w ww .ja v a 2s.c om*/ } } }
From source file:com.vinexs.eeb.BaseFragment.java
public void addFragment(int viewId, Fragment fragment) { if (fragment.isAdded()) { return;/*from ww w . ja va 2 s .c om*/ } FragmentManager fragMgr = getActivity().getSupportFragmentManager(); FragmentTransaction transaction = fragMgr.beginTransaction(); FragmentManager.BackStackEntry lastEntry = fragMgr.getBackStackEntryCount() == 0 ? null : fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1); // Transaction options String fragName = fragment.getClass().getSimpleName(); String breadCrumbTitle; String breadCrumbShortTitle; int animationEnter = 0; int animationExit = 0; Boolean addToBackStack = false; // Fill options Bundle args = fragment.getArguments(); if (args != null) { if (args.containsKey("animationEnter") && args.containsKey("animationExit")) { animationEnter = args.getInt("animationEnter"); animationExit = args.getInt("animationExit"); } if (args.containsKey("breadCrumbTitle")) { breadCrumbTitle = args.getString("breadCrumbTitle"); } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("breadCrumbShortTitle")) { breadCrumbShortTitle = args.getString("breadCrumbShortTitle"); } else { breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("fragmentName")) { fragName = args.getString("fragmentName"); } if (args.containsKey("addToBackStack")) { addToBackStack = args.getBoolean("addToBackStack"); } } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } // Set option to fragment manager if (animationEnter != 0 && animationExit != 0) { transaction.setCustomAnimations(animationEnter, animationExit); } if (breadCrumbTitle != null && !breadCrumbTitle.isEmpty()) { transaction.setBreadCrumbTitle(breadCrumbTitle); } if (breadCrumbShortTitle != null && !breadCrumbShortTitle.isEmpty()) { transaction.setBreadCrumbShortTitle(breadCrumbShortTitle); } if (transaction.isAddToBackStackAllowed() && addToBackStack) { transaction.addToBackStack(fragName); } // Add fragment transaction.add(viewId, fragment, fragName).commitAllowingStateLoss(); }
From source file:com.vinexs.eeb.BaseFragment.java
public void replaceFragment(int viewId, Fragment fragment) { if (fragment.isAdded()) { return;// w w w . ja va2 s. c o m } FragmentManager fragMgr = getActivity().getSupportFragmentManager(); FragmentTransaction transaction = fragMgr.beginTransaction(); FragmentManager.BackStackEntry lastEntry = fragMgr.getBackStackEntryCount() == 0 ? null : fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1); // Transaction options String fragName = fragment.getClass().getSimpleName(); String breadCrumbTitle; String breadCrumbShortTitle; int animationEnter = 0; int animationExit = 0; Boolean addToBackStack = true; // Fill options Bundle args = fragment.getArguments(); if (args != null) { if (args.containsKey("animationEnter") && args.containsKey("animationExit")) { animationEnter = args.getInt("animationEnter"); animationExit = args.getInt("animationExit"); } if (args.containsKey("breadCrumbTitle")) { breadCrumbTitle = args.getString("breadCrumbTitle"); } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("breadCrumbShortTitle")) { breadCrumbShortTitle = args.getString("breadCrumbShortTitle"); } else { breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } if (args.containsKey("fragmentName")) { fragName = args.getString("fragmentName"); } if (args.containsKey("addToBackStack")) { addToBackStack = args.getBoolean("addToBackStack"); } } else { breadCrumbTitle = (lastEntry != null) ? lastEntry.getBreadCrumbTitle().toString() : Utility.getAppName(getActivity()); breadCrumbShortTitle = (lastEntry != null) ? lastEntry.getBreadCrumbShortTitle().toString() : Utility.getAppName(getActivity()); } // Set option to fragment manager if (animationEnter != 0 && animationExit != 0) { transaction.setCustomAnimations(animationEnter, animationExit); } if (breadCrumbTitle != null && !breadCrumbTitle.isEmpty()) { transaction.setBreadCrumbTitle(breadCrumbTitle); } if (breadCrumbShortTitle != null && !breadCrumbShortTitle.isEmpty()) { transaction.setBreadCrumbShortTitle(breadCrumbShortTitle); } if (transaction.isAddToBackStackAllowed() && addToBackStack) { transaction.addToBackStack(fragName); } // Replace fragment transaction.replace(viewId, fragment, fragName).commitAllowingStateLoss(); }
From source file:org.comixwall.pffw.MainActivity.java
private void popAllBackStack() { // TODO: What is the best way to pop all backstack items? // It does NOT help to use a special StackBottom name while adding the first Dashboard to the backstack, // then we could pop all items simply by: // fm.popBackStackImmediate("StackBottom", FragmentManager.POP_BACK_STACK_INCLUSIVE); // But if we add the first Dashboard to the backstack, we get a blank page when the user presses the back button. FragmentManager fm = getSupportFragmentManager(); while (fm.getBackStackEntryCount() > 0) { fm.popBackStackImmediate();/*from w w w. j a v a 2 s .c o m*/ } }