BasePermissionStateRepo
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
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.
Inheritors
Constructors
Link copied to clipboard
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)
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>