]>
Commit | Line | Data |
---|---|---|
0e468546 TM |
1 | import 'dart:convert'; |
2 | ||
3 | import 'package:built_value/built_value.dart'; | |
4 | import 'package:built_value/serializer.dart'; | |
5 | import 'package:proxmox_login_manager/serializers.dart'; | |
6 | import 'package:shared_preferences/shared_preferences.dart'; | |
7 | ||
8 | part 'proxmox_general_settings_model.g.dart'; | |
9 | ||
10 | abstract class ProxmoxGeneralSettingsModel | |
11 | implements | |
12 | Built<ProxmoxGeneralSettingsModel, ProxmoxGeneralSettingsModelBuilder> { | |
13 | bool get sslValidation; | |
14 | ||
15 | ProxmoxGeneralSettingsModel._(); | |
16 | factory ProxmoxGeneralSettingsModel( | |
17 | [void Function(ProxmoxGeneralSettingsModelBuilder) updates]) = | |
18 | _$ProxmoxGeneralSettingsModel; | |
19 | ||
20 | factory ProxmoxGeneralSettingsModel.defaultValues() => | |
21 | ProxmoxGeneralSettingsModel((b) => b..sslValidation = true); | |
22 | ||
23 | Object toJson() { | |
24 | return serializers.serializeWith( | |
25 | ProxmoxGeneralSettingsModel.serializer, this); | |
26 | } | |
27 | ||
28 | static ProxmoxGeneralSettingsModel fromJson(Object json) { | |
29 | return serializers.deserializeWith( | |
30 | ProxmoxGeneralSettingsModel.serializer, json); | |
31 | } | |
32 | ||
33 | static Serializer<ProxmoxGeneralSettingsModel> get serializer => | |
34 | _$proxmoxGeneralSettingsModelSerializer; | |
35 | ||
36 | static Future<ProxmoxGeneralSettingsModel> fromLocalStorage() async { | |
37 | final SharedPreferences prefs = await SharedPreferences.getInstance(); | |
38 | if (prefs.containsKey('ProxmoxGeneralSettings')) { | |
39 | final decodedJson = | |
40 | json.decode(prefs.getString('ProxmoxGeneralSettings')); | |
41 | return fromJson(decodedJson); | |
42 | } | |
43 | return ProxmoxGeneralSettingsModel.defaultValues(); | |
44 | } | |
45 | ||
46 | Future<void> toLocalStorage() async { | |
47 | final SharedPreferences prefs = await SharedPreferences.getInstance(); | |
48 | prefs.setString('ProxmoxGeneralSettings', json.encode(toJson())); | |
49 | } | |
50 | } |