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

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

Introduction

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

Prototype

public abstract BackStackEntry getBackStackEntryAt(int index);

Source Link

Document

Return the BackStackEntry at index index in the back stack; entries start index 0 being the bottom of the stack.

Usage

From source file:au.org.intersect.faims.android.ui.activity.ShowModuleActivity.java

@Override
public void onBackPressed() {
    FragmentManager fragmentManager = getSupportFragmentManager();
    if (fragmentManager.getBackStackEntryCount() > 0) {
        TabGroup currentTabGroup = (TabGroup) fragmentManager.findFragmentByTag(
                fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1).getName());
        if (currentTabGroup != null) {
            renderer.invalidateListViews(currentTabGroup);
            renderer.setCurrentTabGroup(currentTabGroup);
            getActionBar().setTitle(currentTabGroup.getLabel());
        }/*from   w  ww  .j  a va2s.  co  m*/
        super.onBackPressed();
    } else {
        if (syncStarted) {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Stop Syncing");
            builder.setMessage(
                    "Syncing is still in progress. Do you want to exit the activity and stop the sync?");
            builder.setPositiveButton("Yes", new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    syncStarted = false;
                    stopSync();
                    ShowModuleActivity.super.onBackPressed();
                }
            });
            builder.setNegativeButton("No", new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // Do nothing
                }
            });
            builder.show();
        } else {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Exit Module");
            builder.setMessage("Do you want to exit module?");
            builder.setPositiveButton("Yes", new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    ShowModuleActivity.super.onBackPressed();
                }
            });
            builder.setNegativeButton("No", new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // Do nothing
                }
            });
            builder.show();
        }
    }
}

From source file:com.app.blockydemo.ui.ScriptActivity.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    FragmentManager fragmentManager = getSupportFragmentManager();

    for (String tag : FormulaEditorListFragment.TAGS) {
        FormulaEditorListFragment fragment = (FormulaEditorListFragment) fragmentManager.findFragmentByTag(tag);
        if (fragment != null) {
            if (fragment.isVisible()) {
                return fragment.onKey(null, keyCode, event);
            }/*from   w w w .ja va 2s . com*/
        }
    }

    FormulaEditorVariableListFragment formulaEditorVariableListFragment = (FormulaEditorVariableListFragment) getSupportFragmentManager()
            .findFragmentByTag(FormulaEditorVariableListFragment.VARIABLE_TAG);

    if (formulaEditorVariableListFragment != null) {
        if (formulaEditorVariableListFragment.isVisible()) {
            return formulaEditorVariableListFragment.onKey(null, keyCode, event);
        }
    }

    FormulaEditorFragment formulaEditor = (FormulaEditorFragment) getSupportFragmentManager()
            .findFragmentByTag(FormulaEditorFragment.FORMULA_EDITOR_FRAGMENT_TAG);

    if (formulaEditor != null) {
        if (formulaEditor.isVisible()) {
            scriptFragment.getAdapter().updateProjectBrickList();
            return formulaEditor.onKey(null, keyCode, event);
        }
    }

    int backStackEntryCount = fragmentManager.getBackStackEntryCount();
    for (int i = backStackEntryCount; i > 0; --i) {
        String backStackEntryName = fragmentManager.getBackStackEntryAt(i - 1).getName();
        if (backStackEntryName != null) {
            fragmentManager.popBackStack();
        } else {
            break;
        }
    }

    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if (currentFragmentPosition == FRAGMENT_SCRIPTS) {
            DragAndDropListView listView = scriptFragment.getListView();
            if (listView.isCurrentlyDragging()) {
                listView.resetDraggingScreen();

                BrickAdapter adapter = scriptFragment.getAdapter();
                adapter.removeDraggedBrick();
                return true;
            }
        }
    }
    return super.onKeyDown(keyCode, event);
}

From source file:com.chatwing.whitelabel.activities.CommunicationActivity.java

