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:org.adaway.ui.MainActivity.java

/**
 * Swaps fragments in the main content view.
 *
 * @param position The position of the selected item in drawer menu.
 *//*from  ww  w . java  2s.co  m*/
private void selectDrawerMenuItem(int position) {
    Fragment fragment = null;
    switch (position) {
    case 0:
        // HomeFragment, no fragment to instantiate
        break;
    case 1:
        fragment = new HostsSourcesFragment();
        break;
    case 2:
        fragment = new ListsFragment();
        break;
    case 3:
        fragment = new HostsContentFragment();
        break;
    case 4:
        fragment = new TcpdumpFragment();
        break;
    case 5:
        fragment = new AdwareFragment();
        break;
    case 6:
        fragment = new PrefsFragment();
        break;
    case 7:
        // Restore drawer selected item
        this.mDrawerList.setItemChecked(this.mSelectedMenuItem, true);
        // Start help activity
        this.startActivity(new Intent(this, HelpActivity.class));
        // Do nothing more
        return;
    default:
        // Position is not supported. Exit.
        return;
    }
    // Update selected menu item
    this.mSelectedMenuItem = position;
    // Pop back stack up to HomeFragment
    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.popBackStack(STACK_STATE_NAME, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    // Check there is new fragment to insert
    if (fragment != null) {
        // Insert the fragment by replacing any existing fragment
        fragmentManager.beginTransaction().replace(R.id.content_frame, fragment)
                .addToBackStack(STACK_STATE_NAME).commit();
    }
    // Close the drawer
    this.mDrawerLayout.closeDrawer(this.mDrawer);
}

From source file:com.kuassivi.october.util.Navigator.java

/**
 * Pops back to a specific BackStack position.
 * <p>/*from   w  w  w .  j  av  a  2  s.  c o  m*/
 * It will detach and destroy forwarded Fragments.
 *
 * @param index index in the back stack entry
 */
public void popToStack(int index) {
    if (!(activity instanceof FragmentActivity)) {
        throw new RuntimeException("The activity must inherits from FragmentActivity or AppCompatActivity");
    }

    FragmentActivity fragmentActivity = (FragmentActivity) activity;
    FragmentManager fragmentManager = fragmentActivity.getSupportFragmentManager();

    /*
     * The method isFinishing() prevents to load a Fragment
     * when the activity is going to be killed or destroyed.
     */
    if (fragmentManager == null || fragmentActivity.isFinishing()) {
        return;
    }

    final int firstFragmentCount = 1;
    int backStackCount = fragmentManager.getBackStackEntryCount();

    if (backStackCount <= firstFragmentCount) {
        fragmentActivity.finish();
    } else {
        if (index > 0) {
            List<Fragment> fragments = fragmentManager.getFragments();
            this.fragment = fragments.get(index - 1);
            fragmentManager.popBackStackImmediate(index, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }
    }
}

From source file:org.videolan.vlc.gui.VLCMainActivity.java

@SuppressLint("NewApi")
@Override/* w w w .jav a 2  s  . com*/
protected void onCreate(Bundle savedInstanceState) {

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    if (!LibVlcUtil.hasCompatibleCPU(this)) {
        Log.e(TAG, LibVlcUtil.getErrorMsg());
        Intent i = new Intent(this, CompatErrorActivity.class);
        startActivity(i);
        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);

    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);

    mListView = (ListView) v_main.findViewById(R.id.sidelist);
    mListView.setFooterDividersEnabled(true);
    mSidebarAdapter = new SidebarAdapter(this);
    mListView.setAdapter(mSidebarAdapter);

    /* 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 = (DrawerLayout) v_main.findViewById(R.id.root_container);

    /* Set up the action bar */
    // commit for android 4.1...tempory
    //        prepareActionBar(); 

    /* Set up the sidebar click listener
     * no need to invalidate menu for now */
    mDrawerToggle = new ActionBarDrawerToggle(this, mRootContainer, R.drawable.ic_drawer, R.string.drawer_open,
            R.string.drawer_close) {
    };

    // Set the drawer toggle as the DrawerListener
    mRootContainer.setDrawerListener(mDrawerToggle);
    // set a custom shadow that overlays the main content when the drawer opens
    mRootContainer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
    //        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    //        getSupportActionBar().setHomeButtonEnabled(true);

    mListView.setOnItemClickListener(new OnItemClickListener() {

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

            if (current == null || (entry != null && current.getTag().equals(entry.id))) {
                /* Already selected */
                mRootContainer.closeDrawer(mListView);
                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);

            mRootContainer.closeDrawer(mListView);
        }
    });

    /* 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() {
                mRootContainer.openDrawer(mListView);
            }
        }, 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.waz.zclient.newreg.fragments.SignUpPhotoFragment.java

private void dismissCameraFragment() {
    Fragment fragment = getChildFragmentManager().findFragmentByTag(CameraFragment.TAG);
    if (fragment != null) {
        getChildFragmentManager().popBackStack(CameraFragment.TAG, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        ViewUtils.fadeInView(initContainer);
        ViewUtils.fadeInView(initImage);
        cameraRevealed = false;//w  w  w  .  jav a 2  s  .c  o m
    }
}

From source file:com.chatwing.whitelabel.LegacyLoginActivity.java

private void onTaskFinished(TaskFinishedEvent event,
        @SuppressWarnings("UnusedParameters") ResetPasswordTask task) {
    ResetPasswordResponse response = (ResetPasswordResponse) event.getResult();
    if (event.getStatus() == TaskFinishedEvent.Status.SUCCEED) {
        //FIXME: this is not localizable
        mConfirmMessageView.show(response.getData());

        getSupportFragmentManager().popBackStack(BACK_TACK_FORGOT_PASSWORD,
                FragmentManager.POP_BACK_STACK_INCLUSIVE);
    } else {/* w ww  . j ava2s  .  co m*/
        if ((event.getException() instanceof ApiManager.ValidationException
                || event.getException() instanceof EmailValidator.InvalidEmailException)
                && mForgotPasswordFragment.isAdded()) {
            mForgotPasswordFragment.setEmailError(getString(R.string.error_invalid_email));
            return;
        }
        //Other errors (Unknown or general errors) we let other to handle it
        mErrorMessageView.show(event.getException());
    }
}

