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

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

Introduction

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

Prototype

public abstract boolean popBackStackImmediate(int id, int flags);

Source Link

Document

Like #popBackStack(int,int) , but performs the operation immediately inside of the call.

Usage

From source file:li.barter.activities.AbstractBarterLiActivity.java

/**
 * Helper method to load fragments into layout
 *
 * @param containerResId The container resource Id in the content view into which to load the
 *                       fragment//from  w  ww  .j  av a 2s . c o m
 * @param fragment       The fragment to load
 * @param tag            The fragment tag
 * @param addToBackStack Whether the transaction should be addded to the backstack
 * @param backStackTag   The tag used for the backstack tag
 * @param customAnimate  Whether to provide a custom animation for the Fragment. If
 *                       <code>true</code>, the Fragment also needs to be annotated with a
 *                       {@linkplain li.barter.fragments.FragmentTransition} annotation which
 *                       describes the transition to perform. If <code>false</code>, will use
 *                       default fragment transition
 * @param remove         Whether the fragment should be removed before adding it
 */
public void loadFragment(final int containerResId, final AbstractBarterLiFragment fragment, final String tag,
        final boolean addToBackStack, final String backStackTag, final boolean customAnimate,
        final boolean remove) {

    final FragmentManager fragmentManager = getSupportFragmentManager();

    if (remove) {
        fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        fragmentManager.beginTransaction().remove(fragment).commit();
        fragmentManager.executePendingTransactions();
    }
    final FragmentTransaction transaction = fragmentManager.beginTransaction();

    if (customAnimate) {
        final FragmentTransition fragmentTransition = fragment.getClass()
                .getAnnotation(FragmentTransition.class);
        if (fragmentTransition != null) {

            transaction.setCustomAnimations(fragmentTransition.enterAnimation(),
                    fragmentTransition.exitAnimation(), fragmentTransition.popEnterAnimation(),
                    fragmentTransition.popExitAnimation());

        }
    }

    transaction.replace(containerResId, fragment, tag);

    if (addToBackStack) {
        transaction.addToBackStack(backStackTag);
    }
    transaction.commit();
}

From source file:com.androzic.MainActivity.java