@Override
public void onBackPressed() {
    if (mCurrentCommunicationMode.isSecondaryDrawerOpening()) {
        ((ChatboxModeManager) mCurrentCommunicationMode).closeSecondaryDrawer();
    } else if (!mCurrentCommunicationMode.isCommunicationBoxDrawerOpening()) {
        // Both online users and chat boxes/conversation lists are closed.
        // Open chat boxes/conversation list now.
        mCurrentCommunicationMode.openCommunicationBoxDrawer();
    } else {//  w  ww.j  av a2s.c o  m
        // Online users list is closed, chat boxes list is opened.
        // User probably is trying to quit the app.
        FragmentManager fragmentManager = getSupportFragmentManager();
        int stackSize = fragmentManager.getBackStackEntryCount();
        if (stackSize == 0) {
            finish();
        } else {
            String fragmentTag = fragmentManager.getBackStackEntryAt(stackSize - 1).getName();
            fragmentManager.popBackStack(fragmentTag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }
    }
}

From source file:org.catrobat.catroid.ui.ScriptActivity.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    FragmentManager fragmentManager = getSupportFragmentManager();

    for (String tag : FormulaEditorListFragment.TAGS) {
        FormulaEditorListFragment fragment = (FormulaEditorListFragment) fragmentManager.findFragmentByTag(tag);
        if (fragment != null && fragment.isVisible()) {
            return fragment.onKey(null, keyCode, event);
        }/*  w  ww .j  a va2  s.  c o m*/
    }

    String tag1 = UserBrickDataEditorFragment.BRICK_DATA_EDITOR_FRAGMENT_TAG;
    UserBrickDataEditorFragment fragment = (UserBrickDataEditorFragment) fragmentManager
            .findFragmentByTag(tag1);
    if (fragment != null && fragment.isVisible()) {
        return fragment.onKey(null, keyCode, event);
    }

    FormulaEditorDataFragment formulaEditorDataFragment = (FormulaEditorDataFragment) getSupportFragmentManager()
            .findFragmentByTag(FormulaEditorDataFragment.USER_DATA_TAG);

    if (formulaEditorDataFragment != null && formulaEditorDataFragment.isVisible()) {
        return formulaEditorDataFragment.onKey(null, keyCode, event);
    }

    FormulaEditorFragment formulaEditor = (FormulaEditorFragment) getSupportFragmentManager()
            .findFragmentByTag(FormulaEditorFragment.FORMULA_EDITOR_FRAGMENT_TAG);

    if (formulaEditor != null && formulaEditor.isVisible()) {
        scriptFragment.getAdapter().updateProjectBrickList();
        return formulaEditor.onKey(null, keyCode, event);
    }
    if (soundFragment != null && soundFragment.isVisible() && soundFragment.onKey(null, keyCode, event)) {
        return true;
    }

    if (lookFragment != null && lookFragment.isVisible() && lookFragment.onKey(null, keyCode, event)) {
        return true;
    }

    int backStackEntryCount = fragmentManager.getBackStackEntryCount();
    for (int i = backStackEntryCount; i > 0; --i) {
        String backStackEntryName = fragmentManager.getBackStackEntryAt(i - 1).getName();
        if (backStackEntryName != null && (backStackEntryName.equals(LookFragment.TAG)
                || backStackEntryName.equals(SoundFragment.TAG))) {
            fragmentManager.popBackStack();
        } else {
            break;
        }
    }

    if (keyCode == KeyEvent.KEYCODE_BACK && currentFragmentPosition == FRAGMENT_SCRIPTS) {
        DragAndDropListView listView = scriptFragment.getListView();
        if (listView.isCurrentlyDragging()) {
            listView.resetDraggingScreen();

            BrickAdapter adapter = scriptFragment.getAdapter();
            adapter.removeDraggedBrick();
            return true;
        }
    }

    return super.onKeyDown(keyCode, event);
}

From source file:hku.fyp14017.blencode.ui.ScriptActivity.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    FragmentManager fragmentManager = getSupportFragmentManager();

    for (String tag : FormulaEditorListFragment.TAGS) {
        FormulaEditorListFragment fragment = (FormulaEditorListFragment) fragmentManager.findFragmentByTag(tag);
        if (fragment != null && fragment.isVisible()) {
            return fragment.onKey(null, keyCode, event);
        }/*from   www .  jav  a  2 s  .  co m*/

    }

    String tag1 = UserBrickDataEditorFragment.BRICK_DATA_EDITOR_FRAGMENT_TAG;
    UserBrickDataEditorFragment fragment = (UserBrickDataEditorFragment) fragmentManager
            .findFragmentByTag(tag1);
    if (fragment != null && fragment.isVisible()) {
        return fragment.onKey(null, keyCode, event);
    }

    FormulaEditorVariableListFragment formulaEditorVariableListFragment = (FormulaEditorVariableListFragment) getSupportFragmentManager()
            .findFragmentByTag(FormulaEditorVariableListFragment.VARIABLE_TAG);

    if (formulaEditorVariableListFragment != null && formulaEditorVariableListFragment.isVisible()) {
        return formulaEditorVariableListFragment.onKey(null, keyCode, event);
    }

    SensorTagFragment sensorTagFragment = (SensorTagFragment) getSupportFragmentManager()
            .findFragmentByTag(SensorTagFragment.SENSOR_TAG_FRAGMENT_TAG);

    if (sensorTagFragment != null && sensorTagFragment.isVisible()) {
        return sensorTagFragment.onKey(null, keyCode, event);
    }

    FormulaEditorFragment formulaEditor = (FormulaEditorFragment) getSupportFragmentManager()
            .findFragmentByTag(FormulaEditorFragment.FORMULA_EDITOR_FRAGMENT_TAG);

    if (formulaEditor != null && formulaEditor.isVisible()) {
        scriptFragment.getAdapter().updateProjectBrickList();
        return formulaEditor.onKey(null, keyCode, event);
    }

    if (soundFragment != null && soundFragment.isVisible() && soundFragment.onKey(null, keyCode, event)) {
        return true;
    }

    if (lookFragment != null && lookFragment.isVisible() && lookFragment.onKey(null, keyCode, event)) {
        return true;
    }

    int backStackEntryCount = fragmentManager.getBackStackEntryCount();
    for (int i = backStackEntryCount; i > 0; --i) {
        String backStackEntryName = fragmentManager.getBackStackEntryAt(i - 1).getName();
        if (backStackEntryName != null && (backStackEntryName.equals(LookFragment.TAG)
                || backStackEntryName.equals(SoundFragment.TAG))) {
            fragmentManager.popBackStack();
        } else {
            break;
        }
    }

    if (keyCode == KeyEvent.KEYCODE_BACK && currentFragmentPosition == FRAGMENT_SCRIPTS) {
        DragAndDropListView listView = scriptFragment.getListView();
        if (listView.isCurrentlyDragging()) {
            listView.resetDraggingScreen();

            BrickAdapter adapter = scriptFragment.getAdapter();
            adapter.removeDraggedBrick();
            return true;
        }
    }

    return super.onKeyDown(keyCode, event);
}

