Esempio n. 1
0
 /*
  * We call super.onBackPressed(); when the stack entry count is > 0. if it
  * is instanceof ProductListFragment or if the stack entry count is == 0, then
  * we finish the activity.
  * In other words, from ProductListFragment on back press it quits the app.
  */
 @Override
 public void onBackPressed() {
   FragmentManager fm = getSupportFragmentManager();
   if (fm.getBackStackEntryCount() > 0) {
     super.onBackPressed();
   } else if (contentFragment instanceof ProductListFragment || fm.getBackStackEntryCount() == 0) {
     finish();
   }
 }
 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);
   }
 }
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    int itemId = item.getItemId();

    if (itemId == android.R.id.home) {
      FragmentManager fm = getSupportFragmentManager();
      if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
        setupBaseLayout();
        return true;
      }
    } else if (itemId == R.id.menu_search) {
      FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
      if (mSearchFragment == null) {
        mSearchFragment = ThemeSearchFragment.newInstance();
      }
      ft.add(R.id.theme_browser_container, mSearchFragment, ThemeSearchFragment.TAG);
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
      ft.addToBackStack(null);
      ft.commit();
      return true;
    }

    return super.onOptionsItemSelected(item);
  }
Esempio n. 4
0
  @Override
  public void onBackPressed() {
    FragmentManager manager = getSupportFragmentManager();
    long currentTimeMillis = System.currentTimeMillis();
    if (manager.getBackStackEntryCount() == 0) {
      boolean shouldExit = ((currentTimeMillis - lastBackPressTime) / 1000) < 3000;
      if (shouldExit) {
        super.onBackPressed();
      } else {
        Toast.makeText(this, "Press back again to exit", Toast.LENGTH_LONG).show();
      }
    } else {
      // If there are back-stack entries, leave the FragmentActivity
      // implementation take care of them.
      // super.onBackPressed();
      manager.popBackStack();

      if (preTitle1 != null) {
        tv_thu_menu.setText(preTitle1);
        preTitle1 = null;
      } else if (preTitle != null) {
        tv_thu_menu.setText(preTitle);
        if (preTitle.equalsIgnoreCase(weekDay)) {
          tv_ngay_menu.setVisibility(View.VISIBLE);
        } else {
          tv_ngay_menu.setVisibility(View.GONE);
        }
        preTitle = null;
      }
    }
    lastBackPressTime = currentTimeMillis;
  }
Esempio n. 5
0
 @Override
 public void onBackPressed() {
   if (fragmentManager.getBackStackEntryCount() > 0) {
     fragmentManager.popBackStackImmediate();
     return;
   }
   super.onBackPressed();
 }
 private void pushBackStackEntry() {
   if (mBackStackLevel != null) {
     return;
   }
   FragmentManager fragMan = getFragmentManager();
   mBackStackLevel = fragMan.getBackStackEntryCount();
   fragMan.beginTransaction().addToBackStack(BACK_STACK_INPUT).commit();
   fragMan.addOnBackStackChangedListener(this);
 }
 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();
   }
 }
Esempio n. 8
0
 @Override
 public void onBackPressed() {
   if (drawer.isDrawerOpen()) {
     drawer.closeDrawer();
   } else if (!curFrag.onBackPressed()) {
     if (fragmentManager.getBackStackEntryCount() == 0) drawer.openDrawer();
     else super.onBackPressed();
   }
 }
Esempio n. 9
0
 @Override
 public void onBackPressed() {
   FragmentManager fragmentManager = getSupportFragmentManager();
   if (fragmentManager.getBackStackEntryCount() > 0) {
     fragmentManager.popBackStack();
   } else {
     super.onBackPressed();
   }
 }
Esempio n. 10
0
  @Override
  public void switchToWelcome() {
    for (int i = 0; i < fm.getBackStackEntryCount(); ++i) {
      fm.popBackStack();
    }

    Intent intent = new Intent(this, WelcomeActivity.class);
    startActivity(intent);
  }
 @Override
 public void onBackStackChanged() {
   FragmentManager fragMan = getFragmentManager();
   if (mBackStackLevel != null && fragMan.getBackStackEntryCount() == mBackStackLevel) {
     fragMan.removeOnBackStackChangedListener(this);
     switchState(BackupCodeState.STATE_DISPLAY, true);
     mBackStackLevel = null;
   }
 }
Esempio n. 12
0
 // 返回键返回事件
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
   if (KeyEvent.KEYCODE_BACK == keyCode) {
     if (mFragmentManager.getBackStackEntryCount() == 1) {
       finish();
       return true;
     }
   }
   return super.onKeyDown(keyCode, event);
 }
Esempio n. 13
0
  @Override
  public void customOnNavigateUp() {
    final FragmentManager manager = getSupportFragmentManager();
    if (manager.getBackStackEntryCount() == 0) {
      NavUtils.navigateUpFromSameTask(this);
      return;
    }

    manager.popBackStack();
  }
