ente/auth/lib/services/preference_service.dart
2024-09-17 09:05:15 +05:30

90 lines
2.5 KiB
Dart

import 'package:ente_auth/core/event_bus.dart';
import 'package:ente_auth/events/icons_changed_event.dart';
import 'package:shared_preferences/shared_preferences.dart';
class PreferenceService {
PreferenceService._privateConstructor();
static final PreferenceService instance =
PreferenceService._privateConstructor();
late final SharedPreferences _prefs;
static const kHasShownCoachMarkKey = "has_shown_coach_mark_v2";
static const kShouldShowLargeIconsKey = "should_show_large_icons";
static const kShouldHideCodesKey = "should_hide_codes";
static const kShouldAutoFocusOnSearchBar = "should_auto_focus_on_search_bar";
static const kShouldMinimizeOnCopy = "should_minimize_on_copy";
static const kCompactMode = "vi.compactMode";
Future<void> init() async {
_prefs = await SharedPreferences.getInstance();
}
bool hasShownCoachMark() {
if (_prefs.containsKey(kHasShownCoachMarkKey)) {
return _prefs.getBool(kHasShownCoachMarkKey)!;
} else {
return false;
}
}
Future<void> setHasShownCoachMark(bool value) {
return _prefs.setBool(kHasShownCoachMarkKey, value);
}
bool shouldShowLargeIcons() {
if (_prefs.containsKey(kShouldShowLargeIconsKey)) {
return _prefs.getBool(kShouldShowLargeIconsKey)!;
} else {
return false;
}
}
Future<void> setShowLargeIcons(bool value) async {
await _prefs.setBool(kShouldShowLargeIconsKey, value);
Bus.instance.fire(IconsChangedEvent());
}
bool shouldHideCodes() {
return _prefs.getBool(kShouldHideCodesKey) ?? false;
}
bool isCompactMode() {
return _prefs.getBool(kCompactMode) ?? false;
}
Future<void> setCompactMode(bool value) async {
await _prefs.setBool(kCompactMode, value);
}
Future<void> setHideCodes(bool value) async {
await _prefs.setBool(kShouldHideCodesKey, value);
Bus.instance.fire(IconsChangedEvent());
}
bool shouldAutoFocusOnSearchBar() {
if (_prefs.containsKey(kShouldAutoFocusOnSearchBar)) {
return _prefs.getBool(kShouldAutoFocusOnSearchBar)!;
} else {
return false;
}
}
Future<void> setAutoFocusOnSearchBar(bool value) async {
await _prefs.setBool(kShouldAutoFocusOnSearchBar, value);
Bus.instance.fire(IconsChangedEvent());
}
bool shouldMinimizeOnCopy() {
if (_prefs.containsKey(kShouldMinimizeOnCopy)) {
return _prefs.getBool(kShouldMinimizeOnCopy)!;
} else {
return false;
}
}
Future<void> setShouldMinimizeOnCopy(bool value) async {
await _prefs.setBool(kShouldMinimizeOnCopy, value);
}
}