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:br.ufjf.app.ui.DrawerActivity.java

@Override
public void onBackPressed() {
    // If the drawer is open, back will close it
    if (drawerLayout != null && drawerLayout.isDrawerOpen(GravityCompat.START)) {
        drawerLayout.closeDrawers();/*  w  w w  . j  a v a  2s .c  o  m*/
        return;
    }
    // Otherwise, it may return to the anterior fragment stack
    FragmentManager fragmentManager = getSupportFragmentManager();
    if (fragmentManager.getBackStackEntryCount() > 0)
        fragmentManager.popBackStack();
    else
        // Lastly, it will rely on the system behavior for back
        super.onBackPressed();

}

From source file:com.doplgangr.secrecy.views.MainActivity.java

void addFragment(final Fragment fragment, int transition1, int transition2) {
    if (mFragmentNameList.contains(fragment.getClass())) {
        mNavigation.setSelectedItem(mFragmentNameList.indexOf(fragment.getClass()));
    }//  www .  ja  va  2s  . co  m
    String tag = fragment.getClass().getName();
    FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() >= 1) {

        String activeFragmentTag = getSupportFragmentManager()
                .getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1).getName();
        Fragment activeFragment = getSupportFragmentManager().findFragmentByTag(activeFragmentTag);
        // Don't switch fragment if already active
        if (activeFragment.getClass().equals(fragment.getClass())) {
            return;
        }
        //clear all except lowest
        FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0);
        manager.popBackStackImmediate(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }
    FragmentTransaction transaction = fragmentManager.beginTransaction()
            .setCustomAnimations(transition1, transition2).replace(R.id.content_frame, fragment, tag);
    if (fragment.getClass() != VaultsListFragment.class) {
        transaction = transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).addToBackStack(tag);
    }
    transaction.commit();
}

From source file:org.dmfs.android.microfragments.transitions.BackWithResultTransition.java

@Override
public void prepare(@NonNull Context context, @NonNull FragmentManager fragmentManager,
        @NonNull MicroFragmentHost host, @NonNull MicroFragment<?> previousStep) {
    fragmentManager.popBackStackImmediate();
    // make sure we also skip all skipable steps.
    if (fragmentManager.getBackStackEntryCount() > 0 && "skip".equals(
            fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1).getName())) {
        fragmentManager.popBackStackImmediate("skip", FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }//from  w  w w.  j  a va  2 s .  c  o  m
}

From source file:org.gnucash.android.ui.transactions.TransactionsActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(findViewById(android.R.id.content).getWindowToken(), 0);
        FragmentManager fm = getSupportFragmentManager();
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStack();//from  w w w .jav  a 2  s .  c  om
        } else {
            Intent accountsActivityIntent = new Intent(this, AccountsActivity.class);
            accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(accountsActivityIntent);
            finish();
        }
        return true;

    default:
        return false;
    }
}

From source file:com.afayear.android.client.activity.DualPaneActivity.java

@Override
public void onBackStackChanged() {
    if (isDualPaneMode()) {
        final FragmentManager fm = getSupportFragmentManager();
        final int count = fm.getBackStackEntryCount();
        final Fragment left_pane_fragment = fm.findFragmentById(PANE_LEFT);
        final Fragment right_pane_fragment = fm.findFragmentById(PANE_RIGHT);
        final View main_view = findViewById(R.id.main);
        final boolean left_pane_used = left_pane_fragment != null && left_pane_fragment.isAdded();
        final boolean right_pane_used = right_pane_fragment != null && right_pane_fragment.isAdded();
        if (count > 0) {
            final BackStackEntry entry = fm.getBackStackEntryAt(count - 1);
            if (entry == null)
                return;
            final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry);
            if (fragment instanceof Panes.Right) {
                showRightPane();/*from   w ww  . j a va  2s  .c  o m*/
            } else if (fragment instanceof Panes.Left) {
                showLeftPane();
            }
        } else {
            if (fm.findFragmentById(R.id.main) != null || left_pane_used) {
                showLeftPane();
            } else if (right_pane_used) {
                showRightPane();
            }
        }
        if (main_view != null) {
            final int visibility = left_pane_used ? View.GONE : View.VISIBLE;
            // Visibility changed, so start animation.
            if (main_view.getVisibility() != visibility) {
                final Animation anim = AnimationUtils.loadAnimation(this,
                        left_pane_used ? android.R.anim.fade_out : android.R.anim.fade_in);
                main_view.startAnimation(anim);
            }
            main_view.setVisibility(visibility);
        }
    }
}

