]> git.proxmox.com Git - flutter/proxmox_login_manager.git/blame - lib/proxmox_general_settings_model.dart
login form: ensure textfields are visibile when keyboard is shown
[flutter/proxmox_login_manager.git] / lib / proxmox_general_settings_model.dart
CommitLineData
0e468546
TM
1import 'dart:convert';
2
3import 'package:built_value/built_value.dart';
4import 'package:built_value/serializer.dart';
5import 'package:proxmox_login_manager/serializers.dart';
6import 'package:shared_preferences/shared_preferences.dart';
7
8part 'proxmox_general_settings_model.g.dart';
9
10abstract 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}