docs: public List<String> requestPermissions(@NonNull Activity activity, @NonNull String[] permissions, int requestCode) {
          Log.v(TAG, String.format("Requesting user approval for %d permissions", permissions.length));
          List<String> permissionsToExplain = new ArrayList<>();
          for (String p : permissions) {
              if (ActivityCompat.shouldShowRequestPermissionRationale(activity, p)) {
                  permissionsToExplain.add(p);
              }
          }
          if (!permissionsToExplain.isEmpty()) {
              Log.d(TAG, String.format("%d permissions need an explanation or were explicitly declined by the user.", permissionsToExplain.size()));
          }
          this.lastRequestCode = requestCode;
          ActivityCompat.requestPermissions(activity,
                  permissions, requestCode);
  
          return permissionsToExplain;
      }