130 lines
2.9 KiB
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 (_) {}
|
|
}
|