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:r2b.apps.view.base.BaseActivity.java

/***
 * Clear the back stack to its initial state.
 * Normally with the first fragment setted when activity is created firstly.
 *//*from   w w w  .ja  va2 s  .  co m*/
public void clearBackStack() {
    android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();

    while (fragmentManager.getBackStackEntryCount() > INITIAL_BACK_STACK_SIZE) {
        // If you use popBackStack you probably setup an infinite loop.
        fragmentManager.popBackStackImmediate();
    }

}

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

@NonNull
@Override/*from w  ww.  j av  a2  s. c o m*/
public FragmentTransaction updateTransaction(@NonNull Context context,
        @NonNull FragmentTransaction fragmentTransaction, @NonNull FragmentManager fragmentManager,
        @NonNull MicroFragmentHost host, @NonNull MicroFragment<?> previousStep) {
    Fragment fragment = mNextStep.fragment(context, host);
    Bundle args = new Bundle(1);
    args.putParcelable(ARG_ENVIRONMENT, new BasicMicroFragmentEnvironment<>(mNextStep, host));
    fragment.setArguments(args);

    fragmentTransaction.add(R.id.microfragments_host, fragment);
    if (fragmentManager.getBackStackEntryCount() > 0 || !previousStep.skipOnBack()) {
        fragmentTransaction.addToBackStack(mNextStep.skipOnBack() ? "skip" : "noskip");
    }
    return fragmentTransaction;
}

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

@NonNull
@Override//w ww  . j  a v  a  2s  . c o  m
public FragmentTransaction updateTransaction(@NonNull Context context,
        @NonNull FragmentTransaction fragmentTransaction, @NonNull FragmentManager fragmentManager,
        @NonNull MicroFragmentHost host, @NonNull MicroFragment<?> previousStep) {
    Fragment fragment = mNextStep.fragment(context, host);

    Bundle args = new Bundle(1);
    args.putParcelable(ARG_ENVIRONMENT, new BasicMicroFragmentEnvironment<>(mNextStep, host));
    fragment.setArguments(args);

    fragmentTransaction.replace(R.id.microfragments_host, fragment);
    if (fragmentManager.getBackStackEntryCount() > 0 || !previousStep.skipOnBack()) {
        fragmentTransaction.addToBackStack(mNextStep.skipOnBack() ? "skip" : "noskip");
    }
    return fragmentTransaction;
}

From source file:com.LMO.capstone.KnoWITHerbalMain.java

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    long currentTime = System.currentTimeMillis();
    FragmentManager fm = getSupportFragmentManager();
    if (fm.getBackStackEntryCount() == 0) {
        if ((currentTime - lastPress) > 3000) {
            Toast.makeText(this, "Press back again to exit", Toast.LENGTH_LONG).show();
            lastPress = currentTime;/*from   w  ww .  ja v  a  2s  . c  o  m*/
        } else {
            super.onBackPressed();
        }
    } else {
        super.onBackPressed();
    }

}

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();/* w w w .  ja  va  2 s.  c o  m*/
            } 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:com.projeto_les.easymeal.MainActivity.java

@Override
public void onBackPressed() {
    int fragments = getSupportFragmentManager().getBackStackEntryCount();
    if (fragments == 1) {
        finish();//from  ww w  . j a  va 2  s .c  om
        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.munger.passwordkeeper.MainActivity.java

/**
 * Handle the behaviour of the back button.
 *///w ww  .  j a v  a2  s. c o  m
@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:net.peterkuterna.android.apps.devoxxfrsched.ui.HomeActivity.java

@Override
public void onBeforeCommitReplaceFragment(FragmentManager fm, FragmentTransaction ft, Fragment fragment) {
    super.onBeforeCommitReplaceFragment(fm, ft, fragment);
    if (fragment instanceof SessionsFragment) {
        mPauseBackStackWatcher = true;// w  w w . j av a 2 s  . co m
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStackImmediate();
        }
        mPauseBackStackWatcher = false;
        ft.addToBackStack(null);
    } else if (fragment instanceof SessionDetailFragment) {
        mPauseBackStackWatcher = true;
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStackImmediate();
        }
        mPauseBackStackWatcher = false;
        ft.addToBackStack(null);
    }
}

From source file:com.cnm.cnmrc.fragment.vodtvch.VodTvch.java

/**
 * ? ? ?  fragment VodTvch ?? loadingDataForSidrebar()? no addToBackStack ??.
 * ? MainActivity onBackPressed()? back key ?.
 * ? VodTvch fragment addToBackStack ?? ?,  ?? Base back key . 
 * back key?   ??... Base? destoryView()?  ? ?.
 * no addToBackStack(null)//from  w  w  w .  jav a  2s.c om
 * ft.replace(R.id.loading_data_panel, base)
 */
private void loadingDataForSidrebar() {
    FragmentManager fm = getActivity().getSupportFragmentManager();
    Log.i("hwang", "before vodTvch fragment count (no add to stack) --> "
            + Integer.toString(fm.getBackStackEntryCount()));

    FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
    Class<?> classObject;
    try {
        String packageName = this.getClass().getPackage().getName() + ".";
        classObject = Class.forName(packageName + mClassTypeArray[selectedCategory]); // CommonList, VodSemiDetail, VodDetail, TvchSemiDetail, TvchDetail
        Object obj = classObject.newInstance();

        Base base = ((Base) obj).newInstance(mCategoryArray[selectedCategory], true); // true : 1 depth (vod:VodSemiDetail, VodSemiDetail, VodSemiDetail, VodList)
        // true : 1 depth (tvch: TvchSemiDetail, TvchList, TvchSemiDetail, TvchSemiDetail)

        //ft.addToBackStack(null);   // addTBackStack  onBackPressed() ? ?... remove fragment onDestroyView() ?.
        ft.replace(R.id.loading_data_panel, base);
        ft.commit();
        //fm.executePendingTransactions();   // fragment? ? pending recursive error,  ?? pending .
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (java.lang.InstantiationException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

    Log.i("hwang", "after vodTvch fragment count (no add to stack) --> "
            + Integer.toString(fm.getBackStackEntryCount()));

    // ------------------------------------
    // ? bottom menu? depth level 
    // ------------------------------------
    Fragment f = getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment_rc_bottom_menu);
    if (f != null)
        ((RcBottomMenu) f).setDepthLevelClear(); // set 1 depth
}

From source file:com.google.plus.wigwamnow.MainActivity.java

/**
 * Callback when the state of the Facebook Session changes.
 *
 * @param session the session which changed.
 * @param state the current state of the session.
 * @param exception any exception which occurred.
 *///  w ww .j av  a2s. com
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
    // Only make changes if the activity is visible
    if (mIsResumed) {
        FragmentManager manager = getSupportFragmentManager();
        // Get the number of entries in the back stack
        int backStackSize = manager.getBackStackEntryCount();
        // Clear the back stack
        for (int i = 0; i < backStackSize; i++) {
            manager.popBackStack();
        }
        if (state.isOpened()) {
            // Send the authorization information to the web server
            sendFbTokenToServer();
            // Show the authenticated fragment
            showFragment(SELECTION, false);
        } else if (state.isClosed()) {
            // Show the login fragment
            saveProvider(SocialProviderConstants.NONE);
            showFragment(SPLASH, false);
        }
    }
}