focus_quest library

Public API for the Focus Quest package.

Import this library to use focus sessions, rewards, statistics, storage, feedback, lifecycle handling, and Riverpod integration.

Classes

AudioplayersFocusFeedback
Audio feedback implementation backed by the audioplayers package.
DefaultRewardStrategy
Default reward strategy based on focused minutes and completion bonuses.
FakeFocusClock
Mutable clock for deterministic tests.
FlutterFocusFeedback
Haptic feedback implementation backed by Flutter services.
FocusClock
Supplies the current time for testable session calculations.
FocusFeedback
Optional feedback hooks for session lifecycle events.
FocusLifecycleBridge
Simple lifecycle handler that delegates events to a callback.
FocusLifecycleHandler
Receives lifecycle events from a host Flutter app.
FocusProfile
Aggregated user progress across focus sessions.
FocusQuestConfig
Configures how focus sessions reward progress and handle lifecycle interruptions.
FocusQuestController
The main public controller for managing focus sessions and statistics.
FocusQuestNotifier
Riverpod notifier that coordinates a FocusQuestController.
FocusQuestState
Immutable state emitted by the focus quest controller.
FocusQuestStorage
Provides a storage abstraction for persisting sessions and profile state.
FocusReward
A reward earned for completing or partially completing a focus session.
FocusSession
Represents one focus session and its current lifecycle state.
FocusStatistics
Calculated focus statistics for the current profile and history.
HiveFocusQuestStorage
Hive-backed local persistence for focus sessions and profile state.
InMemoryFocusQuestStorage
Volatile storage implementation for tests and prototypes.
NoopFocusFeedback
Feedback implementation that intentionally does nothing.
RewardStrategy
Calculates rewards for finalized focus sessions.
SharedPreferencesFocusQuestStorage
SharedPreferences-backed storage for lightweight local persistence.
SystemFocusClock
Clock implementation backed by DateTime.now.

Enums

BackgroundBehavior
Controls how a session behaves when the app moves to the background.
FocusLifecycleEvent
App lifecycle events understood by the focus controller.
FocusSessionStatus
Lifecycle status for a focus session.

Properties

focusQuestControllerProvider → Provider<FocusQuestController>
Provides the default FocusQuestController used by Riverpod integrations.
final
focusQuestStateProvider → NotifierProvider<FocusQuestNotifier, FocusQuestState>
Provides immutable focus state and exposes focus-session actions.
final

Exceptions / Errors

FocusQuestException
Exception thrown when a focus quest operation is invalid.