Package-level declarations

Types

Link copied to clipboard
class AndroidPermissionsManager(context: Context = ApplicationHolder.applicationContext, permissions: Array<String> = emptyArray(), coroutineScope: CoroutineScope, logTag: String = "AndroidPermissionManager", logger: Logger = RestrictedLogger(RestrictedLogLevel.None), onPermissionChanged: AndroidPermissionStateHandler) : CoroutineScope

Convenience class for requesting a Permission and monitoring AndroidPermissionState

Link copied to clipboard

The state of a permission according to the Android System

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
abstract class BasePermissionManager<P : Permission>(val permission: P, settings: BasePermissionManager.Settings, coroutineScope: CoroutineScope) : PermissionManager<P> , CoroutineScope

An abstract PermissionManager that ensures events wont be missed

Link copied to clipboard

Base type for all permissions builders. Each permission component implements a concrete permissions builder and registers it in PermissionsBuilder.register.

Link copied to clipboard
abstract class BasePermissionStateRepo<P : Permission>(createUninitializedState: () -> PermissionState.Uninitialized<P>, createInitializingState: suspend ColdStateFlowRepo<PermissionState<P>>.(PermissionState.Inactive<P>) -> suspend () -> PermissionState.Initializing<P>, createDeinitializedState: suspend ColdStateFlowRepo<PermissionState<P>>.(PermissionState.Active<P>) -> suspend () -> PermissionState.Deinitialized<P> = { it.deinitialize }, coroutineContext: CoroutineContext) : ColdStateFlowRepo<PermissionState<P>>

An abstract ColdStateFlowRepo for managing PermissionState

Link copied to clipboard

Provides the current IOSPermissionsHelper.AuthorizationStatus of a given permission.

Link copied to clipboard
Link copied to clipboard
class DefaultAuthorizationStatusHandler(eventChannel: <Error class: unknown class><<Error class: unknown class>>, logTag: String, logger: <Error class: unknown class>) : AuthorizationStatusHandler

Default implementation of AuthorizationStatusHandler. Maps AuthorizationStatus to a PermissionManager.Event and sends this to a channel

Link copied to clipboard

Convenience class for checking permissions.

Link copied to clipboard
abstract class Permission

Permissions that can be requested by Kaluga Each permission component should declare subclass of Permission

Link copied to clipboard
actual data class PermissionContext

Android context for creating a BasePermissionsBuilder

expect class PermissionContext

Platform specific context for creating a BasePermissionsBuilder

actual typealias PermissionContext = <Error class: unknown class>

iOS context for creating a BasePermissionsBuilder. Type-alias for NSBundle

actual class PermissionContext

JavaScript context for creating a BasePermissionsBuilder

actual class PermissionContext

Java context for creating a BasePermissionsBuilder

Link copied to clipboard

Manager for handling and monitoring a given Permission

Link copied to clipboard
class PermissionRefreshScheduler(currentAuthorizationStatusProvider: CurrentAuthorizationStatusProvider, authorizationStatusHandler: AuthorizationStatusHandler, coroutineScope: <Error class: unknown class>)

Convenience class for scheduling checks to changes in permission state.

Link copied to clipboard
class Permissions(builder: PermissionsBuilder, coroutineContext: CoroutineContext = defaultPermissionDispatcher)

Holder class for all the PermissionStateFlowRepo associated with Permission

Link copied to clipboard

An AppCompatActivity responsible for requesting a Permission Use PermissionsActivity.Companion.intent for getting an Intent to this activity

Link copied to clipboard
open class PermissionsBuilder(val context: PermissionContext = defaultPermissionContext)

Builder for providing the proper BasePermissionsBuilder and PermissionStateRepoBuilder for each Permission

Link copied to clipboard

Error when PermissionsBuilder tries to register or access invalid permissions.

Link copied to clipboard
Link copied to clipboard

A StateRepo/MutableStateFlow of PermissionState

Link copied to clipboard
open class PermissionStateRepo<P : Permission>(monitoringInterval: Duration = defaultMonitoringInterval, createPermissionManager: (CoroutineScope) -> PermissionManager<P>, coroutineContext: CoroutineContext) : BasePermissionStateRepo<P>
Link copied to clipboard

Interface that takes permission and coroutine contexts and creates BasePermissionStateRepo. Each platform registers PermissionStateRepoBuilder in PermissionsBuilder.registerPermissionStateRepoBuilder.

Properties

Link copied to clipboard

Functions

Link copied to clipboard
suspend fun <P : Permission> Flow<PermissionState<out P>>.request(): Boolean

Requests a Permission on a Flow of PermissionState

Link copied to clipboard
fun AuthorizationStatusHandler.requestAuthorizationStatus(timerHelper: PermissionRefreshScheduler? = null, coroutineScope: <Error class: unknown class>, request: suspend () -> IOSPermissionsHelper.AuthorizationStatus)

Pauses a PermissionRefreshScheduler while requesting an AuthorizationStatus and calls AuthorizationStatusHandler.status once the request has been completed.