PermissionsBuilder

open class PermissionsBuilder(val context: PermissionContext = defaultPermissionContext)

Builder for providing the proper BasePermissionsBuilder and PermissionStateRepoBuilder for each Permission

Parameters

context

the PermissionContext to be used

Constructors

Link copied to clipboard
constructor(context: PermissionContext = defaultPermissionContext)

Properties

Link copied to clipboard

Functions

Link copied to clipboard

Creates a BasePermissionStateRepo for a given Permission. Requires that registerPermissionStateRepoBuilder has been called for the Permission type

Link copied to clipboard
operator fun <P : Permission> get(permission: P): BasePermissionsBuilder<P>

Gets the BasePermissionsBuilder registered for a given Permission. Requires a builder to be registered using register. This method is thread-safe.

Link copied to clipboard

Registers a BasePermissionsBuilder for a a given type of Permission. Only one builder can be registered per type of Permission. Make sure to call unregister before calling this if a permission has been registered before. This method is thread-safe.

Link copied to clipboard

Gets the registered BasePermissionsBuilder for a a given type of Permission. If no builder has been registered yet, builder will be registered instead. This method is thread-safe.

Link copied to clipboard

Gets the PermissionStateRepoBuilder registered for a a given type of Permission. If no builder has been registered yet, permissionStateRepoBuilder will be registered instead. This method is thread-safe.

Link copied to clipboard
inline fun <P : Permission> registerPermissionStateRepoBuilder(noinline permissionStateRepoBuilder: (P, CoroutineContext) -> BasePermissionStateRepo<P>)
fun <P : Permission> registerPermissionStateRepoBuilder(permission: KClass<P>, permissionStateRepoBuilder: (P, CoroutineContext) -> BasePermissionStateRepo<P>)

Registers a PermissionStateRepoBuilder for a a given type of Permission. Only one builder can be registered per type of Permission. Make sure to call unregisterPermissionStateRepoBuilder before calling this if a permission has been registered before. This method is thread-safe.

Link copied to clipboard
fun <P : Permission> unregister(permission: P)

Unregisters the BasePermissionsBuilder associated with a given Permission. This method is thread-safe.

Link copied to clipboard

Unregisters the PermissionStateRepoBuilder associated with a given Permission. This method is thread-safe.