From source file:com.z299studio.pb.MainActivity.java

@Override
public void onBackPressed() {
    setStatusBarColor(0, 0, true);//  w w w .  j a  v a2s . c  o m
    Fragment edit = getSupportFragmentManager().findFragmentByTag("edit");
    if (edit != null) {
        getSupportFragmentManager().popBackStack("edit", FragmentManager.POP_BACK_STACK_INCLUSIVE);
        return;
    }
    Fragment detail = getSupportFragmentManager().findFragmentByTag("detail");
    if (detail != null) {
        getSupportFragmentManager().popBackStack("detail", FragmentManager.POP_BACK_STACK_INCLUSIVE);
        return;
    }
    super.onBackPressed();
}

From source file:org.dmfs.webcal.MainActivity.java

@Override
protected boolean selectItem(long id) {
    if (id == mSelectedItemId) {
        super.selectItem(id);
        return true;
    }//from ww  w  . ja  v a2 s.  c  om

    Fragment fragment = null;
    if (id == R.id.side_nav_favorite_calendars) {
        fragment = GenericListFragment.newInstance(
                CalendarContentContract.ContentItem.getStarredItemsContentUri(this),
                getString(R.string.side_nav_favorite_calendars), R.string.error_favorite_calendars_empty,
                GenericListFragment.PROJECTION2, true);
        mSelectedItemId = id;
        Analytics.event("fav-calendars", "menu", null, null, null, null);
    } else if (id == R.id.side_nav_my_calendars) {
        fragment = GenericListFragment.newInstance(
                CalendarContentContract.SubscribedCalendars.getContentUri(this),
                getString(R.string.side_nav_my_calendars), R.string.error_my_calendars_empty,
                GenericListFragment.PROJECTION, true);

        mSelectedItemId = id;
        Analytics.event("my-calendars", "menu", null, null, null, null);
    } else if (id == R.id.side_nav_all_calendars) {
        fragment = PagerFragment.newInstance(this, 0, getItemTitleById(id), -1);
        mSelectedItemId = id;
        Analytics.event("all-calendars", "menu", null, null, null, null);
    } else if (id == R.id.side_nav_faq) {
        Intent faqIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.faq_url)));
        startActivity(faqIntent);
        Analytics.event("faq", "menu", null, null, null, null);
    } else if (id == R.id.side_nav_feedback) {
        Analytics.event("feedback", "menu", null, null, null, null);
        PackageManager pm = getPackageManager();
        PackageInfo pi = null;
        try {
            pi = pm.getPackageInfo(getPackageName(), 0);
        } catch (NameNotFoundException e) {
            // that should not happen!
        }

        StringBuilder emailContent = new StringBuilder(256);
        emailContent.append("\r\n\r\n\r\n\r\n\r\n--------------\r\n");
        emailContent.append("app: ").append(getPackageName()).append("\r\n");
        emailContent.append("version: ").append(pi.versionName).append(" / ").append(pi.versionCode)
                .append("\r\n");
        emailContent.append("locale: ").append(Locale.getDefault().getLanguage()).append("\r\n");
        emailContent.append("location: ").append(Locale.getDefault().getCountry()).append("\r\n");
        emailContent.append("timezone: ").append(TimeZone.getDefault().getID()).append("\r\n");
        emailContent.append("device: ").append(android.os.Build.DEVICE).append("\r\n");
        emailContent.append("model: ").append(android.os.Build.MODEL).append("\r\n");
        emailContent.append("os version: ").append(android.os.Build.VERSION.RELEASE).append(" / ")
                .append(android.os.Build.VERSION.SDK_INT).append("\r\n");
        emailContent.append("firmware: ").append(android.os.Build.ID).append("\r\n");

        Intent emailIntent = new Intent(Intent.ACTION_SENDTO,
                Uri.fromParts("mailto", getString(R.string.contact_address), null));
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Contact");
        emailIntent.putExtra(Intent.EXTRA_TEXT, emailContent.toString());
        startActivity(Intent.createChooser(emailIntent, getString(R.string.send_email)));
        // fragment = ContactFragment.newInstance();
    } else if (id == R.id.side_nav_settings) {
        Intent preferencesIntent = new Intent(this, PreferencesActivity.class);
        startActivity(preferencesIntent);
        Analytics.event("settings", "menu", "settings clicked", null, null, null);
    }

    if (fragment != null) {
        // drop backstack
        mFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.content, fragment);
        fragmentTransaction.commit();
    }

    super.selectItem(id);

    return fragment != null;
}

