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

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

Introduction

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

Prototype

public abstract boolean popBackStackImmediate();

Source Link

Document

Like #popBackStack() , but performs the operation immediately inside of the call.

Usage

From source file:com.sonymobile.dronecontrol.activity.MainActivity.java

private void clearBackStack() {
    final FragmentManager fragmentManager = getSupportFragmentManager();
    while (fragmentManager.getBackStackEntryCount() != 0) {
        fragmentManager.popBackStackImmediate();
    }/*from w  ww. j a  v a 2  s.  c  om*/
}

From source file:com.jefftharris.passwdsafe.FileListActivity.java

/**
 * Change the view of the activity/* w w w .jav a  2  s  .co  m*/
 */
private void doChangeView(ChangeMode mode, Fragment filesFrag, Fragment syncFrag) {
    boolean clearBackStack = false;
    boolean supportsBack = false;
    switch (mode) {
    case VIEW_FILES_INIT: {
        clearBackStack = true;
        break;
    }
    case VIEW_ABOUT:
    case VIEW_FILES:
    case VIEW_PREFERENCES: {
        supportsBack = true;
        break;
    }
    }

    FragmentManager fragMgr = getSupportFragmentManager();
    FragmentTransaction txn = fragMgr.beginTransaction();
    txn.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);

    if (clearBackStack) {
        //noinspection StatementWithEmptyBody
        while (fragMgr.popBackStackImmediate()) {
            // Clear back stack
        }
    }

    if (filesFrag != null) {
        txn.replace(R.id.files, filesFrag);
    } else {
        Fragment currFrag = fragMgr.findFragmentById(R.id.files);
        if ((currFrag != null) && currFrag.isAdded()) {
            txn.remove(currFrag);
        }
    }

    if (syncFrag != null) {
        txn.replace(R.id.sync, syncFrag);
    } else {
        Fragment currFrag = fragMgr.findFragmentById(R.id.sync);
        if ((currFrag != null) && currFrag.isAdded()) {
            txn.remove(currFrag);
        }
    }

    if (supportsBack) {
        txn.addToBackStack(null);
    }

    txn.commit();
}

From source file:com.dwdesign.tweetings.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) {
                onBackPressed();//from w  w  w  .  jav a 2 s  .  c om
            } else if (!FragmentManagerTrojan.isStateSaved(fm)) {
                for (int i = 0; i < count; i++) {
                    fm.popBackStackImmediate();
                }
                setSupportProgressBarIndeterminateVisibility(false);
            }
        } else {
            onBackPressed();
        }
        break;
    }
    }
    return super.onOptionsItemSelected(item);
}

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();/*from   w w w . ja v a 2 s  .c  o  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
@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--;//from  w  w  w  .  ja  va  2s.  c  o  m
        } else {
            mFragmentContainer.showFlowFragment(this, fragment, tag);
            mBackStackSize = fragmentManager.getBackStackEntryCount();
            break;
        }
    }
}

From source file:com.ereinecke.eatsafe.MainActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.

    switch (item.getItemId()) {
    // respond to the action bar's Up/Home button.  Should only be visible when
    // the TabPagerFragment isn't showing.

    case android.R.id.home:
        FragmentManager fm = getSupportFragmentManager();
        fm.popBackStackImmediate();
        showBackArrow(false);//from ww w.  j  a  v  a 2s  .  co  m
        return true;

    case R.id.action_scan:
        launchScannerIntent();
        return true;

    // noinspection SimplifiableIfStatement
    case R.id.action_login:
        if (isLoggedIn()) {
            logOut();
        } else {
            DialogFragment loginDialog = new LoginDialog();
            loginDialog.show(getSupportFragmentManager(), "login");
            // getSupportFragmentManager().executePendingTransactions();
        }
        return true;

    case R.id.action_sensitivities:
        SuperActivityToast.create(this, Utility.errorStyle()).setText(getString(R.string.no_sensitivities_yet))
                .show();
        return true;

    case R.id.action_about_off:
        // Call OFF webview
        launchWebFragment(getString(R.string.about_off), getString(R.string.off_domain));
        return true;

    case R.id.action_about:
        launchAboutFragment();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

From source file:com.btmura.android.reddit.app.AbstractBrowserActivity.java

private void safePopBackStackImmediate() {
    FragmentManager fm = getSupportFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        fm.removeOnBackStackChangedListener(this);
        fm.popBackStackImmediate();
        fm.addOnBackStackChangedListener(this);
    }//www  .j a  va2 s.  com
}

From source file:org.mythdroid.activities.MDFragmentActivity.java

/**
 * Reset fragments - //from  w  w w  .  j a va2 s  . c o  m
 * Called when configuration (orientation) changes - 
 * Default implementation replaces the fragment occupying the 'content' id
 * with a new instance of the same class
 */