private void selectItem(int position) {
    if (mDrawerAdapter.getSelectedItem() == position)
        return;/*from w  w w .  j  a v a  2 s  . c o  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);
}

From source file:com.tomeokin.lspush.ui.navigator.Navigator.java

public static void moveTo(Context context, FragmentManager fragmentManager, Class<? extends Fragment> fragment,
        Bundle args, @IdRes int containerId, boolean addToBackStack, int[] anim) {
    final String tag = fragment.getName();
    Fragment current = fragmentManager.findFragmentById(containerId);
    Fragment target = fragmentManager.findFragmentByTag(tag);

    if (target == null) {
        try {// w ww .j  a v a  2  s .com
            target = Fragment.instantiate(context, fragment.getName(), args);
        } catch (Exception e) {
            // ignore
        }
        if (target == null) {
            return;
        }

        FragmentTransaction transaction = fragmentManager.beginTransaction();
        if (anim == null || (anim.length != 2 && anim.length != 4)) {
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        } else if (anim.length == 2) {
            transaction.setCustomAnimations(anim[0], anim[1]);
        } else {
            transaction.setCustomAnimations(anim[0], anim[1], anim[2], anim[3]);
        }
        if (current == null) {
            transaction.add(containerId, target, tag);
        } else {
            transaction.replace(containerId, target, tag);
            if (addToBackStack) {
                transaction.addToBackStack(tag);
            }
        }
        transaction.commit();
    } else {
        if (current == target) {
            return;
        }
        // set result
        Intent intent = new Intent();
        if (args != null) {
            intent.putExtras(args);
        }
        target.onActivityResult(REQUEST_CODE, Activity.RESULT_OK, intent);
        boolean result = fragmentManager.popBackStackImmediate(tag, 0);
        if (!result) {
            fragmentManager.popBackStackImmediate(0, POP_BACK_STACK_INCLUSIVE);
        }
    }
}

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 w  w.j  a va 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:org.gateshipone.malp.application.activities.MainActivity.java

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();
    View coordinatorLayout = findViewById(R.id.main_coordinator_layout);
    coordinatorLayout.setVisibility(View.VISIBLE);

    NowPlayingView nowPlayingView = (NowPlayingView) findViewById(R.id.now_playing_layout);
    if (nowPlayingView != null) {
        nowPlayingView.minimize();/*  w ww.jav  a  2s. c  o m*/
    }

    FragmentManager fragmentManager = getSupportFragmentManager();

    // clear backstack
    fragmentManager.popBackStackImmediate("", FragmentManager.POP_BACK_STACK_INCLUSIVE);

    Fragment fragment = null;
    String fragmentTag = "";

    if (id == R.id.nav_library) {
        // Handle the camera action
        fragment = new MyMusicTabsFragment();
        fragmentTag = MyMusicTabsFragment.TAG;
    } else if (id == R.id.nav_saved_playlists) {
        fragment = new SavedPlaylistsFragment();
        fragmentTag = SavedPlaylistsFragment.TAG;
    } else if (id == R.id.nav_files) {
        fragment = new FilesFragment();
        fragmentTag = FilesFragment.TAG;

        Bundle args = new Bundle();
        args.putString(FilesFragment.EXTRA_FILENAME, "");

    } else if (id == R.id.nav_search) {
        fragment = new SearchFragment();
        fragmentTag = SearchFragment.TAG;
    } else if (id == R.id.nav_profiles) {
        fragment = new ProfilesFragment();
        fragmentTag = ProfilesFragment.TAG;
    } else if (id == R.id.nav_app_settings) {
        fragment = new SettingsFragment();
        fragmentTag = SettingsFragment.TAG;
    } else if (id == R.id.nav_server_properties) {
        fragment = new ServerPropertiesFragment();
        fragmentTag = ServerPropertiesFragment.TAG;
    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);

    // Do the actual fragment transaction
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(R.id.fragment_container, fragment, fragmentTag);
    transaction.commit();

    return true;
}

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

/**
 * Pops back to a specific BackStack position.
 * <p>/*from www. j ava 2s .co  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

/**
 * Hide the current secondary fragment./* w ww .ja v a 2 s .  com*/
 */
public void popSecondaryFragment() {
    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    mCurrentFragment = mPreviousFragment;
}

From source file:org.namelessrom.devicecontrol.MainActivity.java

