/** Set the ContentView to be either the grid of thumbnails or the vertical list. */
  private void switchViewMode(BookmarkViewMode viewMode) {
    if (mViewMode == viewMode) {
      return;
    }

    mViewMode = viewMode;

    // Update the preferences to make the new view mode sticky.
    Editor ed = getPreferences(MODE_PRIVATE).edit();
    if (mMostVisited) {
      ed.putInt(PREF_MOST_VISITED_VIEW_MODE, mViewMode.ordinal());
    } else {
      ed.putInt(PREF_BOOKMARK_VIEW_MODE, mViewMode.ordinal());
    }
    ed.apply();

    if (mBookmarksAdapter != null) {
      mBookmarksAdapter.switchViewMode(viewMode);
    }
    if (mViewMode == BookmarkViewMode.GRID) {
      if (mGridPage == null) {
        mGridPage = new GridView(this);
        if (mBookmarksAdapter != null) {
          mGridPage.setAdapter(mBookmarksAdapter);
        }
        mGridPage.setOnItemClickListener(mListener);
        mGridPage.setNumColumns(GridView.AUTO_FIT);
        mGridPage.setColumnWidth(BrowserActivity.getDesiredThumbnailWidth(this));
        mGridPage.setFocusable(true);
        mGridPage.setFocusableInTouchMode(true);
        mGridPage.setSelector(android.R.drawable.gallery_thumb);
        float density = getResources().getDisplayMetrics().density;
        mGridPage.setVerticalSpacing((int) (14 * density));
        mGridPage.setHorizontalSpacing((int) (8 * density));
        mGridPage.setStretchMode(GridView.STRETCH_SPACING);
        mGridPage.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
        mGridPage.setDrawSelectorOnTop(true);
        if (mMostVisited) {
          mGridPage.setEmptyView(mEmptyView);
        }
        if (!mCreateShortcut) {
          mGridPage.setOnCreateContextMenuListener(this);
        }
      }
      addContentView(mGridPage, FULL_SCREEN_PARAMS);
      if (mVerticalList != null) {
        ViewGroup parent = (ViewGroup) mVerticalList.getParent();
        if (parent != null) {
          parent.removeView(mVerticalList);
        }
      }
    } else {
      if (null == mVerticalList) {
        ListView listView = new ListView(this);
        if (mBookmarksAdapter != null) {
          listView.setAdapter(mBookmarksAdapter);
        }
        listView.setDrawSelectorOnTop(false);
        listView.setVerticalScrollBarEnabled(true);
        listView.setOnItemClickListener(mListener);
        if (mMostVisited) {
          listView.setEmptyView(mEmptyView);
        }
        if (!mCreateShortcut) {
          listView.setOnCreateContextMenuListener(this);
        }
        mVerticalList = listView;
      }
      addContentView(mVerticalList, FULL_SCREEN_PARAMS);
      if (mGridPage != null) {
        ViewGroup parent = (ViewGroup) mGridPage.getParent();
        if (parent != null) {
          parent.removeView(mGridPage);
        }
      }
    }
  }