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:uk.co.nevarneyok.ux.MainActivity.java

/**
 * Method clear fragment backStack (back history). On bottom of stack will remain Fragment added by {@link #addInitialFragment()}.
 *///from   w  ww  .  j  av  a  2s. c  om
private void clearBackStack() {
    Timber.d("Clearing backStack");
    FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() > 0) {
        if (BuildConfig.DEBUG) {
            for (int i = 0; i < manager.getBackStackEntryCount(); i++) {
                Timber.d("BackStack content_%d= id: %d, name: %s", i, manager.getBackStackEntryAt(i).getId(),
                        manager.getBackStackEntryAt(i).getName());
            }
        }
        FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0);
        manager.popBackStackImmediate(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }
    Timber.d("backStack cleared.");
    //        TODO maybe implement own fragment backStack handling to prevent banner fragment recreation during clearing.
    //        http://stackoverflow.com/questions/12529499/problems-with-android-fragment-back-stack<
}

From source file:com.andryr.musicplayer.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.
    int id = item.getItemId();
    switch (id) {
    case android.R.id.home:
        FragmentManager fm = getSupportFragmentManager();
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStack();/*from w w w.jav  a  2  s.  co m*/
        } else {
            showLibrary();
        }
        return true;
    case R.id.action_search:
        NavigationUtils.showSearchActivity(this, SEARCH_ACTIVITY);
        return true;
    case R.id.action_equalizer:
        NavigationUtils.showEqualizer(this);
        return true;
    case R.id.action_preferences:
        NavigationUtils.showPreferencesActivity(this);
        break;
    case R.id.action_sleep_timer:
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        if (SleepTimer.isTimerSet(prefs)) {
            DialogUtils.showSleepTimerDialog(this, mSleepTimerDialogListener);
        } else {
            DialogUtils.showSleepHmsPicker(this, mHmsPickerHandler);
        }
        break;
    }
    return super.onOptionsItemSelected(item);
}

From source file:com.example.android.networkconnect.MainActivity.java

@Override
public void onBackPressed() {

    Log.i("ActivityInTab", "onBackPressed");

    FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() > 1) {
        super.onBackPressed();
    } else {//from  www  .  j  a v a2s. c  o  m
        super.onBackPressed();
    }
}

From source file:cn.edu.zafu.corepage.base.BaseActivity.java

/**
 * fragment// w  w w.  j ava  2  s.  c om
 * @param pageName page??
 * @return ?Fragment
 */
@Override
public boolean findPage(String pageName) {
    int size = mActivities.size();
    int j = size - 1;
    boolean hasFind = false;
    for (; j >= 0; j--) {
        WeakReference<BaseActivity> ref = mActivities.get(j);
        if (ref != null) {
            BaseActivity item = ref.get();
            if (item == null) {
                Log.d(TAG, "item is null");
                continue;
            }
            FragmentManager manager = item.getSupportFragmentManager();
            int count = manager.getBackStackEntryCount();
            for (int i = count - 1; i >= 0; i--) {
                String name = manager.getBackStackEntryAt(i).getName();
                if (name.equalsIgnoreCase(pageName)) {
                    hasFind = true;
                    break;
                }
            }
            if (hasFind) {
                break;
            }
        }
    }
    return hasFind;
}

From source file:cn.edu.zafu.corepage.base.BaseActivity.java

/**
 * ?fragmnet/*from  w  w  w .ja  v a  2  s. c o m*/
 *
 * @return ?Fragment
 */
public BaseFragment getActiveFragment() {
    if (this.isFinishing()) {
        return null;
    }
    FragmentManager manager = this.getSupportFragmentManager();
    if (manager != null) {
        int count = manager.getBackStackEntryCount();
        if (count > 0) {
            String tag = manager.getBackStackEntryAt(count - 1).getName();
            return (BaseFragment) manager.findFragmentByTag(tag);
        }
    }
    return null;
}

