private boolean naviMainFragment(String ftag) {
   FragmentManager fragmentManager = MainActivity.getInstance().getSupportFragmentManager();
   int count = fragmentManager.getBackStackEntryCount();
   for (int i = 0; i < count; i++) {
     BackStackEntry entry = fragmentManager.getBackStackEntryAt(i);
     if (entry != null && !TextUtils.isEmpty(ftag) && entry.getName().contains(ftag)) {
       if (i < count - 1) {
         BackStackEntry topEntry = fragmentManager.getBackStackEntryAt(i + 1);
         fragmentManager.popBackStack(topEntry.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
         popFragment(fragmentStack.size() - i - 1);
       }
       return true;
     }
   }
   return false;
 }
 public void clearBackStack() {
   FragmentManager manager = getSupportFragmentManager();
   if (manager.getBackStackEntryCount() > 0) {
     FragmentManager.BackStackEntry first = manager.getBackStackEntryAt(0);
     manager.popBackStack(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
   }
 }
 private void clearBackStack() {
   FragmentManager fragmentManager = MainActivity.getInstance().getSupportFragmentManager();
   int count = fragmentManager.getBackStackEntryCount();
   if (count > 0) {
     BackStackEntry entry = fragmentManager.getBackStackEntryAt(0);
     fragmentManager.popBackStack(entry.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
     popAllFragment();
   }
 }
 public void clearTop() {
   FragmentManager fm = getSupportFragmentManager();
   if (fm.getBackStackEntryCount() > 0)
     try {
       fm.popBackStackImmediate(
           fm.getBackStackEntryAt(0).getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
     } catch (IllegalStateException e) {
       // Random error clearing to top. Not critical if this did not succeed, no need to crash.
       if (ConnectedApp.DEBUG) throw e;
     }
 }
  @Override
  public void onBackStackChanged() {
    mPath = EXTERNAL_BASE_PATH;

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
      BackStackEntry fragment = mFragmentManager.getBackStackEntryAt(count - 1);
      mPath = fragment.getName();
    }

    setTitle(mPath);
  }
示例#6
0
 @Override
 public void popFragment() throws Exception {
   boolean isLast = false;
   FragmentManager fm = getSupportFragmentManager();
   if (fm.getBackStackEntryAt(fm.getBackStackEntryCount() - 1)
       .getName()
       .equals(FIRST_POPOVER_FRAGMENT_FLAG)) {
     isLast = true;
   }
   fm.popBackStack();
   if (isLast) {
     viewHolder.showHideExtendFragment(View.GONE);
   }
 }
  @Override
  public void onBackStackChanged() {

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
      FragmentManager.BackStackEntry fragment = mFragmentManager.getBackStackEntryAt(count - 1);
      mPath = fragment.getName();
    } else {
      mPath = EXTERNAL_BASE_PATH;
    }

    setTitle(mPath);
    if (HAS_ACTIONBAR) invalidateOptionsMenu();
  }
  public boolean closeFragment() {
    try {
      FragmentManager fragmentManager = MainActivity.getInstance().getSupportFragmentManager();
      int count = fragmentManager.getBackStackEntryCount();
      if (count > 0) {
        BackStackEntry entry = fragmentManager.getBackStackEntryAt(count - 1);

        fragmentManager.popBackStack(entry.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
        popFragment(1);
        return true;
      }
    } catch (Exception e) {
    }

    return false;
  }
 /*package*/ void finishFragment() {
   FragmentActivity activity = getActivity();
   if (activity instanceof JRFragmentHostActivity) {
     if (mFragmentResult != null) ((JRFragmentHostActivity) activity)._setResult(mFragmentResult);
     activity.finish();
   } else if (null != activity) {
     FragmentManager fm = activity.getSupportFragmentManager();
     int bsec = fm.getBackStackEntryCount();
     if (bsec > 0 && fm.getBackStackEntryAt(bsec - 1).getName().equals(getLogTag())) {
       fm.popBackStack();
     } else if (bsec > 0) {
       Log.e(TAG, "Error trying to finish fragment not on top of back stack");
       fm.popBackStack(getLogTag(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
     } else { // bsec == 0
       // Root fragment, if it's finishing it's because authentication finished?
       fm.beginTransaction().remove(this).setTransition(FragmentTransaction.TRANSIT_NONE).commit();
     }
   }
 }
  private void clearBackStack() {
    FragmentManager fragmentManager = getSupportFragmentManager();

    if (0 < fragmentManager.getBackStackEntryCount()) {
      int id = fragmentManager.getBackStackEntryAt(0).getId();
      fragmentManager.popBackStackImmediate(id, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }

    List<Fragment> fragments = fragmentManager.getFragments();
    if (fragments == null) {
      return;
    }
    FragmentTransaction trans = fragmentManager.beginTransaction();
    for (Fragment fragment : fragments) {
      if (fragment != null) {
        trans.remove(fragment);
      }
    }
    trans.commit();
  }
  @Override
  public void onNavigationDrawerItemSelected(int position) {

    FragmentManager fragmentManager = getSupportFragmentManager();
    Fragment nextFragment;

    // Bug Fix: if the last fragment was the movie detail frag and you are in portrait mode on a
    // tablet clicking on the list view item will only reload the detail fragment
    if (fragmentManager.getBackStackEntryCount() != 0) {
      FragmentManager.BackStackEntry fragEntry =
          fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1);
      if (fragEntry != null) {
        String fragName = fragEntry.getName();
        if (fragName != null && fragName.equalsIgnoreCase("Book Detail")) {
          int currentOrientation = getResources().getConfiguration().orientation;
          if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) {
            getSupportFragmentManager().popBackStackImmediate();
          }
        }
      }
    }

    switch (position) {
      default:
      case 0:
        nextFragment = new ListOfBooks();
        break;
      case 1:
        nextFragment = new AddBook();
        break;
      case 2:
        nextFragment = new About();
        break;
    }

    fragmentManager
        .beginTransaction()
        .replace(R.id.container, nextFragment)
        .addToBackStack((String) title)
        .commit();
  }
示例#12
0
  @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);
      }
    }

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

    if (formulaEditorVariableListFragment != null
        && formulaEditorVariableListFragment.isVisible()) {
      return formulaEditorVariableListFragment.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);
  }