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';
8 part 'proxmox_general_settings_model.g.dart';
10 abstract class ProxmoxGeneralSettingsModel
12 Built<ProxmoxGeneralSettingsModel, ProxmoxGeneralSettingsModelBuilder> {
13 bool? get sslValidation;
15 ProxmoxGeneralSettingsModel._();
16 factory ProxmoxGeneralSettingsModel(
17 [void Function(ProxmoxGeneralSettingsModelBuilder)? updates]) =
18 _$ProxmoxGeneralSettingsModel;
20 factory ProxmoxGeneralSettingsModel.defaultValues() =>
21 ProxmoxGeneralSettingsModel((b) => b..sslValidation = true);
24 return serializers.serializeWith(
25 ProxmoxGeneralSettingsModel.serializer, this) ??
29 static ProxmoxGeneralSettingsModel fromJson(Object? json) {
30 return serializers.deserializeWith(
31 ProxmoxGeneralSettingsModel.serializer, json) ??
32 ProxmoxGeneralSettingsModel();
35 static Serializer<ProxmoxGeneralSettingsModel> get serializer =>
36 _$proxmoxGeneralSettingsModelSerializer;
38 static Future<ProxmoxGeneralSettingsModel> fromLocalStorage() async {
39 final SharedPreferences prefs = await SharedPreferences.getInstance();
40 if (prefs.containsKey('ProxmoxGeneralSettings')) {
42 json.decode(prefs.getString('ProxmoxGeneralSettings')!);
43 return fromJson(decodedJson);
45 return ProxmoxGeneralSettingsModel.defaultValues();
48 Future<void> toLocalStorage() async {
49 final SharedPreferences prefs = await SharedPreferences.getInstance();
50 prefs.setString('ProxmoxGeneralSettings', json.encode(toJson()));