diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-05-20 16:43:21 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2023-05-20 16:43:21 -0600 |
commit | cd8f22959e62c0b7b191e64f4ecfec53cba9f364 (patch) | |
tree | 9e40717d4e7b5c18694ab65558acda65875f817b /lib/settings/preferences.dart | |
parent | 3a3af285a7460a7e2f6850b9a8dd7465492163f6 (diff) | |
download | linkchat-cd8f22959e62c0b7b191e64f4ecfec53cba9f364.tar.gz linkchat-cd8f22959e62c0b7b191e64f4ecfec53cba9f364.tar.bz2 linkchat-cd8f22959e62c0b7b191e64f4ecfec53cba9f364.zip |
Se añade autenticación y onboarding
Diffstat (limited to 'lib/settings/preferences.dart')
-rw-r--r-- | lib/settings/preferences.dart | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/settings/preferences.dart b/lib/settings/preferences.dart new file mode 100644 index 0000000..3c0ef5d --- /dev/null +++ b/lib/settings/preferences.dart @@ -0,0 +1,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'); + } + }); + } +} |