@Override
  public void onPrepareSubMenu(SubMenu subMenu) {
    // Clear since the order of items may change.
    subMenu.clear();

    ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mHistoryFileName);
    PackageManager packageManager = mContext.getPackageManager();

    // Populate the sub-menu with a sub set of the activities.
    final int count = dataModel.getActivityCount();
    for (int i = 0; i < count; i++) {
      ResolveInfo activity = dataModel.getActivity(i);
      subMenu
          .add(0, i, i, activity.loadLabel(packageManager))
          .setIcon(activity.loadIcon(packageManager))
          .setOnMenuItemClickListener(mCallbacks);
    }
  }