From source file:de.fahrgemeinschaft.BaseActivity.java

@Override
public void onBackStackChanged() {
    FragmentManager fm = getSupportFragmentManager();
    int backstack = fm.getBackStackEntryCount();
    if (fm.getBackStackEntryCount() == 0) {
        setTitle("");
    } else {/*from w w  w .ja  v  a2s .  c  o  m*/
        setTitle(fm.getBackStackEntryAt(backstack - 1).getName());
    }
}

From source file:de.fahrgemeinschaft.BaseActivity.java

protected void showFragment(Fragment f, String name, int in, int out) {
    setTitle(name);/* w  ww . j  ava 2 s. com*/
    FragmentManager fm = getSupportFragmentManager();
    for (int i = fm.getBackStackEntryCount() - 1; i >= 0; i--) {
        if (fm.getBackStackEntryAt(i).getName().equals(name)) {
            for (int j = fm.getBackStackEntryCount() - 1; j > i; j--) {
                fm.popBackStackImmediate();
            }
            return;
        }
    }
    fm.beginTransaction().setCustomAnimations(in, R.anim.do_nix, R.anim.do_nix, out)
            .add(R.id.container, f, name).addToBackStack(name).commit();
}

From source file:com.audiokernel.euphonyrmt.library.SimpleLibraryActivity.java

private void refreshTitleFromCurrentFragment() {
    final FragmentManager supportFM = getSupportFragmentManager();
    final int fmStackCount = supportFM.getBackStackEntryCount();

    if (fmStackCount > 0) {
        setTitle(supportFM.getBackStackEntryAt(fmStackCount - 1).getBreadCrumbTitle());
    } else {/*from   ww w  .  java 2s .  c o m*/
        final Fragment displayedFragment = getSupportFragmentManager().findFragmentById(R.id.root_frame);
        if (displayedFragment instanceof BrowseFragment) {
            setTitle(((BrowseFragment) displayedFragment).getTitle());
        } else {
            setTitle(displayedFragment.toString());
        }
    }
}

From source file:org.openhab.habdroid.ui.AboutActivity.java

private void updateTitle() {
    FragmentManager fm = getSupportFragmentManager();
    int count = fm.getBackStackEntryCount();
    @StringRes/*  ww w  .j  a  v  a 2s .c  o  m*/
    int titleResId = count > 0 ? fm.getBackStackEntryAt(count - 1).getBreadCrumbTitleRes()
            : R.string.about_title;
    setTitle(titleResId);
}

From source file:org.mariotaku.twidere.activity.support.DualPaneActivity.java

@Override
public void onBackStackChanged() {
    if (!isDualPaneMode())
        return;//www  .  ja  v a 2  s. c  o  m
    final FragmentManager fm = getSupportFragmentManager();
    final int count = fm.getBackStackEntryCount();
    final Fragment leftPaneFragment = fm.findFragmentById(PANE_LEFT);
    final Fragment rightPaneFragment = fm.findFragmentById(PANE_RIGHT);
    final boolean leftPaneUsed = leftPaneFragment != null && leftPaneFragment.isAdded();
    final boolean rightPaneUsed = rightPaneFragment != null && rightPaneFragment.isAdded();
    if (count > 0) {
        final BackStackEntry entry = fm.getBackStackEntryAt(count - 1);
        if (entry == null)
            return;
        final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry);
        if (fragment instanceof Panes.Right) {
            showRightPane();
        } else if (fragment instanceof Panes.Left) {
            showLeftPane();
        }
    } else {
        if (fm.findFragmentById(getMainViewId()) != null || leftPaneUsed) {
            showLeftPane();
        } else if (rightPaneUsed) {
            showRightPane();
        }
    }
    updateMainViewVisibility();
}