part of '../neon.dart'; class GlobalOptions { GlobalOptions( this._storage, this._packageInfo, ) { themeMode.stream.listen((final value) { _themeOLEDAsDarkEnabledSubject.add(value != ThemeMode.light); }); _pushNotificationsDistributorsSubject.listen((final distributors) async { _pushNotificationsEnabledEnabledSubject.add(distributors.isNotEmpty); await _setDefaultDistributor(); }); pushNotificationsEnabled.stream.listen((final enabled) async { if (!enabled) { await pushNotificationsDistributor.set(null); } await _setDefaultDistributor(); }); rememberLastUsedAccount.stream.listen((final remember) async { _initialAccountEnabledSubject.add(!remember); if (remember) { await initialAccount.set(null); } else { // Only override the initial account if there already has been a value, // which means it's not the initial emit from rememberLastUsedAccount if (initialAccount.hasValue) { await initialAccount.set((await initialAccount.values.first).keys.toList()[0]); } } }); } final Storage _storage; final PackageInfo _packageInfo; final _themeOLEDAsDarkEnabledSubject = BehaviorSubject(); final _pushNotificationsEnabledEnabledSubject = BehaviorSubject(); final _pushNotificationsDistributorsSubject = BehaviorSubject>(); final _accountsIDsSubject = BehaviorSubject>(); final _initialAccountEnabledSubject = BehaviorSubject(); late final _distributorsMap = { _packageInfo.packageName: (final context) => AppLocalizations.of(context).globalOptionsPushNotificationsDistributorFirebaseEmbedded, 'com.github.gotify.up': (final context) => AppLocalizations.of(context).globalOptionsPushNotificationsDistributorGotifyUP, 'io.heckel.ntfy': (final context) => AppLocalizations.of(context).globalOptionsPushNotificationsDistributorNtfy, 'org.unifiedpush.distributor.fcm': (final context) => AppLocalizations.of(context).globalOptionsPushNotificationsDistributorFCMUP, 'org.unifiedpush.distributor.nextpush': (final context) => AppLocalizations.of(context).globalOptionsPushNotificationsDistributorNextPush, 'org.unifiedpush.distributor.noprovider2push': (final context) => AppLocalizations.of(context).globalOptionsPushNotificationsDistributorNoProvider2Push, }; late final List