private void loadFragmentPrivate(final int i, final boolean onResume) {
    switch (i) {/* w w w  .  j av a2  s . c  o  m*/
    default: // slip through...
        //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_ABOUT:
        if (!onResume)
            mCurrentFragment = new AboutFragment();
        mTitle = mFragmentTitle = R.string.app_name;
        mSubFragmentTitle = -1;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_DEVICE_INFORMATION:
        if (!onResume)
            mCurrentFragment = new DeviceInformationFragment();
        mTitle = mFragmentTitle = R.string.device;
        mSubFragmentTitle = -1;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_FEATURES:
        if (!onResume)
            mCurrentFragment = new DeviceFeatureFragment();
        mTitle = mFragmentTitle = R.string.features;
        mSubFragmentTitle = -1;
        break;
    case DeviceConstants.ID_FAST_CHARGE:
        if (!onResume)
            mCurrentFragment = new FastChargeFragment();
        mTitle = mSubFragmentTitle = R.string.fast_charge;
        break;
    case DeviceConstants.ID_SOUND_CONTROL:
        if (!onResume)
            mCurrentFragment = new SoundControlFragment();
        mTitle = mSubFragmentTitle = R.string.sound_control;
        break;
    case DeviceConstants.ID_KSM:
        if (!onResume)
            mCurrentFragment = new KsmFragment();
        mTitle = mSubFragmentTitle = R.string.ksm;
        break;
    case DeviceConstants.ID_UKSM:
        if (!onResume)
            mCurrentFragment = new UksmFragment();
        mTitle = mSubFragmentTitle = R.string.uksm;
        break;
    case DeviceConstants.ID_VOLTAGE:
        if (!onResume)
            mCurrentFragment = new VoltageFragment();
        mTitle = mSubFragmentTitle = R.string.voltage_control;
        break;
    case DeviceConstants.ID_ENTROPY:
        if (!onResume)
            mCurrentFragment = new EntropyFragment();
        mTitle = mSubFragmentTitle = R.string.entropy;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_PERFORMANCE_INFO:
        if (!onResume)
            mCurrentFragment = new InformationFragment();
        mTitle = mFragmentTitle = R.string.information;
        mSubFragmentTitle = -1;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_PERFORMANCE_CPU_SETTINGS:
        if (!onResume)
            mCurrentFragment = new CpuSettingsFragment();
        mTitle = mFragmentTitle = R.string.cpusettings;
        mSubFragmentTitle = -1;
        break;
    case DeviceConstants.ID_GOVERNOR_TUNABLE:
        if (!onResume)
            mCurrentFragment = new GovernorFragment();
        mTitle = mSubFragmentTitle = R.string.cpu_governor_tuning;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_PERFORMANCE_GPU_SETTINGS:
        if (!onResume)
            mCurrentFragment = new GpuSettingsFragment();
        mTitle = mFragmentTitle = R.string.gpusettings;
        mSubFragmentTitle = -1;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_FILESYSTEM:
        if (!onResume)
            mCurrentFragment = new FilesystemFragment();
        mTitle = mFragmentTitle = R.string.filesystem;
        mSubFragmentTitle = -1;
        break;
    case DeviceConstants.ID_IOSCHED_TUNING:
        if (!onResume)
            mCurrentFragment = new IoSchedConfigFragment();
        mTitle = mSubFragmentTitle = R.string.io;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_THERMAL:
        if (!onResume)
            mCurrentFragment = new ThermalFragment();
        mTitle = mFragmentTitle = R.string.thermal;
        mSubFragmentTitle = -1;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_TOOLS_TASKER:
        if (!onResume)
            mCurrentFragment = new TaskerFragment();
        mTitle = mFragmentTitle = R.string.tasker;
        mSubFragmentTitle = -1;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_TOOLS_FLASHER:
        if (!onResume)
            mCurrentFragment = new FlasherFragment();
        mTitle = mFragmentTitle = R.string.flasher;
        mSubFragmentTitle = -1;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_TOOLS_MORE:
        if (!onResume)
            mCurrentFragment = new ToolsMoreFragment();
        mTitle = mFragmentTitle = R.string.more;
        mSubFragmentTitle = -1;
        break;
    case DeviceConstants.ID_TOOLS_VM:
        if (!onResume)
            mCurrentFragment = new SysctlFragment();
        mTitle = mSubFragmentTitle = R.string.sysctl_vm;
        break;
    case DeviceConstants.ID_TOOLS_EDITORS_VM:
        if (!onResume)
            mCurrentFragment = new SysctlEditorFragment();
        mTitle = mSubFragmentTitle = R.string.sysctl_vm;
        break;
    case DeviceConstants.ID_TOOLS_EDITORS_BUILD_PROP:
        if (!onResume)
            mCurrentFragment = new BuildPropEditorFragment();
        mTitle = mSubFragmentTitle = R.string.buildprop;
        break;
    case DeviceConstants.ID_TOOLS_APP_MANAGER:
        if (!onResume)
            mCurrentFragment = new AppListFragment();
        mTitle = mSubFragmentTitle = R.string.app_manager;
        break;
    case DeviceConstants.ID_TOOLS_WIRELESS_FM:
        if (!onResume)
            mCurrentFragment = new WirelessFileManagerFragment();
        mTitle = mSubFragmentTitle = R.string.wireless_file_manager;
        break;
    //--------------------------------------------------------------------------------------
    case DeviceConstants.ID_PREFERENCES:
        if (!onResume)
            mCurrentFragment = new PreferencesFragment();
        mTitle = mFragmentTitle = R.string.preferences;
        mSubFragmentTitle = -1;
        break;
    }

    restoreActionBar();

    if (onResume) {
        return;
    }

    final boolean isSubFragment = mSubFragmentTitle != -1;

    final FragmentManager fragmentManager = getSupportFragmentManager();
    if (!isSubFragment && fragmentManager.getBackStackEntryCount() > 0) {
        // set a lock to prevent calling setFragment as onResume gets called
        AppHelper.preventOnResume = true;
        MainActivity.sDisableFragmentAnimations = true;
        fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        MainActivity.sDisableFragmentAnimations = false;
        // release the lock
        AppHelper.preventOnResume = false;
    }

    final FragmentTransaction ft = fragmentManager.beginTransaction();

    if (isSubFragment) {
        ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right, R.anim.slide_in_left,
                R.anim.slide_out_left);
        ft.addToBackStack(null);
    }

    ft.replace(R.id.container, mCurrentFragment);
    ft.commit();

    final MaterialMenuDrawable.IconState iconState;
    if (isSubFragment) {
        iconState = MaterialMenuDrawable.IconState.ARROW;
    } else {
        iconState = MaterialMenuDrawable.IconState.BURGER;
    }

    sMaterialMenu.animateState(iconState);
}

