BasePermissionStateRepo

constructor(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)

Parameters

P

the type of Permission of the PermissionState

createUninitializedState

method for creating the initial PermissionState.Uninitialized State

createInitializingState

method for transitioning from a PermissionState.Inactive into a PermissionState.Initializing given an implementation of this ColdStateFlowRepo

createDeinitializedState

method for transitioning from a PermissionState.Active into a PermissionState.Deinitialized given an implementation of this ColdStateFlowRepo

coroutineContext

the CoroutineContext the CoroutineContext used to create a coroutine scope for this state machine.