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:com.recurly.androidsdk.BaseActivity.java

protected void popFragment() {
    FragmentManager fragmentManager = getSupportFragmentManager();

    int backStackEntryCount = fragmentManager.getBackStackEntryCount();

    if (backStackEntryCount >= 1) {
        // remove existing fragment
        fragmentManager.executePendingTransactions();

        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        BaseFragment currentFragment = (BaseFragment) fragmentManager
                .findFragmentByTag("" + fragmentManager.getBackStackEntryCount());

        BaseFragment nextFragment = (BaseFragment) fragmentManager
                .findFragmentByTag("" + (fragmentManager.getBackStackEntryCount() - 1));

        if (nextFragment == null) {
            // no more fragments, so exit
            finish();// w w  w .j a  v  a 2s .c  om
            return;
        }

        fragmentTransaction.remove(currentFragment);

        fragmentTransaction.show(nextFragment);

        fragmentManager.popBackStack();

        fragmentTransaction.commit();

    } else {
        // going to exit..
        super.onBackPressed();
    }
}

From source file:pl.edu.pw.eiti.groupbuying.android.ConfirmPaymentActivity.java

@Override
protected void onResumeFragments() {
    super.onResumeFragments();
    if (restoredFragment) {
        return;/*from ww  w. j a v  a  2s .  co  m*/
    }
    FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() == 0) {
        showFragment(SUMMARY, false);
    }
}

From source file:com.mocap.MainActivity.java

@Override
public void onBackPressed() {

    FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() > 1) {
        super.onBackPressed();
    } else {/*from w ww. j av  a2s  .  co m*/
        super.onBackPressed();
    }
}

From source file:com.blogspot.ksoichiro.android.sample.transition.test.NormalTransitionTest.java

public void testNormalTransition() {
    // Activity?// ww  w .  j ava2 s.  c om
    ActivityMonitor monitorMain = new ActivityMonitor(MainActivity.class.getCanonicalName(), null, false);
    ActivityMonitor monitorSecond = new ActivityMonitor(SecondActivity.class.getCanonicalName(), null, false);
    getInstrumentation().addMonitor(monitorMain);
    getInstrumentation().addMonitor(monitorSecond);

    // ??Fragment?BackStack??????
    FragmentActivity activity = (FragmentActivity) getActivity();
    FragmentManager fm = activity.getSupportFragmentManager();
    assertEquals(0, fm.getBackStackEntryCount());

    // ??Fragment?
    Fragment frag = fm.findFragmentByTag("tag");
    assertNotNull(frag);
    assertEquals(Fragment1.class, frag.getClass());

    // ??(Fragment)?
    TouchUtils.tapView(this, getActivity().findViewById(R.id.btnFrag1));
    getInstrumentation().waitForIdleSync();

    // BackStack?Fragment???(?)???
    assertEquals(1, fm.getBackStackEntryCount());

    // ??(Fragment)?????
    frag = fm.findFragmentByTag("tag");
    assertNotNull(frag);
    assertEquals(Fragment2.class, frag.getClass());

    // ??(Activity)?
    TouchUtils.tapView(this, getActivity().findViewById(R.id.btnFrag2));
    getInstrumentation().waitForMonitorWithTimeout(monitorSecond, 2000);

    // ?Activity???????
    assertEquals(1, monitorSecond.getHits());

    // ?
    sendKeys(KeyEvent.KEYCODE_BACK);
    getInstrumentation().waitForIdleSync();

    // ??(Activity)??????
    assertEquals(1, monitorMain.getHits());

    // ???Fragment?BackStack????????
    activity = (FragmentActivity) monitorMain.getLastActivity();
    fm = activity.getSupportFragmentManager();
    assertEquals(1, fm.getBackStackEntryCount());
    frag = fm.findFragmentByTag("tag");
    assertNotNull(frag);
    assertEquals(Fragment2.class, frag.getClass());

    // ?
    sendKeys(KeyEvent.KEYCODE_BACK);
    getInstrumentation().waitForIdleSync();

    // ???Fragment????BackStack?????????
    assertEquals(0, fm.getBackStackEntryCount());
    frag = fm.findFragmentByTag("tag");
    assertNotNull(frag);
    assertEquals(Fragment1.class, frag.getClass());
}

