code: public void start(@NonNull Activity activity, @NonNull AuthCallback callback, int permissionRequestCode, int authenticationRequestCode) {
          this.callback = callback;
          this.authenticationRequestCode = authenticationRequestCode;
  
          if (checkPermissions(activity)) {
              Log.v(TAG, "All permissions were already granted, the authentication flow is starting.");
              requestAuth(activity, authenticationRequestCode);
          } else {
              Log.d(TAG, "Some permissions were not previously granted, requesting them now.");
              requestPermissions(activity, permissionRequestCode);
          }
      }
docs: Checks that the required permissions are granted before starting the authentication process,
  and if everything is fine, the process begins. If some permissions were not granted before,
  a Permission Request will be launched and the caller activity will receive its results on the
  onRequestPermissionsResult method, from the ActivityCompat.OnRequestPermissionsResultCallback
  interface.
  
  @param activity                  a valid activity context.
  @param callback                  the callback to notify the authentication result
  @param permissionRequestCode     the code to use in the Permissions Request.
  @param authenticationRequestCode the code to use in the Authentication Request.