import 'package:refilc/models/settings.dart'; import 'package:refilc_plus/api/auth.dart'; import 'package:refilc_plus/models/premium_scopes.dart'; import 'package:flutter/widgets.dart'; class PlusProvider extends ChangeNotifier { final SettingsProvider _settings; List get scopes => _settings.premiumScopes; // bool hasScope(String scope) => false; bool hasScope(String scope) => scopes.contains(scope) || scopes.contains(PremiumScopes.all); String get accessToken => _settings.premiumAccessToken; String get login => _settings.premiumLogin; bool get hasPremium => _settings.plusSessionId != "" && _settings.premiumScopes.isNotEmpty; late final PremiumAuth _auth; PremiumAuth get auth => _auth; PlusProvider({required SettingsProvider settings}) : _settings = settings { _auth = PremiumAuth(settings: _settings); _settings.addListener(() { notifyListeners(); }); } Future activate({bool removePremium = false}) async { await _auth.refreshAuth(removePremium: removePremium); notifyListeners(); } }