Package-level declarations

Types

Link copied to clipboard

Android implementation of SavedStateDelegate using SavedStateHandle.

Link copied to clipboard

A platform-agnostic abstraction for the most common system permissions.

Link copied to clipboard

Aggregate status for Bluetooth feature readiness.

Link copied to clipboard
class GrantAndServiceChecker(grantManager: GrantManager, serviceManager: ServiceManager)

A utility that combines OS permission checks and hardware service monitoring into a single unified API.

Link copied to clipboard
class GrantAndServiceHandler(grantManager: GrantManager, serviceManager: ServiceManager, grant: GrantPermission, serviceType: ServiceType, scope: CoroutineScope, savedStateDelegate: SavedStateDelegate = NoOpSavedStateDelegate(), eventListener: GrantEventListener? = null)

A unified handler that orchestrates both OS permission requests and hardware service enablement (e.g., GPS, Bluetooth).

Link copied to clipboard
data class GrantAndServiceUiState(val isVisible: Boolean = false, val showRationale: Boolean = false, val showPermissionSettings: Boolean = false, val showServiceSettings: Boolean = false, val rationaleMessage: String? = null, val permissionSettingsMessage: String? = null, val serviceSettingsMessage: String? = null, val isReady: Boolean = false)

UI State for the unified Grant and Service flow.

Link copied to clipboard

Observer for permission flow events across GrantHandler, GrantGroupHandler, and GrantAndServiceHandler.

Link copied to clipboard

A static factory for creating GrantManager instances without a Dependency Injection framework.

Link copied to clipboard
class GrantFlow

A DSL builder for orchestrating sequential multi-permission flows.

Link copied to clipboard
interface GrantFlowScope

Scope for the grantFlow builder, providing utility functions for sequential permission handling.

Link copied to clipboard
class GrantGroupHandler(grantManager: GrantManager, grants: List<GrantPermission>, scope: CoroutineScope, eventListener: GrantEventListener? = null)

A specialized handler for managing multiple permissions as a single logical group.

Link copied to clipboard
data class GrantGroupUiState(val isVisible: Boolean = false, val currentGrant: GrantPermission? = null, val showRationale: Boolean = false, val showSettingsGuide: Boolean = false, val rationaleMessage: String? = null, val settingsMessage: String? = null, val grantedGrants: Set<GrantPermission> = emptySet(), val totalGrants: Int = 0)

The UI state produced by GrantGroupHandler.

Link copied to clipboard
class GrantHandler(grantManager: GrantManager, grant: GrantPermission, scope: CoroutineScope, savedStateDelegate: SavedStateDelegate = NoOpSavedStateDelegate(), eventListener: GrantEventListener? = null)

Encapsulates ALL grant logic in a clean, reusable component.

Link copied to clipboard
interface GrantLauncher

Interface for platform-specific permission launchers.

Link copied to clipboard
interface GrantManager

Core interface for grant management.

Link copied to clipboard
sealed interface GrantPermission

Represents a system permission that can be requested on Android and iOS.

Link copied to clipboard

The unified state of a system permission across Android and iOS.

Link copied to clipboard
interface GrantStore

An abstraction for tracking the history of permission requests.

Link copied to clipboard
data class GrantUiState(val isVisible: Boolean = false, val showRationale: Boolean = false, val showSettingsGuide: Boolean = false, val rationaleMessage: String? = null, val settingsMessage: String? = null)

UI State for grant dialogs.

Link copied to clipboard

The default implementation of GrantStore that persists state in-memory.

Link copied to clipboard
sealed class LocationReadyStatus

Aggregate status for Location feature readiness.

Link copied to clipboard

A no-op implementation used on platforms where process death recovery is not required (e.g., iOS, Desktop).

Link copied to clipboard
data class RawPermission(val identifier: String, val androidPermissions: List<String>, val iosUsageKey: String? = null) : GrantPermission

A custom permission defined by raw platform strings.

Link copied to clipboard
data class ReadyStatus(val grantStatus: GrantStatus, val serviceStatus: ServiceStatus, val isReady: Boolean)

A generic data structure representing the aggregate state of a permission and service.

Link copied to clipboard

A platform-agnostic interface for persisting UI state across system-initiated process death.

Link copied to clipboard
actual object ServiceFactory
expect object ServiceFactory

A static factory for creating ServiceManager instances.

actual object ServiceFactory
actual object ServiceFactory
actual object ServiceFactory
Link copied to clipboard
interface ServiceManager

Manages the status of system-level services like GPS, Bluetooth, and Wi-Fi.

Link copied to clipboard

The operational state of a system service.

Link copied to clipboard

The types of hardware or system services that can be monitored.

Link copied to clipboard

A GrantStore that persists permission request history across process death.

Functions

Link copied to clipboard

Android implementation of platform delegate factory.

Platform-specific factory function. Internal use only.

actual fun createPlatformDelegate(context: Any?, store: <Error class: unknown class>?): PlatformGrantDelegate

iOS implementation of platform delegate factory.

JVM desktop implementation of the platform delegate factory.

The browser has no "context" concept — context is accepted for API-shape parity with Android/iOS and ignored. store defaults to InMemoryGrantStore and, unlike Android, that default is also the correct choice on the web: the browser's own permission record is already durable across page loads, so there is no process-death-style gap for a persistent store to close here.

Link copied to clipboard

Extension for getting the status of any GrantPermission.

Link copied to clipboard
fun grantFlow(block: suspend GrantFlowScope.() -> Unit): GrantFlow

Creates a new GrantFlow for orchestrating sequential permission requests.

Link copied to clipboard

Extension for checking if any GrantPermission has been requested before.

Link copied to clipboard

Extension for marking any GrantPermission as requested.