...PermissionsDispatcher introduces only a few annotations, keeping its general API concise. Annotate a method that explains why the permissions are needed. It passes in a PermissionRequest object which can be used to continue or abort the current permission request upon user input. Annotate a method that is invoked if the user doesn't grant the permissions. Annotate a method that is invoked if the user chose to have the device "never ask again" about permission. Now generated functions become much more concise and intuitive than Java version!