@Override
  public void selectModel(boolean incognito) {
    TabModel oldModel = getCurrentModel();
    super.selectModel(incognito);
    TabModel newModel = getCurrentModel();
    if (oldModel != newModel) {
      TabModelUtils.setIndex(newModel, newModel.index());

      // Make the call to notifyDataSetChanged() after any delayed events
      // have had a chance to fire. Otherwise, this may result in some
      // drawing to occur before animations have a chance to work.
      new Handler()
          .post(
              new Runnable() {
                @Override
                public void run() {
                  notifyChanged();
                }
              });
    }
  }