@Override
  public void onRequestPermissionsResult(
      int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == PBPreferenceFragment.PERMISSION_READ_EXTERNAL_STORAGE) {
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        Log.i("PBPreferenceFragment", "READ_EXTERNAL_STORAGE permission granted.");
        preferenceFragment.testMediaSender(); // continue to next step
      } else {
        Log.i("PBPreferenceFragment", "READ_EXTERNAL_STORAGE was NOT granted.");
        Toast.makeText(this, R.string.toast_permission_not_granted, Toast.LENGTH_LONG).show();
      }
    }
  }
 @Override
 public void onRequestPermissionsResult(
     int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
   super.onRequestPermissionsResult(requestCode, permissions, grantResults);
   switch (requestCode) {
     case REQUEST_CODE_CAMERA:
       boolean cameraPermissionGranted =
           grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
       if (cameraPermissionGranted) {
         launchCamera();
       } else {
         showPermissionDenied();
       }
       break;
   }
 }
 @Override
 public void onRequestPermissionsResult(
     int requestCode, String[] permissions, int[] grantResults) {
   super.onRequestPermissionsResult(requestCode, permissions, grantResults);
   Log.i(TAG, "onRequestPermissionsResult:+");
   if (requestCode == REQUEST_PERMISSIONS) {
     if (permissions.length == grantResults.length) {
       int grantedCount = 0;
       for (int i = 0; i < grantResults.length; i++) {
         Log.i(
             TAG,
             String.format(
                 "onRequestPermissionsResult: %d:permission=%s grantResults=%d",
                 i, permissions[i], grantResults[i]));
         if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
           grantedCount += 1;
         }
       }
       if (grantedCount != permissions.length) {
         for (int i = 0; i < grantResults.length; i++) {
           if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
             Log.i(
                 TAG,
                 String.format(
                     "onRequestPermissionsResult: permission:%s%sgranted",
                     permissions[i],
                     grantResults[i] == PackageManager.PERMISSION_DENIED ? " not " : " "));
           }
         }
         mBtAllowed = false;
         showFatalToast("Permissions needed were denied");
       } else {
         mBtAllowed = true;
         startScan();
       }
     } else {
       Log.wtf(
           TAG,
           String.format(
               "onRequestPermissionsResult: permissions.length:%d !=" + "grantResults.length:%d",
               permissions.length, grantResults.length));
     }
   } else {
     Log.i(TAG, "onRequestPermissionsResult: ignore unknown requestCode=" + requestCode);
   }
   Log.i(TAG, "onRequestPermissionsResult:-");
 }