protected void resetContentView() {
    FragmentManager fm = getSupportFragmentManager();
    Fragment f = null;

    try {
        f = fm.findFragmentById(android.R.id.content);
    } catch (Exception e) {
        ErrUtil.reportErr(this, e);
        return;
    }

    if (f == null) {
        ErrUtil.reportErr(this, Messages.getString("MDFragmentActivity.0")); //$NON-NLS-1$
        return;
    }

    Bundle args = f.getArguments();
    try {
        f = f.getClass().newInstance();
    } catch (Exception e) {
        ErrUtil.reportErr(this, e);
        return;
    }
    f.setArguments(args);

    fm.popBackStackImmediate();
    FragmentTransaction ft = fm.beginTransaction().replace(android.R.id.content, f,
            f.getClass().getSimpleName());
    if (fm.getBackStackEntryCount() > 0)
        ft.addToBackStack(null);
    ft.commitAllowingStateLoss();
    fm.executePendingTransactions();
}

From source file:org.mythdroid.activities.Recordings.java

@Override
protected void resetContentView() {

    final FragmentManager fm = getSupportFragmentManager();

    ArrayList<String> backStackFrags = new ArrayList<String>();

    // At this stage dualPane reflects the old configuration
    boolean dualPane = findViewById(R.id.recdetails) != null;

    /* The old backstack is useless now, save the relevant entries */
    int backStackSize = fm.getBackStackEntryCount();
    for (int i = 0; i < backStackSize; i++) {
        Fragment lf = fm.findFragmentById(R.id.reclistframe);
        Fragment df = fm.findFragmentById(R.id.recdetails);
        Fragment f = (!dualPane || df == null ? lf : df);
        backStackFrags.add(0, f.getClass().getName());
        fm.popBackStackImmediate();
    }/*  ww w . j a  v a  2s  .  c o m*/

    setContentView(R.layout.recordings);
    dualPane = findViewById(R.id.recdetails) != null;

    // Now dualPane reflects the new configuration

    listFragment = new RecListFragment();

    fm.beginTransaction().replace(R.id.reclistframe, listFragment).commitAllowingStateLoss();
    fm.executePendingTransactions();

    listFragment.setAdapter(recordings);

    // Restore the backstack
    for (String frag : backStackFrags) {
        // RecListFragment has handled this..
        if (dualPane && frag.equals(RecDetailFragment.class.getName()))
            continue;
        try {
            FragmentTransaction ft = fm.beginTransaction();
            Fragment f = (Fragment) Class.forName(frag).newInstance();
            ft.replace((dualPane ? R.id.recdetails : R.id.reclistframe), f, f.getClass().getSimpleName())
                    .addToBackStack(null).commitAllowingStateLoss();
        } catch (Exception e) {
            ErrUtil.reportErr(this, e);
            return;
        }
    }

    fm.executePendingTransactions();

}

From source file:nu.firetech.android.pactrack.frontend.MainActivity.java

@Override
public void showParcel(long rowId, boolean forceRefresh) {
    FragmentManager manager = getSupportFragmentManager();

    if (manager.findFragmentById(R.id.details_frag) == null) {
        // First load of fragment or one pane layout
        ParcelDetailsFragment newFragment = new ParcelDetailsFragment();
        Bundle args = new Bundle();
        args.putLong(ParcelDbAdapter.KEY_ROWID, rowId);
        if (forceRefresh) {
            args.putBoolean(ParcelDetailsFragment.FORCE_REFRESH, true);
        }/*  ww w  . jav  a 2s  .c om*/
        newFragment.setArguments(args);

        int viewId = R.id.details_frag;
        boolean fullscreen = false;
        if (findViewById(viewId) == null) {
            viewId = R.id.fragment_container;
            fullscreen = true;

            // Avoid duplicated parcels in back stack
            if (manager.findFragmentById(viewId) instanceof ParcelDetailsFragment
                    && ((ParcelDetailsFragment) manager.findFragmentById(viewId)).getCurrentRowId() == rowId) {
                manager.popBackStackImmediate();
            }
        }

        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(viewId, newFragment);
        if (fullscreen) {
            transaction.addToBackStack(null);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
        transaction.commit();

    } else {
        ParcelDetailsFragment fragment = (ParcelDetailsFragment) manager.findFragmentById(R.id.details_frag);
        fragment.switchParcel(rowId, forceRefresh);
    }

    if (findViewById(R.id.list_frag) != null) {
        ParcelListFragment list = (ParcelListFragment) manager.findFragmentById(R.id.list_frag);
        list.selectRowItem(rowId);
        if (forceRefresh) {
            list.refreshDone();
        }
    }
}