From source file:cn.edu.zafu.corepage.base.BaseActivity.java

/**
 * ??/*from  ww w . j  a  va 2s  .c o m*/
 * @param fragmentTag fragmenttag
 * @return Fragment??
 */
@Override
public boolean isFragmentTop(String fragmentTag) {
    int size = mActivities.size();
    if (size > 0) {
        WeakReference<BaseActivity> ref = mActivities.get(size - 1);
        BaseActivity item = ref.get();
        if (item != null && item == this) {
            FragmentActivity activity = item;
            FragmentManager manager = activity.getSupportFragmentManager();
            if (manager != null) {
                int count = manager.getBackStackEntryCount();
                if (count >= 1) {
                    FragmentManager.BackStackEntry entry = manager.getBackStackEntryAt(count - 1);
                    if (entry.getName().equalsIgnoreCase(fragmentTag)) {
                        return true;
                    }
                }
            }
        }
    }
    return false;
}

From source file:ru.orangesoftware.financisto.activity.MainActivity.java

@Override
public void onBackPressed() {
    FragmentManager fragmentManager = getSupportFragmentManager();
    if (fragmentManager.getBackStackEntryCount() > 1) {
        fragmentManager.popBackStack();//ww w. j a v a2s. co m
        mDrawerLayout.closeDrawers();
    } else {
        finishAfterTransition();
    }
}

From source file:org.gateshipone.malp.application.activities.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.

    FragmentManager fragmentManager = getSupportFragmentManager();

    switch (item.getItemId()) {
    case android.R.id.home:
        if (fragmentManager.getBackStackEntryCount() > 0) {
            onBackPressed();/*from   ww  w  . ja v a  2s .  co  m*/
        } else {
            // back stack empty so enable navigation drawer

            mDrawerToggle.setDrawerIndicatorEnabled(true);

            if (mDrawerToggle.onOptionsItemSelected(item)) {
                return true;
            }
        }
    }

    return super.onOptionsItemSelected(item);
}

From source file:org.wikipedia.gallery.GalleryActivity.java

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

    setContentView(R.layout.activity_gallery);
    initToolbar();/*from   w  w w  . j ava  2s. c  o  m*/

    toolbarContainer = findViewById(R.id.gallery_toolbar_container);
    infoContainer = findViewById(R.id.gallery_info_container);
    setBackgroundGradient(infoContainer, Gravity.BOTTOM);

    progressBar = findViewById(R.id.gallery_progressbar);

    descriptionText = findViewById(R.id.gallery_description_text);
    descriptionText.setShadowLayer(2, 1, 1, color(R.color.black54));
    descriptionText.setMovementMethod(linkMovementMethod);

    licenseIcon = findViewById(R.id.gallery_license_icon);
    licenseIcon.setOnClickListener(licenseShortClickListener);
    licenseIcon.setOnLongClickListener(licenseLongClickListener);

    creditText = findViewById(R.id.gallery_credit_text);
    creditText.setShadowLayer(2, 1, 1, color(R.color.black54));

    errorView = findViewById(R.id.view_gallery_error);
    ((ImageView) errorView.findViewById(R.id.view_wiki_error_icon)).setColorFilter(color(R.color.base70));
    ((TextView) errorView.findViewById(R.id.view_wiki_error_text)).setTextColor(color(R.color.base70));
    errorView.setBackClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });
    errorView.setRetryClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            errorView.setVisibility(View.GONE);
            loadGalleryContent();
        }
    });

    if (getIntent().hasExtra(EXTRA_PAGETITLE)) {
        pageTitle = getIntent().getParcelableExtra(EXTRA_PAGETITLE);
    }
    initialFilename = getIntent().getStringExtra(EXTRA_FILENAME);
    wiki = getIntent().getParcelableExtra(EXTRA_WIKI);

    galleryCache = new HashMap<>();
    galleryAdapter = new GalleryItemAdapter(this);
    galleryPager = findViewById(R.id.gallery_item_pager);
    galleryPager.setAdapter(galleryAdapter);
    pageChangeListener = new GalleryPageChangeListener();
    galleryPager.addOnPageChangeListener(pageChangeListener);

    funnel = new GalleryFunnel(app, wiki, getIntent().getIntExtra(EXTRA_SOURCE, 0));

    if (savedInstanceState == null) {
        if (initialFilename != null) {
            funnel.logGalleryOpen(pageTitle, initialFilename);
        }
    } else {
        controlsShowing = savedInstanceState.getBoolean("controlsShowing");
        initialImageIndex = savedInstanceState.getInt("pagerIndex");
        // if we have a savedInstanceState, then the initial index overrides
        // the initial Title from our intent.
        initialFilename = null;

        FragmentManager fm = getSupportFragmentManager();
        if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            for (int i = 0; i < fm.getBackStackEntryCount(); i++) {
                Fragment fragment = fm.findFragmentById(fm.getBackStackEntryAt(i).getId());
                if (fragment instanceof GalleryItemFragment) {
                    ft.remove(fragment);
                }
            }
            ft.commitAllowingStateLoss();
        }
    }
    toolbarContainer.post(new Runnable() {
        @Override
        public void run() {
            setControlsShowing(controlsShowing);
        }
    });
    loadGalleryContent();
}