From source file:com.github.socialc0de.gsw.android.MainActivity.java

private void fillLayout() {
    SpannableString s = new SpannableString(getString(R.string.app_name));
    s.setSpan(new com.github.socialc0de.gsw.android.TypefaceSpan(getApplicationContext(), "fabiolo.otf"), 0,
            s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    ((Toolbar) findViewById(R.id.app_bar)).setTitle(s);
    mTinyDB = new TinyDB(this);
    loadCategories();/*from   w ww . j  av  a  2  s.c  o m*/
    loadAccount();
    if (mDrawer != null && mFragments != null) {
        for (int i = 0; i < mFragments.size(); i++) {
            mDrawer.removeItem(i);
        }
    }

    //create the drawer and remember the `Drawer` result object

    headerResult = new AccountHeaderBuilder().withActivity(this).withHeaderBackground(R.drawable.productback)
            .withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() {
                @Override
                public boolean onProfileChanged(View view, IProfile profile, boolean currentProfile) {
                    return false;
                }
            }).withSelectionListEnabledForSingleProfile(false).build();

    mFragments.clear();

    mFragments.add(new LocalFragment(this));
    mFragments.add(new CategoryFragment(this));
    mFragments.add(new ProfileFragment());
    mFragments.add(new PhraseFragment());
    mFragments.add(new FAQFragment());
    mFragments.add(new AuthorityMapFragment());
    mFragments.add(new DonateFragment());
    mFragments.add(new AboutFragment());

    if (mDrawer == null) {
        mDrawer = new DrawerBuilder().withActivity(this).withToolbar((Toolbar) findViewById(R.id.app_bar))
                .withActionBarDrawerToggle(true).withAccountHeader(headerResult)
                .addDrawerItems(
                        new PrimaryDrawerItem().withName(R.string.sharing_local)
                                .withIcon(R.drawable.ic_place_black_36dp),
                        new PrimaryDrawerItem().withName(R.string.sharing_categories)
                                .withIcon(R.drawable.ic_view_day_black_36dp),
                        new PrimaryDrawerItem().withName(R.string.profile)
                                .withIcon(R.drawable.ic_assignment_ind_black_36dp),
                        new PrimaryDrawerItem().withName(R.string.phrasebook)
                                .withIcon(R.drawable.ic_translate_black_36dp),
                        new PrimaryDrawerItem().withName(R.string.faq)
                                .withIcon(R.drawable.ic_question_answer_black_36dp),
                        new PrimaryDrawerItem().withName(R.string.authority_map)
                                .withIcon(R.drawable.ic_map_black_36dp),
                        new PrimaryDrawerItem().withName(R.string.donate)
                                .withIcon(R.drawable.ic_attach_money_black_36dp),
                        new PrimaryDrawerItem().withName(R.string.about)
                                .withIcon(R.drawable.ic_info_black_36dp))
                .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
                    @Override
                    public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
                        // do something with the clicked item :D
                        if (getSupportFragmentManager().findFragmentByTag(
                                mFragments.get(position - 1).getClass().getSimpleName()) != null)
                            return false;
                        getSupportFragmentManager().popBackStack(null,
                                FragmentManager.POP_BACK_STACK_INCLUSIVE);
                        getSupportFragmentManager().beginTransaction()
                                .replace(R.id.container, mFragments.get(position - 1),
                                        mFragments.get(position - 1).getClass().getSimpleName())
                                .addToBackStack(null).commit();

                        // closes Drawer
                        return false;
                    }
                }).build();
    }

    getSupportFragmentManager().beginTransaction().replace(R.id.container, mFragments.get(0)).commit();
}

