aboutsummaryrefslogtreecommitdiff
path: root/lib/settings/preferences.dart
blob: 9cfbf6aa08a60fc33dbdf446cc864821f6be89d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import 'package:shared_preferences/shared_preferences.dart';

import '../settings/themes.dart';

class Preferences {
  static SharedPreferences? _prefs;

  static Future<SharedPreferences> get prefs async {
    _prefs ??= await SharedPreferences.getInstance();
    return _prefs!;
  }

  static Future<ThemeEnum> getTheme() async {
    switch ((await prefs).getString('theme')) {
      case 'light':
        return ThemeEnum.light;
      case 'dark':
        return ThemeEnum.dark;
    }
    return ThemeEnum.auto;
  }

  static void setTheme(ThemeEnum? theme) {
    prefs.then((p) {
      if (theme == ThemeEnum.light) {
        p.setString('theme', 'light');
      } else if (theme == ThemeEnum.dark) {
        p.setString('theme', 'dark');
      } else {
        p.remove('theme');
      }
    });
  }
}