Package-level declarations
Types
An entity that can provide MVIActions through the actions flow. This flow may behave differently depending on ActionShareBehavior chosen. This is mainly implemented by the Store and exposed through Provider (Store.subscribe)
An entity that can receive different actions and then possibly emit them as an ActionProvider. Actions are collected by the ActionConsumer. This is most often implemented by a Store and exposed through PipelineContext
An class representing how MVIAction sharing will be handled in the ActionProvider. There are 4 possible behaviors, which will be different depending on your use-case. When in doubt, use the default one, and change if you have issues.
Marker annotation for store apis that are not thread-safe
An empty state for stores that do not have a state.
Marker annotation for store apis that are experimental.
A DSL marker for the FlowMVI DSL. Defines a contract for calling the DSL functions.
Marker annotation for store apis that are not thread-safe
A single, one-shot, side-effect of processing an MVIIntent, sent to ActionConsumer, processed by ActionProvider and handled by ActionReceiver.
User interaction or other event that is sent to and processed by IntentReceiver.
The state of the StateProvider, most likely a Store. States updates are sent to the StateReceiver and consumed by the StateConsumer.
PipelineContext is an entity that exposes the underlying logic of the Store to its StorePlugins.
An entity that can render states coming from a StateProvider. Most likely, a subscriber of the Store.
An entity that exposes states and allows StateConsumers to subscribe to them. Most often accessed through a Store as a Provider.
An entity that handles MVIState updates. This entity modifies the state of the StateProvider. This is most often implemented by a Store and exposed through PipelineContext.
A central business logic unit for handling MVIIntents, MVIActions, and MVIStates. Usually not subclassed but used with a corresponding builder (see pro.respawn.flowmvi.dsl.store). A store functions independently of any subscribers, has its own lifecycle, can be stopped and relaunched at will. The store can be mutated only through MVIIntent. Store is an IntentReceiver and can be closed to stop it.
A configuration of the Store. Please see StoreConfigurationBuilder for details on the meaning behind the properties listed here
A subscriber lifecycle is the lifecycle of the UI element used to subscribe to the store. This is usually the "screen"'s lifecycle. The lifecycle implementation must follow the SubscriptionMode contract as described in the documentation.
Subscription mode of the UI element with a dedicated lifecycle. An implementation of the SubscriberLifecycle must follow the contract outlined for each mode.
An exception that has happened in the Store that cannot be recovered from. This is either an exception resulting from developer errors (such as unhandled intents), or an exception while trying to recover from another exception (which is prohibited). You may also use this to bypass store plugins handling this particular exception.