private void populateViewFlipper() {
    if (mTermService != null) {
      mTermSessions = mTermService.getSessions();
      mTermSessions.addCallback(this);

      if (mTermSessions.size() == 0) {
        mTermSessions.add(createTermSession());
      }

      for (TermSession session : mTermSessions) {
        EmulatorView view = createEmulatorView(session);
        mViewFlipper.addView(view);
      }

      updatePrefs();

      Intent intent = getIntent();
      int flags = intent.getFlags();
      String action = intent.getAction();
      if ((flags & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0 && action != null) {
        if (action.equals(RemoteInterface.PRIVACT_OPEN_NEW_WINDOW)) {
          mViewFlipper.setDisplayedChild(mTermSessions.size() - 1);
        } else if (action.equals(RemoteInterface.PRIVACT_SWITCH_WINDOW)) {
          int target = intent.getIntExtra(RemoteInterface.PRIVEXTRA_TARGET_WINDOW, -1);
          if (target >= 0) {
            mViewFlipper.setDisplayedChild(target);
          }
        }
      }

      mViewFlipper.resumeCurrentView();
    }
  }
 public boolean onNavigationItemSelected(int position, long id) {
   int oldPosition = mViewFlipper.getDisplayedChild();
   if (position != oldPosition) {
     mViewFlipper.setDisplayedChild(position);
     if (mActionBarMode == TermSettings.ACTION_BAR_MODE_HIDES) {
       mActionBar.hide();
     }
   }
   return true;
 }
  private void doCreateNewWindow() {
    if (mTermSessions == null) {
      Log.w(TermDebug.LOG_TAG, "Couldn't create new window because mTermSessions == null");
      return;
    }

    TermSession session = createTermSession();
    mTermSessions.add(session);

    TermView view = createEmulatorView(session);
    view.updatePrefs(mSettings);

    mViewFlipper.addView(view);
    mViewFlipper.setDisplayedChild(mViewFlipper.getChildCount() - 1);
  }
  @Override
  public void onResume() {
    super.onResume();

    SessionList sessions = mTermSessions;
    TermViewFlipper viewFlipper = mViewFlipper;
    if (sessions != null) {
      sessions.addCallback(this);
      WindowListAdapter adapter = mWinListAdapter;
      if (adapter != null) {
        sessions.addCallback(adapter);
        sessions.addTitleChangedListener(adapter);
        viewFlipper.addCallback(adapter);
      }
    }
    if (sessions != null && sessions.size() < viewFlipper.getChildCount()) {
      for (int i = 0; i < viewFlipper.getChildCount(); ++i) {
        EmulatorView v = (EmulatorView) viewFlipper.getChildAt(i);
        if (!sessions.contains(v.getTermSession())) {
          v.onPause();
          viewFlipper.removeView(v);
          --i;
        }
      }
    }

    mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    // the HOME dir needs to be set here since it comes from Context
    SharedPreferences.Editor editor = mPrefs.edit();
    String defValue = getDir("HOME", MODE_PRIVATE).getAbsolutePath();
    String homePath = mPrefs.getString("home_path", defValue);
    editor.putString("home_path", homePath);
    editor.commit();

    mSettings.readPrefs(mPrefs);
    updatePrefs();

    if (onResumeSelectWindow >= 0) {
      viewFlipper.setDisplayedChild(onResumeSelectWindow);
      onResumeSelectWindow = -1;
    }
    viewFlipper.onResume();
  }