UserPrefsDatasource class

Thin wrapper around SharedPreferences for non-secret, device-local user prefs. Use flutter_secure_storage for anything sensitive (API keys, auth tokens). This class is safe to instantiate multiple times — all instances talk to the same underlying storage.

Constructors

UserPrefsDatasource({SharedPreferences? prefs})

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

clearHomeCache() Future<void>
Clears all home first-paint cache entries. Called on sign-out so the next user doesn't see the previous user's streak / domain list flash before their own data loads.
getCachedDomains() Future<List<CachedDomain>>
Cached projection of `MyCurriculumDomains` — id/name/slug only, capped to keep the blob tiny. Reads return an empty list if missing or stale.
getCachedDueCount() Future<int?>
getCachedStreak() Future<int?>
getLastActiveOrgId() Future<String?>
getLastUsedMode() Future<String>
Returns 'personal' or 'org'. Defaults to 'personal' when unset.
getThemeMode() Future<ThemeMode>
User-selected theme. Defaults to ThemeMode.system when unset or when the stored value isn't a recognised ThemeMode.name (e.g. corruption).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setCachedDomains(List<CachedDomain> domains) Future<void>
setCachedDueCount(int value) Future<void>
setCachedStreak(int value) Future<void>
setLastActiveOrgId(String orgId) Future<void>
setLastUsedMode(String mode) Future<void>
setThemeMode(ThemeMode mode) Future<void>
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Constants

homeCacheMaxAge → const Duration