code: public void onRequestPermissionsResult(@NonNull Activity activity, int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
          List<String> declinedPermissions = handler.parseRequestResult(requestCode, permissions, grantResults);
  
          if (declinedPermissions.isEmpty()) {
              Log.v(TAG, "All permissions were granted!");
              requestAuth(activity, authenticationRequestCode);
          } else if (callback != null) {
              Log.e(TAG, "Permission Request failed. Some permissions were not granted!");
              String message = String.format(activity.getString(R.string.com_auth0_webauth_permission_missing_description), declinedPermissions);
              Dialog permissionDialog = new AlertDialog.Builder(activity)
                      .setTitle(R.string.com_auth0_webauth_permission_missing_title)
                      .setMessage(message)
                      .setPositiveButton(android.R.string.ok, null)
                      .create();
              callback.onFailure(permissionDialog);
          }
      }
docs: Should be called from the activity that initiated the Android Manifest.permission request,
  when the method #onRequestPermissionResult is called on that activity. If all the permissions
  are now granted, the authentication flow will begin.
  
  @param activity     a valid activity context.
  @param requestCode  the request code
  @param permissions  the requested permissions
  @param grantResults the grant results for each permission