From source file:org.gnucash.android.ui.settings.PreferenceActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            android.app.FragmentManager fm = getFragmentManager();
            if (fm.getBackStackEntryCount() > 0) {
                fm.popBackStack();//from   w  ww .  j  av a2s  .c  o  m
            } else {
                finish();
            }
        } else {
            finish();
        }
        return true;

    default:
        return false;
    }
}

From source file:com.example.snapcacheexample.MainActivity.java

private void onSessionStateChange(Session session, SessionState state, Exception exception) {
    if (isResumed) {
        FragmentManager manager = getSupportFragmentManager();
        int backStackSize = manager.getBackStackEntryCount();
        for (int i = 0; i < backStackSize; i++) {
            manager.popBackStack();/* w  w  w  .j a  va  2s. c  o m*/
        }
        // check for the OPENED state instead of session.isOpened() since for the
        // OPENED_TOKEN_UPDATED state, the selection fragment should already be showing.
        if (state.equals(SessionState.OPENED)) {
            showFragment(SELECTION, false);
        } else if (state.isClosed()) {
            showFragment(SPLASH, false);
        }
    }
}

From source file:us.bridgeses.minder_tasks.viewtranslators.TaskActivity.java

@Override
public void onBackPressed() {
    if (!presenter.onBackPressed()) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        if (fragmentManager.getBackStackEntryCount() != 0) {
            fragmentManager.popBackStack();
        } else {/*from w  w w.j  ava  2s. c  o m*/
            super.onBackPressed();
        }
    }
}

From source file:org.mariotaku.twidere.activity.SettingsActivity.java

void showFragment(final Fragment fragment) {
    final FragmentManager fm = getSupportFragmentManager();
    final int entry_count = fm.getBackStackEntryCount();
    final FragmentTransaction ft = fm.beginTransaction();
    for (int i = 0; i < entry_count; i++) {
        final int id = fm.getBackStackEntryAt(i).getId();
        ft.remove(fm.findFragmentById(id));
    }//from  w  w  w . j  av a  2s.c o m
    ft.commitAllowingStateLoss();
    showFragment(fragment, false);
}

From source file:io.github.waka.sevenhack.activities.MainActivity.java

@Override
public void onBackPressed() {
    if (binding.drawer.isDrawerOpen(GravityCompat.START)) {
        binding.drawer.closeDrawer(GravityCompat.START);
        return;/*from  www.j  av a 2 s. c o  m*/
    }
    FragmentManager fm = getSupportFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
        return;
    }
    super.onBackPressed();
}

From source file:com.kyakujin.android.tagnotepad.ui.NoteActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Intent intent = getIntent();//  www  .java  2 s  .c o  m
    String action = intent.getAction();
    // DBG
    //  FragmentManager.enableDebugLogging(true);
    //  Log.d("debug", "ActivityTest: onCreate start"); // DBG

    // ?????????NoteEditFragment??????
    if (Intent.ACTION_SEND.equals(action)) {
        Bundle extras = intent.getExtras();

        if (extras != null) {
            String extBody = extras.getString(Intent.EXTRA_TEXT);
            String extTitle = extras.getString(Intent.EXTRA_SUBJECT);
            Bundle bundle = new Bundle();
            if (extBody != null) {
                bundle.putString(Config.SHARED_BODY, extBody);
            }
            if (extTitle != null) {
                bundle.putString(Config.SHARED_TITLE, extTitle);
            }

            bundle.putInt("action", Config.ACTION_SENDED);
            Fragment fg = NoteEditFragment.newInstance();
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction transaction = manager.beginTransaction();
            fg.setArguments(bundle);
            transaction.add(android.R.id.content, fg, Config.TAG_NOTEEDIT_FRAGM);
            transaction.commit();
        }
    } else {
        Fragment fg = NoteListFragment.newInstance();
        if (!fg.isAdded()) {
            // NoteListFragment?????
            FragmentManager fm = getSupportFragmentManager();
            for (int i = 0; i < fm.getBackStackEntryCount(); i++) {
                fm.popBackStack();
            }

            getSupportFragmentManager().beginTransaction()
                    .replace(android.R.id.content, fg, Config.TAG_NOTELIST_FRAGM).commit();
        }
    }

    handleIntent(getIntent());
}