import '../security/secret_store.dart'; /// Remembers whether the intro/onboarding carousel has been shown, so it only /// appears on first launch. Backed by the OS keystore (via [SecretStore]) to /// honour the "no plaintext at rest" rule — there is no shared_preferences here. class OnboardingStore { OnboardingStore(this._store); final SecretStore _store; static const _introSeenKey = 'tane.intro_seen'; static const _marketRulesKey = 'tane.market_rules_accepted'; /// Whether the user has already seen (or skipped) the intro carousel. Future introSeen() async => await _store.read(_introSeenKey) == '1'; /// Records that the intro has been shown; subsequent launches skip it. Future markIntroSeen() => _store.write(_introSeenKey, '1'); /// Whether the user has accepted the community rules that gate the market. /// Required once before joining the market or publishing anything (stores /// ask for terms acceptance before user content is created). Future marketRulesAccepted() async => await _store.read(_marketRulesKey) == '1'; /// Records the one-time acceptance of the community rules. Future markMarketRulesAccepted() => _store.write(_marketRulesKey, '1'); }