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

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

Introduction

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

Prototype

public abstract BackStackEntry getBackStackEntryAt(int index);

Source Link

Document

Return the BackStackEntry at index index in the back stack; entries start index 0 being the bottom of the stack.

Usage

From source file:com.projeto_les.easymeal.MainActivity.java

@Override
public void onBackPressed() {
    int fragments = getSupportFragmentManager().getBackStackEntryCount();
    if (fragments == 1) {
        finish();//from   w ww. ja v  a  2  s.  c  o  m
        return;
    }

    FragmentManager fragmentManager = getSupportFragmentManager();
    String fragmentTag = fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1)
            .getName();

    if (fragmentTag.equals(SelectIngredientsFragment.TAG)) {
        //selectIngredientsFragment.updateView();
        clearSearch(true);
    }

    super.onBackPressed();
}

From source file:com.cyanogenmod.eleven.ui.activities.HomeActivity.java

/**
 * Immediately clears the backstack//w w  w  .j a  v a2  s  . co  m
 */
protected void clearBackStack() {
    final FragmentManager fragmentManager = getSupportFragmentManager();
    if (fragmentManager.getBackStackEntryCount() > 0) {
        final int id = fragmentManager.getBackStackEntryAt(0).getId();
        fragmentManager.popBackStackImmediate(id, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }
}

From source file:com.vinexs.eeb.BaseFragment.java

public void addFragment(int viewId, Fragment fragment) {
    if (fragment.isAdded()) {
        return;// ww  w.j ava2  s. com
    }
    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  .j a v a 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 = 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.fuusio.api.flow.AbstractFlow.java

@Override
@SuppressWarnings("uncheckked")
public void goBack() {
    final FragmentManager fragmentManager = mFragmentContainer.getSupportFragmentManager();
    int index = fragmentManager.getBackStackEntryCount() - 1;

    while (index >= 0) {
        final FragmentManager.BackStackEntry entry = fragmentManager.getBackStackEntryAt(index);
        final String tag = entry.getName();
        final FlowFragment fragment = (FlowFragment) fragmentManager.findFragmentByTag(tag);

        if (isActiveView(fragment)) {
            fragmentManager.popBackStackImmediate();
            index--;/*  ww  w . j  ava  2 s  . com*/
        } else {
            mFragmentContainer.showFlowFragment(this, fragment, tag);
            mBackStackSize = fragmentManager.getBackStackEntryCount();
            break;
        }
    }
}

From source file:net.oremland.rss.reader.MainActivity.java

private int idForPreviousBackStackEntry(FragmentManager manager) {
    int entryCount = manager.getBackStackEntryCount();
    int initialCount = this.initialBackStackCount();
    if (entryCount > initialCount) {
        FragmentManager.BackStackEntry entry = manager.getBackStackEntryAt(entryCount - initialCount);
        return Integer.parseInt(entry.getName());
    }//  w  w  w  .  ja  v a 2  s. c om
    return R.id.feeds_list_fragment;
}

From source file:com.munger.passwordkeeper.MainActivity.java

/**
 * Handle the behaviour of the back button.
 *///from  ww w. j a  v a2  s. c  om
@Override
public void onBackPressed() {
    FragmentManager mgr = getSupportFragmentManager();
    int cnt = mgr.getBackStackEntryCount();

    if (cnt > 0) {
        BackStackEntry entry = mgr.getBackStackEntryAt(cnt - 1);
        String name = entry.getName();

        //warn any fragments that care that the back button has been pressed.
        //if they return true then cancel the back button action
        boolean keepGoing = true;

        if (name.equals(ViewDetailFragment.getName())) {
            keepGoing = viewDetailFragment.backPressed();
        }

        if (!keepGoing)
            return;

        //reset the view every time a fragment is popped off the stack
        super.onBackPressed();
        invalidateOptionsMenu();
        setEditable(false);
    }
}

From source file:com.vinexs.eeb.BaseActivity.java

public Fragment getTopFragment() {
    FragmentManager fragMgr = getSupportFragmentManager();
    FragmentManager.BackStackEntry backEntry = fragMgr
            .getBackStackEntryAt(fragMgr.getBackStackEntryCount() - 1);
    String backEntryName = backEntry.getName();
    return fragMgr.findFragmentByTag(backEntryName);
}

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);
        }/*from   w ww  .  j  av a 2 s .c  o  m*/
    }
}

From source file:dev.drsoran.moloko.activities.AbstractTasksListActivity.java

private BackStackEntry getTopOfBackStack() {
    final FragmentManager fragmentManager = getSupportFragmentManager();
    final int backStackSize = fragmentManager.getBackStackEntryCount();

    return backStackSize > 0 ? fragmentManager.getBackStackEntryAt(backStackSize - 1) : null;
}