From source file:com.cnm.cnmrc.fragment.vodtvch.Base.java

@Override
public void onDestroyView() {
    {//from w  ww.j  a  va2  s  . c  om
        // back key ? 2,    ?,  destoryview? ? count minus?.
        // ? TAG_FRAGMENT_BASE?  fragment ?  .  . .
        // backstack?  transaction? count ? minus ?.
        Fragment f = getActivity().getSupportFragmentManager()
                .findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE);
        if (f != null) {
            Log.i("hwang", "At Base TAG_FRAGMENT_BASE exist!!!");
        } else {
            Log.i("hwang", "At Base TAG_FRAGMENT_BASE no exist!!!");
        }

        f = getActivity().getSupportFragmentManager().findFragmentById(R.id.loading_data_panel);
        if (f != null) {
            Log.i("hwang", "At Base loading_data_panel exist!!!");
        } else {
            Log.i("hwang", "At Base loading_data_panel no exist!!!");
        }
    }

    //      {
    //         FragmentManager fm = getActivity().getSupportFragmentManager();
    //         Log.i("hwang", "before destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount()));
    //           Fragment f = getActivity().getSupportFragmentManager().findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE);
    //           if (f != null) {
    //              getActivity().getSupportFragmentManager().beginTransaction().remove(f).commit();   // TAG_FRAGMENT_BASE?  fragment ?? ?.
    //            fm.executePendingTransactions(); // fragment ?  ?.
    //           }
    //         Log.i("hwang", "after destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount()));
    //         
    //         // check
    //         //  entry stack? ? 0 ? index?.
    //         for (int entry = 0; entry < fm.getBackStackEntryCount(); entry++) {
    //            Log.i("hwang", "Found fragment: " + fm.getBackStackEntryAt(entry).getId());
    //         }
    //      }

    //      {
    //         // same above, ~ ?? ? TAG_FRAGMENT_BASE? ?  fragment ? ?.
    //         FragmentManager fm = getActivity().getSupportFragmentManager();
    //         Log.i("hwang", "before destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount()));
    //           Fragment f = getActivity().getSupportFragmentManager().findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE);
    //           if (f != null) {
    //            fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, 0);   // ? ? null ?.             // TAG_FRAGMENT_BASE?  fragment  ?.
    //             fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE);   // TAG_FRAGMENT_BASE?  fragment  ?. ??.....
    //            fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);                                    // stack?   fragment ?.
    //           }
    //         Log.i("hwang", "after destory base view fragment count --> " + Integer.toString(fm.getBackStackEntryCount()));
    //         
    //         // check
    //         //  entry stack? ? 0 ? index?.
    //         for (int entry = 0; entry < fm.getBackStackEntryCount(); entry++) {
    //            Log.i("hwang", "Found fragment: " + fm.getBackStackEntryAt(entry).getId());
    //         }
    //      }

    //      To clear stack you need to call:
    //
    //         ScreenFragment.sDisableExitAnimation = true;
    //         manager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    //         transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);

    //      FragmentManager fm = getActivity().getSupportFragmentManager();
    //      for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {    
    //          fm.popBackStack();
    //      }
    //      But could equally have used something like:
    //
    //      FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    //      To go to top simply use: fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 

    //      // transaction.replace(R.id.detailFragment, frag1);
    //      Transaction.remove(null).add(frag1)  // frag1 on view
    //
    //      // transaction.replace(R.id.detailFragment, frag2).addToBackStack(null);
    //      Transaction.remove(frag1).add(frag2).addToBackStack(null)  // frag2 on view
    //
    //      // transaction.replace(R.id.detailFragment, frag3);
    //      Transaction.remove(frag2).add(frag3)  // frag3 on view

    //      FragmentManager fm = getActivity().getSupportFragmentManager();
    //      for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
    //          fm.popBackStack();
    //      }

    // Use a name for your initial back stack state and use FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE).
    // Use FragmentManager.getBackStackEntryCount()/getBackStackEntryAt().getId() to retrieve the ID of the first entry on the back stack, 
    // and FragmentManager.popBackStack(int id, FragmentManager.POP_BACK_STACK_INCLUSIVE).

    // is supposed to pop the entire back stack...
    //FragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) 

    // Base? onDestroyView() 2  .
    //  ft.replace(R.id.loading_data_panel, base); 
    //   ft.add(R.id.loading_data_panel, base, ((MainActivity) getActivity()).TAG_FRAGMENT_BASE);
    // getBackStackEntryCount() ??  ...  ?  ? ? ??...
    // backstack? count  ???  ? ?...
    FragmentManager fm = getActivity().getSupportFragmentManager();
    if (!isFirstDepth) { //  1 depth?? ? depth?...
        //if(fm.getBackStackEntryCount() > 0 && fm.getBackStackEntryCount() < 8) {     // indicator 8 ...
        Log.i("hwang", "before Base onDestroyView() fragment count --> "
                + Integer.toString(fm.getBackStackEntryCount()));
        Fragment f = getActivity().getSupportFragmentManager()
                .findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_BASE);
        if (f != null) {
            //  ?? ~~~~
            // popBackStack()? ?  ? ? ? ?. , backstack count ? minus? ??.
            //fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, 0);   // ? ? null ?.               // TAG_FRAGMENT_BASE?  fragment  ?.
            //fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE);   // TAG_FRAGMENT_BASE?  fragment  ?. ??...
            //fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);                                    // stack?   fragment ?.

            //getActivity().getSupportFragmentManager().beginTransaction().remove(f).commit();                        // TAG_FRAGMENT_BASE?  fragment ?? ?.
            //fm.executePendingTransactions();                                                             // fragment ?  ?.

            // sidebar ? ...
            Fragment f1 = fm.findFragmentByTag(((MainActivity) getActivity()).TAG_FRAGMENT_VOD_TVCH);
            if (f1 != null) {
                if (((VodTvchMain) f1).mSlidingMenu.isOpening()) {
                    getActivity().getSupportFragmentManager().beginTransaction().remove(f).commit();
                    //fm.getBackStackEntryAt(0);
                    //fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                    //fm.executePendingTransactions();    

                    for (int i = 0; i < fm.getBackStackEntryCount(); i++) {
                        //                       fm.popBackStack(((MainActivity) getActivity()).TAG_FRAGMENT_BASE, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                        fm.popBackStack(i, 0); // OK
                        //fm.popBackStack(i, FragmentManager.POP_BACK_STACK_INCLUSIVE); // not OK
                    }
                }
            }

        }
        Log.i("hwang", "after Base onDestroyView() fragment count --> "
                + Integer.toString(fm.getBackStackEntryCount()));

        // check
        //  entry stack? ? 0 ? index?.
        for (int entry = 0; entry < fm.getBackStackEntryCount(); entry++) {
            Log.i("hwang", "At Base onDestroyView() Found fragment: " + fm.getBackStackEntryAt(entry).getId());
        }

        deleteDepthLevel();

        {
            f = getActivity().getSupportFragmentManager().findFragmentById(R.id.loading_data_panel);
            FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
            if (f != null) {
                if (f.isHidden())
                    ft.show(f).commit(); // loading_data_panel TAG_FRAGMENT_BASE  ?.   ?
                // f --> VodList{42626a88 #12 id=0x7f0c0048 base}
                // f --> VodList{42624ab0 #11 id=0x7f0c0048 base}
                // f --> VodList{42622ad8 #10 id=0x7f0c0048 base}
                // f --> VodList{42620b00 #9 id=0x7f0c0048 base}
                // f --> VodList{4261ea88 #8 id=0x7f0c0048 base}
                // f --> VodList{4261c560 #7 id=0x7f0c0048}
            }
        }

    }

    super.onDestroyView();
}