DropletPermissionsService
Checks and requests the macOS permissions behind a capability.
@MainActor protocol DropletPermissionsService : AnyObject
The host owns every TCC prompt: a droplet asks, Droppy prompts. That keeps the prompt attributed to Droppy, which is what the user granted.
Methods
openSystemSettings(for:)
@MainActor func openSystemSettings(for permission: DropletPermission)
Opens the relevant System Settings pane, for use after .denied.
request(_:)
@MainActor func request(_ permission: DropletPermission) async -> DropletPermissionStatus
Asks the host to request the permission. Returns the resulting status. Never call this at activation time; ask when the user reaches for the feature that needs it.
status(for:)
@MainActor func status(for permission: DropletPermission) -> DropletPermissionStatus
Current status for a capability that maps to a system permission.