flutter-freaccess-hub/lib/app_state.dart

130 lines
2.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class FFAppState extends ChangeNotifier {
static FFAppState _instance = FFAppState._internal();
factory FFAppState() {
return _instance;
}
FFAppState._internal();
static void reset() {
_instance = FFAppState._internal();
}
Future initializePersistedState() async {
prefs = await SharedPreferences.getInstance();
_safeInit(() {
_cliUUID = prefs.getString('ff_cliUUID') ?? _cliUUID;
});
_safeInit(() {
_ownerUUID = prefs.getString('ff_ownerUUID') ?? _ownerUUID;
});
_safeInit(() {
_userUUID = prefs.getString('ff_userUUID') ?? _userUUID;
});
_safeInit(() {
_devUUID = prefs.getString('ff_devUUID') ?? _devUUID;
});
_safeInit(() {
_email = prefs.getString('ff_email') ?? _email;
});
_safeInit(() {
_passwd = prefs.getString('ff_passwd') ?? _passwd;
});
_safeInit(() {
_device = prefs.getString('ff_device') ?? _device;
});
_safeInit(() {
_isLogged = prefs.getBool('ff_isLogged') ?? _isLogged;
});
_safeInit(() {
_local = prefs.getString('ff_local') ?? _local;
});
}
void update(VoidCallback callback) {
callback();
notifyListeners();
}
late SharedPreferences prefs;
String _cliUUID = '';
String get cliUUID => _cliUUID;
set cliUUID(String value) {
_cliUUID = value;
prefs.setString('ff_cliUUID', value);
}
String _ownerUUID = '';
String get ownerUUID => _ownerUUID;
set ownerUUID(String value) {
_ownerUUID = value;
prefs.setString('ff_ownerUUID', value);
}
String _userUUID = '';
String get userUUID => _userUUID;
set userUUID(String value) {
_userUUID = value;
prefs.setString('ff_userUUID', value);
}
String _devUUID = '';
String get devUUID => _devUUID;
set devUUID(String value) {
_devUUID = value;
prefs.setString('ff_devUUID', value);
}
String _email = '';
String get email => _email;
set email(String value) {
_email = value;
prefs.setString('ff_email', value);
}
String _passwd = '';
String get passwd => _passwd;
set passwd(String value) {
_passwd = value;
prefs.setString('ff_passwd', value);
}
String _device = '';
String get device => _device;
set device(String value) {
_device = value;
prefs.setString('ff_device', value);
}
bool _isLogged = false;
bool get isLogged => _isLogged;
set isLogged(bool value) {
_isLogged = value;
prefs.setBool('ff_isLogged', value);
}
String _local = '';
String get local => _local;
set local(String value) {
_local = value;
prefs.setString('ff_local', value);
}
}
void _safeInit(Function() initializeField) {
try {
initializeField();
} catch (_) {}
}
Future _safeInitAsync(Function() initializeField) async {
try {
await initializeField();
} catch (_) {}
}