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.