aboutsummaryrefslogtreecommitdiff
path: root/lib/settings/preferences.dart
blob: 3c0ef5db445df2b8f6a8826e845ecc1d034cebe0 (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
35
import 'package:flutter/material.dart';
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<ThemeData?> getTheme() async {
    switch ((await prefs).getString('theme')) {
      case 'light':
        return ThemeSettings.lightTheme;
      case 'dark':
        return ThemeSettings.darkTheme;
    }
    return null;
  }

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