From source file:com.he5ed.lib.cloudprovider.picker.CloudPickerActivity.java

/**
 * Open new back stack of fragments and create the fragment to show folder content
 *
 * @hide/*  www.jav  a 2s  . co  m*/
 */
private void openPickerFragment() {
    // clear all previous fragment
    mFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    PickerFragment pickerFragment = new PickerFragment();
    pickerFragment.setApi(mApi);
    pickerFragment.exploreFolder(mApi.getRoot());
    mFragmentManager.beginTransaction().replace(R.id.fragment, pickerFragment).commit();
}

From source file:com.androzic.MainActivity.java

private void selectItem(int position) {
    if (mDrawerAdapter.getSelectedItem() == position)
        return;/* w w w .  j a v  a2  s . co m*/

    DrawerItem item = mDrawerItems.get(position);
    // Actions
    if (item.type == DrawerItem.ItemType.INTENT) {
        if (position > 0)
            startActivity(item.intent);
    }
    // Fragments
    else if (item.type == DrawerItem.ItemType.FRAGMENT) {
        FragmentManager fm = getSupportFragmentManager();
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStackImmediate(0, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }
        FragmentTransaction ft = fm.beginTransaction();
        Fragment parent = fm.findFragmentById(R.id.content_frame);
        if (parent != null) {
            ft.detach(parent);
        }
        Fragment fragment = fm.findFragmentByTag(item.name);
        if (fragment != null) {
            ft.attach(fragment);
        } else {
            ft.add(R.id.content_frame, item.fragment, item.name);
        }
        ft.commit();
        // update selected item and title, then close the drawer
        updateDrawerUI(item, position);
    } else if (item.type == DrawerItem.ItemType.ACTION) {
        Log.e(TAG, "ACTION");
        runOnUiThread(item.action);
    }
    mDrawerLayout.closeDrawer(mDrawerList);
}