// utility method used to start sub activity
 private void startApplicationDetailsActivity() {
   switch (mListType) {
     case LIST_TYPE_NOTIFICATION:
       startAppInfoFragment(AppNotificationSettings.class, R.string.app_notifications_title);
       break;
     case LIST_TYPE_DOMAINS_URLS:
       startAppInfoFragment(AppLaunchSettings.class, R.string.auto_launch_label);
       break;
     case LIST_TYPE_USAGE_ACCESS:
       startAppInfoFragment(UsageAccessDetails.class, R.string.usage_access);
       break;
     case LIST_TYPE_STORAGE:
       startAppInfoFragment(AppStorageSettings.class, R.string.storage_settings);
       break;
     case LIST_TYPE_HIGH_POWER:
       HighPowerDetail.show(this, mCurrentPkgName, INSTALLED_APP_DETAILS, mFinishAfterDialog);
       break;
     case LIST_TYPE_OVERLAY:
       startAppInfoFragment(DrawOverlayDetails.class, R.string.overlay_settings);
       break;
     case LIST_TYPE_WRITE_SETTINGS:
       startAppInfoFragment(WriteSettingsDetails.class, R.string.write_system_settings);
       break;
       // TODO: Figure out if there is a way where we can spin up the profile's settings
       // process ahead of time, to avoid a long load of data when user clicks on a managed app.
       // Maybe when they load the list of apps that contains managed profile apps.
     default:
       startAppInfoFragment(InstalledAppDetails.class, R.string.application_info_label);
       break;
   }
 }
    private void updateSummary(AppViewHolder holder) {
      switch (mManageApplications.mListType) {
        case LIST_TYPE_NOTIFICATION:
          if (holder.entry.extraInfo != null) {
            holder.summary.setText(
                InstalledAppDetails.getNotificationSummary(
                    (AppRow) holder.entry.extraInfo, mContext));
          } else {
            holder.summary.setText(null);
          }
          break;

        case LIST_TYPE_DOMAINS_URLS:
          holder.summary.setText(getDomainsSummary(holder.entry.info.packageName));
          break;

        case LIST_TYPE_USAGE_ACCESS:
          if (holder.entry.extraInfo != null) {
            holder.summary.setText(
                (new UsageState((PermissionState) holder.entry.extraInfo)).isPermissible()
                    ? R.string.switch_on_text
                    : R.string.switch_off_text);
          } else {
            holder.summary.setText(null);
          }
          break;

        case LIST_TYPE_HIGH_POWER:
          holder.summary.setText(HighPowerDetail.getSummary(mContext, holder.entry));
          break;

        case LIST_TYPE_OVERLAY:
          holder.summary.setText(DrawOverlayDetails.getSummary(mContext, holder.entry));
          break;

        case LIST_TYPE_WRITE_SETTINGS:
          holder.summary.setText(WriteSettingsDetails.getSummary(mContext, holder.entry));
          break;

        default:
          holder.updateSizeText(mManageApplications.mInvalidSizeStr, mWhichSize);
          break;
      }
    }