PermissionStateRepo
open class PermissionStateRepo<P : Permission>(monitoringInterval: Duration = defaultMonitoringInterval, createPermissionManager: (CoroutineScope) -> PermissionManager<P>, coroutineContext: CoroutineContext) : BasePermissionStateRepo<P>
A BasePermissionStateRepo for managing PermissionState
Parameters
P
the type of Permission of the PermissionState
monitoringInterval
the Duration after which the system should poll for changes to the permission if automatic detection is impossible.
createPermissionManager
method for creating a PermissionManager associated with the Permission
coroutineContext
the CoroutineContext the CoroutineContext used to create a coroutine scope for this state machine.
Constructors
Link copied to clipboard
constructor(monitoringInterval: Duration = defaultMonitoringInterval, createPermissionManager: (CoroutineScope) -> PermissionManager<P>, coroutineContext: CoroutineContext)
Properties
Link copied to clipboard
Link copied to clipboard
val deinitChangeStateWithRepo: suspend (PermissionState<P>, ColdStateFlowRepo<PermissionState<P>>) -> suspend () -> PermissionState<P>?
Link copied to clipboard
Link copied to clipboard
val initChangeStateWithRepo: suspend (PermissionState<P>, ColdStateFlowRepo<PermissionState<P>>) -> suspend () -> PermissionState<P>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun launchTakeAndChangeState(context: CoroutineContext, action: suspend (PermissionState<P>) -> suspend () -> PermissionState<P>): Job
fun <K : PermissionState<P>> launchTakeAndChangeState(context: CoroutineContext, remainIfStateNot: KClass<K>, action: suspend (K) -> suspend () -> PermissionState<P>): Job
Link copied to clipboard
fun <Result> launchUseState(context: CoroutineContext, action: suspend (PermissionState<P>) -> Result): Job
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Requests a Permission on a Flow of PermissionState
Link copied to clipboard
suspend fun takeAndChangeState(action: suspend (PermissionState<P>) -> suspend () -> PermissionState<P>): PermissionState<P>
suspend fun <K : PermissionState<P>> takeAndChangeState(remainIfStateNot: KClass<K>, action: suspend (K) -> suspend () -> PermissionState<P>): PermissionState<P>