class ActivityPermissionsRequester implements PermissionRequester {

    @NonNull
    @Override
    public Single<PermissionAuthorizationResponse> request(@NonNull String manifestPermission) {
        Logger.info(this, "Requesting permission: {}", manifestPermission);
        try {
            return permissionRequesterFactory.get().request(manifestPermission);
        } catch (IllegalStateException e) {
            return Single.error(e);
        }
    }

    @Inject public  ActivityPermissionsRequester(@NonNull T activity);
    @VisibleForTesting public  ActivityPermissionsRequester(@NonNull HeadlessFragmentPermissionRequesterFactory permissionRequesterFactory);

}