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

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

Introduction

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

Prototype

int POP_BACK_STACK_INCLUSIVE

To view the source code for android.support.v4.app FragmentManager POP_BACK_STACK_INCLUSIVE.

Click Source Link

Document

Flag for #popBackStack(String,int) and #popBackStack(int,int) : If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn't match is found or the bottom of the stack is reached.

Usage

From source file:fr.mixit.android.ui.PlanningActivity.java

@Override
public void startActivityFromFragment(Fragment fragment, Intent intent, int requestCode) {
    final Uri uri = intent.getData();
    if (uri != null && uri.getAuthority().equals(MixItContract.Sessions.CONTENT_URI.getAuthority())) {
        final boolean addToBackStack = intent.getBooleanExtra(IntentUtils.EXTRA_FROM_ADD_TO_BACKSTACK, false);
        final FragmentManager fm = getSupportFragmentManager();
        // SESSION
        if (uri.getEncodedPath().startsWith(SLASH + MixItContract.PATH_SESSIONS)
                || uri.getEncodedPath().startsWith(SLASH + MixItContract.PATH_LIGHTNINGS)) {
            if (UIUtils.isTablet(this)) {
                if (addToBackStack) {
                    final SessionDetailsFragment frag = SessionDetailsFragment.newInstance(intent);
                    final FragmentTransaction ft = fm.beginTransaction();
                    ft.replace(R.id.content_session_details, frag);
                    ft.addToBackStack(null);
                    if (mTopFragCommitId == -1) {
                        mTopFragCommitId = ft.commit();
                    } else {
                        ft.commit();//from w ww . j a v  a 2s .c o m
                    }
                    return;
                } else {
                    if (mTopFragCommitId != -1) {
                        fm.popBackStack(mTopFragCommitId, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                        mTopFragCommitId = -1;
                    }
                    if (mSessionDetailsFrag != null) {
                        final int sessionId = Integer.parseInt(MixItContract.Sessions.getSessionId(uri));
                        mSessionDetailsFrag.setSessionId(sessionId);
                        return;
                    } else {
                        Log.e(TAG, "no fragment session details found but device is tablet");
                    }
                }
            } else {
                super.startActivityFromFragment(fragment, intent, requestCode);
                return;
            }
        } else
        // MEMBERS
        if (uri.getEncodedPath().startsWith(SLASH + MixItContract.PATH_MEMBERS)
                || uri.getEncodedPath().startsWith(SLASH + MixItContract.PATH_SPEAKERS)) {
            if (UIUtils.isTablet(this)) {
                final MemberDetailsFragment frag = MemberDetailsFragment.newInstance(intent);
                final FragmentTransaction ft = fm.beginTransaction();
                ft.replace(R.id.content_session_details, frag);
                ft.addToBackStack(null);
                if (mTopFragCommitId == -1) {
                    mTopFragCommitId = ft.commit();
                } else {
                    ft.commit();
                }
                return;
            } else {
                super.startActivityFromFragment(fragment, intent, requestCode);
                return;
            }
        }
    }
    super.startActivityFromFragment(fragment, intent, requestCode);
}

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()));
    }//from  w  ww . ja  v  a 2 s.c o 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:com.nikhilnayak.games.octoshootar.HomeActivity.java

@Override
public void onNextMissionRequested() {
    getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.game_home_fragment_container, new GameModeChooserFragment()).addToBackStack(null)
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();
}

From source file:com.waz.zclient.pages.main.MainPhoneFragment.java

@Override
public void onShowOnboardingHint(final OnBoardingHintType hintType, int delayMilSec) {
    if (hintType == OnBoardingHintType.NONE) {
        return;//  www .  ja  va 2s  . co m
    }

    new Handler(Looper.myLooper()).postDelayed(new Runnable() {
        @Override
        public void run() {
            if (getContainer() == null || !isResumed()) {
                return;
            }

            // Additional check if hint types match. Some animations go through conversation list and might trigger pull down hint
            Page currentPage = getControllerFactory().getNavigationController().getCurrentPage();
            IConversation currentConversation = getStoreFactory().getConversationStore()
                    .getCurrentConversation();

            boolean currentConversationHasDraft = TextUtils.isEmpty(getStoreFactory().getDraftStore()
                    .getDraft(getStoreFactory().getConversationStore().getCurrentConversation()));
            OnBoardingHintType currentHintType = getControllerFactory().getOnboardingController()
                    .getCurrentOnBoardingHint(currentPage, currentConversation, currentConversationHasDraft);
            if (hintType != currentHintType) {
                return;
            }

            getChildFragmentManager().popBackStackImmediate(OnBoardingHintFragment.TAG,
                    FragmentManager.POP_BACK_STACK_INCLUSIVE);
            getChildFragmentManager().beginTransaction()
                    .setCustomAnimations(R.anim.fade_in, R.anim.slide_out_to_top, R.anim.slide_in_from_bottom,
                            R.anim.fade_out)
                    .add(R.id.fl_fragment_main_onboarding, OnBoardingHintFragment.newInstance(hintType),
                            OnBoardingHintFragment.TAG)
                    .addToBackStack(OnBoardingHintFragment.TAG).commit();
        }
    }, delayMilSec);
}

