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.