]> git.proxmox.com Git - flutter/proxmox_login_manager.git/blob - lib/proxmox_general_settings_model.dart
tree wide: use 'const' with the constructor to improve performance
[flutter/proxmox_login_manager.git] / lib / proxmox_general_settings_model.dart
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
29 static ProxmoxGeneralSettingsModel fromJson(Object? json) {
30 return serializers.deserializeWith(
31 ProxmoxGeneralSettingsModel.serializer, json) ??
32 ProxmoxGeneralSettingsModel();
33 }
34
35 static Serializer<ProxmoxGeneralSettingsModel> get serializer =>
36 _$proxmoxGeneralSettingsModelSerializer;
37
38 static Future<ProxmoxGeneralSettingsModel> fromLocalStorage() async {
39 final SharedPreferences prefs = await SharedPreferences.getInstance();
40 if (prefs.containsKey('ProxmoxGeneralSettings')) {
41 final decodedJson =
42 json.decode(prefs.getString('ProxmoxGeneralSettings')!);
43 return fromJson(decodedJson);
44 }
45 return ProxmoxGeneralSettingsModel.defaultValues();
46 }
47
48 Future<void> toLocalStorage() async {
49 final SharedPreferences prefs = await SharedPreferences.getInstance();
50 prefs.setString('ProxmoxGeneralSettings', json.encode(toJson()));
51 }
52 }