Example usage for android.support.v4.app FragmentManager getBackStackEntryCount

List of usage examples for android.support.v4.app FragmentManager getBackStackEntryCount

Introduction

In this page you can find the example usage for android.support.v4.app FragmentManager getBackStackEntryCount.

Prototype

public abstract int getBackStackEntryCount();

Source Link

Document

Return the number of entries currently in the back stack.

Usage

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*/
    }
}