Esempio n. 14
0
 // 切界面
 public void changeFrament(Fragment fragment, Bundle bundle, String tag) {
   for (int i = 0, count = fragmentManager.getBackStackEntryCount(); i < count; i++) {
     fragmentManager.popBackStack();
   }
   FragmentTransaction fg = fragmentManager.beginTransaction();
   fragment.setArguments(bundle);
   fg.add(R.id.fragmentRootLinearLayout, fragment, tag);
   fg.addToBackStack(tag);
   fg.commitAllowingStateLoss();
 }
Esempio n. 15
0
 private void popFragmentStack() {
   if (((MainActivity) getActivity()).getOnKeyBackPressedListener() instanceof FanFragment) {
     if (mFM.getBackStackEntryCount() > 0) {
       mFM.popBackStack();
     } else {
       MainActivity activity = (MainActivity) getActivity();
       activity.setOnKeyBackPressedListener(null);
       activity.onBackPressed();
     }
   }
 }
 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;
     }
 }
Esempio n. 17
0
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_BACK) {
     FragmentManager fragmentManager = getSupportFragmentManager();
     if (fragmentManager.getBackStackEntryCount() > 1) {
       fragmentManager.popBackStack();
       return false;
     }
   }
   return super.onKeyDown(keyCode, event);
 }
  @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();
  }
  // ======================== FRAGMENT CALLBACKS ====================
  @Override
  public void onBackStackChanged() {
    boolean canback = fragmentManager.getBackStackEntryCount() > 0;
    getSupportActionBar().setDisplayHomeAsUpEnabled(canback);
    Log.d("", "onBackStackChanged");

    if (!canback) {
      TextView tv =
          (TextView) getSupportActionBar().getCustomView().findViewById(R.id.action_bar_title);
      tv.setText("Albums");
    }
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    if (HAS_ACTIONBAR) {
      boolean hasBackStack = mFragmentManager.getBackStackEntryCount() > 0;

      ActionBar actionBar = getActionBar();
      actionBar.setDisplayHomeAsUpEnabled(hasBackStack);
      actionBar.setHomeButtonEnabled(hasBackStack);
    }

    return true;
  }
  public void clear() {
    FragmentElement fragmentElement = popInternal();
    while (fragmentElement != null) {
      hide(fragmentElement.getFragment());
      fragmentElement = popInternal();
    }

    int backStackSize = fm.getBackStackEntryCount();
    for (int i = 0; i < backStackSize; i++) {
      fm.popBackStack();
    }
  }
 @Override
 public void onBackPressed() {
   FragmentManager fm = getSupportFragmentManager();
   if (mMenuDrawer.isMenuVisible()) {
     super.onBackPressed();
   } else if (fm.getBackStackEntryCount() > 0) {
     fm.popBackStack();
     setupBaseLayout();
   } else {
     super.onBackPressed();
   }
 }
  @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);
  }
Esempio n. 24
0
 private void checkBackStack() {
   int stackHeight = mFM.getBackStackEntryCount();
   if (stackHeight
       > 0) { // if we have something on the stack (doesn't include the current shown fragment)
     ((MainActivity) getActivity()).getSupportActionBar().setHomeButtonEnabled(true);
     ((MainActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
     actionSearch.setVisibility(View.GONE);
   } else {
     ((MainActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
     ((MainActivity) getActivity()).getSupportActionBar().setHomeButtonEnabled(false);
     actionSearch.setVisibility(View.VISIBLE);
   }
 }
Esempio n. 25
0
 @Override
 public void onBackPressed() {
   if (binding.drawer.isDrawerOpen(GravityCompat.START)) {
     binding.drawer.closeDrawer(GravityCompat.START);
     return;
   }
   FragmentManager fm = getSupportFragmentManager();
   if (fm.getBackStackEntryCount() > 0) {
     fm.popBackStack();
     return;
   }
   super.onBackPressed();
 }
Esempio n. 26
0
 @Override
 public void onBack() {
   if (((MainActivity) getActivity()).getOnKeyBackPressedListener()
       instanceof NotificationFragment) {
     if (mFM.getBackStackEntryCount() > 0) {
       mFM.popBackStack();
     } else {
       MainActivity activity = (MainActivity) getActivity();
       activity.setOnKeyBackPressedListener(null);
       activity.onBackPressed();
     }
   }
 }
  @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();
  }
Esempio n. 28
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);
   }
 }
Esempio n. 29
0
 private void onSessionStateChange(Session session, SessionState state, Exception exception) {
   if (isResumed) {
     FragmentManager manager = getSupportFragmentManager();
     int backStackSize = manager.getBackStackEntryCount();
     for (int i = 0; i < backStackSize; i++) {
       manager.popBackStack();
     }
     if (state.isOpened()) {
       showFragment(SELECTION, false);
     } else if (state.isClosed()) {
       showFragment(SPLASH, false);
     }
   }
 }
Esempio n. 30
0
 @Override
 public void goBack() {
   FragmentManager fragmentManager = getSupportFragmentManager();
   if (mDisplayMode == DisplayMode.MESSAGE_VIEW) {
     showMessageList();
   } else if (fragmentManager.getBackStackEntryCount() > 0) {
     fragmentManager.popBackStack();
   } else if (mMessageListFragment.isManualSearch()) {
     finish();
   } else if (!mSingleFolderMode) {
     onAccounts();
   } else {
     onShowFolderList();
   }
 }