From source file:me.kaidul.uhunt.MainActivity.java

private void replaceFragment(Fragment fragment, int position) {
    FragmentManager manager = getSupportFragmentManager();
    String backStateName = fragment.getClass().getName();
    String fragmentTag = backStateName;

    boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);
    if (!fragmentPopped && manager.findFragmentByTag(fragmentTag) == null) {
        FragmentTransaction ft = manager.beginTransaction();
        ft.replace(R.id.content_frame, fragment, fragmentTag);
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        ft.addToBackStack(backStateName);
        ft.commit();/*from  w  w  w  .  jav  a  2s  .c om*/
    }
    mDrawerList.setItemChecked(position, true);
    setTitle(title[position]);
    mDrawerLayout.closeDrawer(mDrawerList);
}

From source file:org.gateshipone.odyssey.activities.OdysseyMainActivity.java

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    View coordinatorLayout = findViewById(R.id.main_coordinator_layout);
    coordinatorLayout.setVisibility(View.VISIBLE);

    NowPlayingView nowPlayingView = (NowPlayingView) findViewById(R.id.now_playing_layout);
    if (nowPlayingView != null) {
        nowPlayingView.minimize();/*from ww w  . j av  a  2s.  c o  m*/
    }

    FragmentManager fragmentManager = getSupportFragmentManager();

    // clear backstack
    fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

    Fragment fragment = null;

    if (id == R.id.nav_my_music) {
        fragment = new MyMusicFragment();
    } else if (id == R.id.nav_saved_playlists) {
        fragment = new SavedPlaylistsFragment();
    } else if (id == R.id.nav_bookmarks) {
        fragment = new BookmarksFragment();
    } else if (id == R.id.nav_files) {
        fragment = new FilesFragment();

        // open the default directory
        List<String> storageVolumesList = mFileExplorerHelper.getStorageVolumes(getApplicationContext());

        String defaultDirectory = "/";

        if (!storageVolumesList.isEmpty()) {
            // choose the latest used storage volume as default
            SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
            defaultDirectory = sharedPref.getString(getString(R.string.pref_file_browser_root_dir_key),
                    storageVolumesList.get(0));
        }

        Bundle args = new Bundle();
        args.putString(FilesFragment.ARG_DIRECTORYPATH, defaultDirectory);
        args.putBoolean(FilesFragment.ARG_ISROOTDIRECTORY, storageVolumesList.contains(defaultDirectory));

        fragment.setArguments(args);

    } else if (id == R.id.nav_settings) {
        fragment = new SettingsFragment();
    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer != null) {
        drawer.closeDrawer(GravityCompat.START);
    }

    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.replace(R.id.fragment_container, fragment);
    transaction.commit();

    return true;
}