From source file:org.videolan.vlc2.gui.MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    if (!LibVlcUtil.hasCompatibleCPU(this)) {
        Log.e(TAG, LibVlcUtil.getErrorMsg());
        Intent i = new Intent(this, CompatErrorActivity.class);
        startActivity(i);/*  w  w  w  .  j ava  2  s. co  m*/
        finish();
        super.onCreate(savedInstanceState);
        return;
    }

    /* Get the current version from package */
    PackageInfo pinfo = null;
    try {
        pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
    } catch (NameNotFoundException e) {
        Log.e(TAG, "package info not found.");
    }
    if (pinfo != null)
        mVersionNumber = pinfo.versionCode;

    /* Get settings */
    mSettings = PreferenceManager.getDefaultSharedPreferences(this);

    /* Check if it's the first run */
    mFirstRun = mSettings.getInt(PREF_FIRST_RUN, -1) != mVersionNumber;
    if (mFirstRun) {
        Editor editor = mSettings.edit();
        editor.putInt(PREF_FIRST_RUN, mVersionNumber);
        editor.commit();
    }

    try {
        // Start LibVLC
        VLCInstance.getLibVlcInstance();
    } catch (LibVlcException e) {
        e.printStackTrace();
        Intent i = new Intent(this, CompatErrorActivity.class);
        i.putExtra("runtimeError", true);
        i.putExtra("message", "LibVLC failed to initialize (LibVlcException)");
        startActivity(i);
        finish();
        super.onCreate(savedInstanceState);
        return;
    }

    super.onCreate(savedInstanceState);

    /*** Start initializing the UI ***/

    /* Enable the indeterminate progress feature */
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

    // Set up the sliding menu
    mMenu = (SlidingMenu) LayoutInflater.from(this).inflate(R.layout.sliding_menu, null);
    changeMenuOffset();

    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    boolean enableBlackTheme = pref.getBoolean("enable_black_theme", false);
    if (enableBlackTheme)
        setTheme(R.style.Theme_VLC_Black);

    View v_main = LayoutInflater.from(this).inflate(R.layout.main, null);
    setContentView(v_main);

    mSlidingPane = (SlidingPaneLayout) v_main.findViewById(R.id.pane);
    mSlidingPane.setPanelSlideListener(mPanelSlideListener);

    View sidebar = LayoutInflater.from(this).inflate(R.layout.sidebar, null);
    final ListView listView = (ListView) sidebar.findViewById(android.R.id.list);
    listView.setFooterDividersEnabled(true);
    mSidebarAdapter = new SidebarAdapter(this);
    listView.setAdapter(mSidebarAdapter);
    mMenu.setMenu(sidebar);
    mMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT, true);

    /* Initialize UI variables */
    mInfoLayout = v_main.findViewById(R.id.info_layout);
    mInfoProgress = (ProgressBar) v_main.findViewById(R.id.info_progress);
    mInfoText = (TextView) v_main.findViewById(R.id.info_text);
    mAudioPlayerFilling = v_main.findViewById(R.id.audio_player_filling);
    mRootContainer = (RelativeLayout) v_main.findViewById(R.id.root_container);

    /* Set up the action bar */
    prepareActionBar();

    /* Set up the sidebar click listener */
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            SidebarAdapter.SidebarEntry entry = (SidebarEntry) listView.getItemAtPosition(position);
            Fragment current = getSupportFragmentManager().findFragmentById(R.id.fragment_placeholder);

            if (current == null
                    || (entry != null && current.getTag().equals(entry.id))) { /* Already selected */
                mMenu.showContent();
                return;
            }

            // This should not happen
            if (entry == null || entry.id == null)
                return;

            /*
             * Clear any backstack before switching tabs. This avoids
             * activating an old backstack, when a user hits the back button
             * to quit
             */
            getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

            /* Slide down the audio player */
            slideDownAudioPlayer();

            /* Switch the fragment */
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.fragment_placeholder, getFragment(entry.id), entry.id);
            ft.commit();
            mCurrentFragment = entry.id;

            /*
             * Set user visibility hints to work around weird Android
             * behaviour of duplicate context menu events.
             */
            current.setUserVisibleHint(false);
            getFragment(mCurrentFragment).setUserVisibleHint(true);
            // HACK ALERT: Set underlying audio browser to be invisible too.
            if (current.getTag().equals("tracks"))
                getFragment("audio").setUserVisibleHint(false);

            mMenu.showContent();
        }
    });

    /* Set up the audio player */
    mAudioPlayer = new AudioPlayer();
    mAudioController = AudioServiceController.getInstance();

    getSupportFragmentManager().beginTransaction().replace(R.id.audio_player, mAudioPlayer).commit();

    if (mFirstRun) {
        /*
         * The sliding menu is automatically opened when the user closes
         * the info dialog. If (for any reason) the dialog is not shown,
         * open the menu after a short delay.
         */
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                mMenu.showMenu();
            }
        }, 500);
    }

    /* Prepare the progressBar */
    IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_SHOW_PROGRESSBAR);
    filter.addAction(ACTION_HIDE_PROGRESSBAR);
    filter.addAction(ACTION_SHOW_TEXTINFO);
    filter.addAction(ACTION_SHOW_PLAYER);
    registerReceiver(messageReceiver, filter);

    /* Reload the latest preferences */
    reloadPreferences();
}