From source file:gr.scify.newsum.ui.Facebook.java

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

    if ((getResources().getConfiguration().screenLayout
            & Configuration.SCREENLAYOUT_SIZE_MASK) != Configuration.SCREENLAYOUT_SIZE_NORMAL
            & (getResources().getConfiguration().screenLayout
                    & Configuration.SCREENLAYOUT_SIZE_MASK) != Configuration.SCREENLAYOUT_SIZE_SMALL) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    }/* w ww.j a va  2  s  .c om*/

    SharedPreferences userlang = getSharedPreferences("lang", 0);
    String newlang = userlang.getString("lang", Locale.getDefault().getLanguage());
    // Changed getApplicationContext() to "this"
    Setlanguage.updateLanguage(this, newlang);

    uiHelper = new UiLifecycleHelper(this, callback);
    uiHelper.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
        String name = savedInstanceState.getString(PENDING_ACTION_BUNDLE_KEY);
        pendingAction = PendingAction.valueOf(name);
    }

    setContentView(R.layout.facebook);

    Bundle extras = getIntent().getExtras();
    summaryF = extras.getString("summaryF");

    loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() {
        @Override
        public void onUserInfoFetched(GraphUser user) {
            Facebook.this.user = user;
            updateUI();
            // It's possible that we were waiting for this.user to be populated in order to post a
            // status update.
            handlePendingAction();
        }
    });

    profilePictureView = (ProfilePictureView) findViewById(R.id.profilePicture);
    greeting = (TextView) findViewById(R.id.greeting);

    postStatusUpdateButton = (Button) findViewById(R.id.postStatusUpdateButton);
    postStatusUpdateButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            onClickPostStatusUpdate();
        }
    });

    controlsContainer = (ViewGroup) findViewById(R.id.main_ui_container);

    final FragmentManager fm = getSupportFragmentManager();
    Fragment fragment = fm.findFragmentById(R.id.fragment_container);
    if (fragment != null) {
        // If we're being re-created and have a fragment, we need to a) hide the main UI controls and
        // b) hook up its listeners again.
        controlsContainer.setVisibility(View.GONE);
    }

    // Listen for changes in the back stack so we know if a fragment got popped off because the user
    // clicked the back button.
    fm.addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
        @Override
        public void onBackStackChanged() {
            if (fm.getBackStackEntryCount() == 0) {
                // We need to re-show our UI.
                controlsContainer.setVisibility(View.VISIBLE);
            }
        }
    });
}