request static method
Requests runtime permission authorization from the user.
Displays the host OS permission dialog if not previously determined.
Example:
final status = await BloomPermissions.request(BloomPermission.camera);
Implementation
static Future<BloomPermissionStatus> request(BloomPermission permission) async {
if (_simulatedPermissions.containsKey(permission)) {
final sim = _simulatedPermissions[permission]!;
logger.info('BloomPermissions: [SIMULATED] Permission result for $permission -> $sim');
return sim;
}
try {
logger.info('BloomPermissions: Requesting runtime permission for $permission');
final phPermission = permission.toPermissionHandler();
final status = await phPermission.request();
final bloomStatus = status.toBloomStatus();
logger.info('BloomPermissions: Permission result for $permission -> $bloomStatus');
return bloomStatus;
} catch (e) {
logger.warn('BloomPermissions: Failed to request permission $permission: $e');
return BloomPermissionStatus.denied;
}
}