From source file:com.kayzook.bracediary.BaseActivity.java

@Override
public void onBackPressed() {
    super.onBackPressed();
    if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
        getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }//from w w w  .  j av  a2 s.c o m
}

From source file:key.secretkey.MainActivity.java

private void checkLocalRepository(File localDir) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    if (localDir != null && settings.getBoolean("repository_initialized", false)) {
        Log.d("PASS", "Check, dir: " + localDir.getAbsolutePath());
        // do not push the fragment if we already have it
        if (fragmentManager.findFragmentByTag("PasswordsList") == null
                || settings.getBoolean("repo_changed", false)) {
            settings.edit().putBoolean("repo_changed", false).apply();

            plist = new PasswordFragment();
            Bundle args = new Bundle();
            args.putString("Path",
                    PasswordStorage.getRepositoryDirectory(getApplicationContext()).getAbsolutePath());

            // if the activity was started from the autofill settings, the
            // intent is to match a clicked pwd with app. pass this to fragment
            if (getIntent().getBooleanExtra("matchWith", false)) {
                args.putBoolean("matchWith", true);
            }//from   www .j  a  v a 2s  .  c  om

            plist.setArguments(args);

            getSupportActionBar().show();
            getSupportActionBar().setDisplayHomeAsUpEnabled(false);

            fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

            fragmentTransaction.replace(R.id.main_layout, plist, "PasswordsList");
            fragmentTransaction.commit();
        }
    } else {
        //            getSupportActionBar().hide();

        fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        //            Snackbar snack = Snackbar.make(findViewById(R.id.main_layout), "You fucked up, you shouldn't be here XD",
        //                    Snackbar.LENGTH_INDEFINITE);
        //            snack.show();

        createNewRepository();

        //            ToCloneOrNot cloneFrag = new ToCloneOrNot();
        //            fragmentTransaction.replace(R.id.main_layout, cloneFrag, "ToCloneOrNot");
        //            fragmentTransaction.commit();
    }
}

From source file:com.nekomeshi312.whiteboardcorrection.WhiteBoardCorrectionActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    if (MyDebug.DEBUG)
        Log.i(LOG_TAG, item.toString());
    switch (item.getItemId()) {
    case android.R.id.home:
        getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        if (!mWhiteBoardCheckInfo.mIsCaptured) {
            deleteCopyImg();//from  w  ww  . j  a  va  2  s. com
        }
        mWhiteBoardCheckInfo.resetInfo();
        return true;
    case R.id.menu_about:
        ShowAboutDlgTask task = new ShowAboutDlgTask();
        task.execute();
        return true;
    default:
        break;
    }
    return false;
}

From source file:com.waz.zclient.pages.main.conversation.ConversationManagerFragment.java

@Override
public void onHideParticipants(boolean backOrCloseButtonPressed, boolean hideByConversationChange,
        boolean isSingleConversation) {
    this.getControllerFactory().getNavigationController().setRightPage(Page.MESSAGE_STREAM, TAG);
    getStoreFactory().getInAppNotificationStore().setUserLookingAtParticipants(false);
    getChildFragmentManager().popBackStack(ParticipantFragment.TAG, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}

From source file:com.waz.zclient.pages.main.MainPhoneFragment.java

@Override
public void onHideOnboardingHint(OnBoardingHintType type) {
    getChildFragmentManager().popBackStackImmediate(OnBoardingHintFragment.TAG,
            FragmentManager.POP_BACK_STACK_INCLUSIVE);
}