mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-02 06:46:22 +01:00
Refactor account pref
This commit is contained in:
parent
0725e8ebce
commit
484da170d4
7 changed files with 149 additions and 130 deletions
|
@ -405,7 +405,7 @@ class ScanAccountDirBloc
|
||||||
// no data in this bloc, ignore
|
// no data in this bloc, ignore
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ev.key == PrefKey.shareFolder &&
|
if (ev.key == AccountPrefKey.shareFolder &&
|
||||||
identical(ev.pref, AccountPref.of(account))) {
|
identical(ev.pref, AccountPref.of(account))) {
|
||||||
_log.info("[_onAccountPrefUpdatedEvent] Request refresh");
|
_log.info("[_onAccountPrefUpdatedEvent] Request refresh");
|
||||||
_refreshThrottler.trigger(
|
_refreshThrottler.trigger(
|
||||||
|
|
|
@ -65,68 +65,8 @@ class AccountPref {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool? isEnableFaceRecognitionApp() =>
|
Future<bool> _set<T>(AccountPrefKey key, T value,
|
||||||
provider.getBool(PrefKey.isEnableFaceRecognitionApp);
|
Future<bool> Function(AccountPrefKey key, T value) setFn) async {
|
||||||
bool isEnableFaceRecognitionAppOr([bool def = true]) =>
|
|
||||||
isEnableFaceRecognitionApp() ?? def;
|
|
||||||
Future<bool> setEnableFaceRecognitionApp(bool value) => _set<bool>(
|
|
||||||
PrefKey.isEnableFaceRecognitionApp,
|
|
||||||
value,
|
|
||||||
(key, value) => provider.setBool(key, value));
|
|
||||||
|
|
||||||
String? getShareFolder() => provider.getString(PrefKey.shareFolder);
|
|
||||||
String getShareFolderOr([String def = ""]) => getShareFolder() ?? def;
|
|
||||||
Future<bool> setShareFolder(String value) => _set<String>(PrefKey.shareFolder,
|
|
||||||
value, (key, value) => provider.setString(key, value));
|
|
||||||
|
|
||||||
bool? hasNewSharedAlbum() => provider.getBool(PrefKey.hasNewSharedAlbum);
|
|
||||||
bool hasNewSharedAlbumOr([bool def = false]) => hasNewSharedAlbum() ?? def;
|
|
||||||
Future<bool> setNewSharedAlbum(bool value) => _set<bool>(
|
|
||||||
PrefKey.hasNewSharedAlbum,
|
|
||||||
value,
|
|
||||||
(key, value) => provider.setBool(key, value));
|
|
||||||
|
|
||||||
bool? isEnableMemoryAlbum() => provider.getBool(PrefKey.isEnableMemoryAlbum);
|
|
||||||
bool isEnableMemoryAlbumOr([bool def = false]) =>
|
|
||||||
isEnableMemoryAlbum() ?? def;
|
|
||||||
Future<bool> setEnableMemoryAlbum(bool value) => _set<bool>(
|
|
||||||
PrefKey.isEnableMemoryAlbum,
|
|
||||||
value,
|
|
||||||
(key, value) => provider.setBool(key, value));
|
|
||||||
|
|
||||||
String? getTouchRootEtag() => provider.getString(PrefKey.touchRootEtag);
|
|
||||||
String getTouchRootEtagOr([String def = ""]) => getTouchRootEtag() ?? def;
|
|
||||||
Future<bool> setTouchRootEtag(String value) => _set<String>(
|
|
||||||
PrefKey.touchRootEtag,
|
|
||||||
value,
|
|
||||||
(key, value) => provider.setString(key, value));
|
|
||||||
Future<bool> removeTouchRootEtag() => _remove(PrefKey.touchRootEtag);
|
|
||||||
|
|
||||||
String? getAccountLabel() => provider.getString(PrefKey.accountLabel);
|
|
||||||
String getAccountLabelOr([String def = ""]) => getAccountLabel() ?? def;
|
|
||||||
Future<bool> setAccountLabel(String? value) {
|
|
||||||
if (value == null) {
|
|
||||||
return _remove(PrefKey.accountLabel);
|
|
||||||
} else {
|
|
||||||
return _set<String>(PrefKey.accountLabel, value,
|
|
||||||
(key, value) => provider.setString(key, value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int? getLastNewCollectionType() =>
|
|
||||||
provider.getInt(PrefKey.lastNewCollectionType);
|
|
||||||
int getLastNewCollectionTypeOr(int def) => getLastNewCollectionType() ?? def;
|
|
||||||
Future<bool> setLastNewCollectionType(int? value) {
|
|
||||||
if (value == null) {
|
|
||||||
return _remove(PrefKey.lastNewCollectionType);
|
|
||||||
} else {
|
|
||||||
return _set<int>(PrefKey.lastNewCollectionType, value,
|
|
||||||
(key, value) => provider.setInt(key, value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<bool> _set<T>(PrefKey key, T value,
|
|
||||||
Future<bool> Function(PrefKey key, T value) setFn) async {
|
|
||||||
if (await setFn(key, value)) {
|
if (await setFn(key, value)) {
|
||||||
KiwiContainer()
|
KiwiContainer()
|
||||||
.resolve<EventBus>()
|
.resolve<EventBus>()
|
||||||
|
@ -137,14 +77,18 @@ class AccountPref {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> _remove(PrefKey key) => provider.remove(key);
|
Future<bool> _remove(AccountPrefKey key) => provider.remove(key);
|
||||||
|
|
||||||
final PrefProvider provider;
|
final PrefProvider provider;
|
||||||
|
|
||||||
static final _insts = <String, AccountPref>{};
|
static final _insts = <String, AccountPref>{};
|
||||||
}
|
}
|
||||||
|
|
||||||
enum PrefKey {
|
abstract class PrefKeyInterface {
|
||||||
|
String toStringKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
enum PrefKey implements PrefKeyInterface {
|
||||||
accounts3,
|
accounts3,
|
||||||
currentAccountIndex,
|
currentAccountIndex,
|
||||||
homePhotosZoomLevel,
|
homePhotosZoomLevel,
|
||||||
|
@ -179,17 +123,9 @@ enum PrefKey {
|
||||||
isSlideshowReverse,
|
isSlideshowReverse,
|
||||||
seedColor,
|
seedColor,
|
||||||
isVideoPlayerMute,
|
isVideoPlayerMute,
|
||||||
isVideoPlayerLoop,
|
isVideoPlayerLoop;
|
||||||
|
|
||||||
// account pref
|
|
||||||
isEnableFaceRecognitionApp,
|
|
||||||
shareFolder,
|
|
||||||
hasNewSharedAlbum,
|
|
||||||
isEnableMemoryAlbum,
|
|
||||||
touchRootEtag,
|
|
||||||
accountLabel,
|
|
||||||
lastNewCollectionType;
|
|
||||||
|
|
||||||
|
@override
|
||||||
String toStringKey() {
|
String toStringKey() {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
case PrefKey.accounts3:
|
case PrefKey.accounts3:
|
||||||
|
@ -262,21 +198,35 @@ enum PrefKey {
|
||||||
return "isVideoPlayerMute";
|
return "isVideoPlayerMute";
|
||||||
case PrefKey.isVideoPlayerLoop:
|
case PrefKey.isVideoPlayerLoop:
|
||||||
return "isVideoPlayerLoop";
|
return "isVideoPlayerLoop";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// account pref
|
enum AccountPrefKey implements PrefKeyInterface {
|
||||||
case PrefKey.isEnableFaceRecognitionApp:
|
isEnableFaceRecognitionApp,
|
||||||
|
shareFolder,
|
||||||
|
hasNewSharedAlbum,
|
||||||
|
isEnableMemoryAlbum,
|
||||||
|
touchRootEtag,
|
||||||
|
accountLabel,
|
||||||
|
lastNewCollectionType;
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toStringKey() {
|
||||||
|
switch (this) {
|
||||||
|
case AccountPrefKey.isEnableFaceRecognitionApp:
|
||||||
return "isEnableFaceRecognitionApp";
|
return "isEnableFaceRecognitionApp";
|
||||||
case PrefKey.shareFolder:
|
case AccountPrefKey.shareFolder:
|
||||||
return "shareFolder";
|
return "shareFolder";
|
||||||
case PrefKey.hasNewSharedAlbum:
|
case AccountPrefKey.hasNewSharedAlbum:
|
||||||
return "hasNewSharedAlbum";
|
return "hasNewSharedAlbum";
|
||||||
case PrefKey.isEnableMemoryAlbum:
|
case AccountPrefKey.isEnableMemoryAlbum:
|
||||||
return "isEnableMemoryAlbum";
|
return "isEnableMemoryAlbum";
|
||||||
case PrefKey.touchRootEtag:
|
case AccountPrefKey.touchRootEtag:
|
||||||
return "touchRootEtag";
|
return "touchRootEtag";
|
||||||
case PrefKey.accountLabel:
|
case AccountPrefKey.accountLabel:
|
||||||
return "accountLabel";
|
return "accountLabel";
|
||||||
case PrefKey.lastNewCollectionType:
|
case AccountPrefKey.lastNewCollectionType:
|
||||||
return "lastNewCollectionType";
|
return "lastNewCollectionType";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -284,18 +234,18 @@ enum PrefKey {
|
||||||
|
|
||||||
/// Provide the data for [Pref]
|
/// Provide the data for [Pref]
|
||||||
abstract class PrefProvider {
|
abstract class PrefProvider {
|
||||||
bool? getBool(PrefKey key);
|
bool? getBool(PrefKeyInterface key);
|
||||||
Future<bool> setBool(PrefKey key, bool value);
|
Future<bool> setBool(PrefKeyInterface key, bool value);
|
||||||
|
|
||||||
int? getInt(PrefKey key);
|
int? getInt(PrefKeyInterface key);
|
||||||
Future<bool> setInt(PrefKey key, int value);
|
Future<bool> setInt(PrefKeyInterface key, int value);
|
||||||
|
|
||||||
String? getString(PrefKey key);
|
String? getString(PrefKeyInterface key);
|
||||||
Future<bool> setString(PrefKey key, String value);
|
Future<bool> setString(PrefKeyInterface key, String value);
|
||||||
|
|
||||||
List<String>? getStringList(PrefKey key);
|
List<String>? getStringList(PrefKeyInterface key);
|
||||||
Future<bool> setStringList(PrefKey key, List<String> value);
|
Future<bool> setStringList(PrefKeyInterface key, List<String> value);
|
||||||
|
|
||||||
Future<bool> remove(PrefKey key);
|
Future<bool> remove(PrefKeyInterface key);
|
||||||
Future<bool> clear();
|
Future<bool> clear();
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,3 +268,70 @@ extension PrefExtension on Pref {
|
||||||
value,
|
value,
|
||||||
(key, value) => provider.setBool(key, value));
|
(key, value) => provider.setBool(key, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension AccountPrefExtension on AccountPref {
|
||||||
|
bool? isEnableFaceRecognitionApp() =>
|
||||||
|
provider.getBool(AccountPrefKey.isEnableFaceRecognitionApp);
|
||||||
|
bool isEnableFaceRecognitionAppOr([bool def = true]) =>
|
||||||
|
isEnableFaceRecognitionApp() ?? def;
|
||||||
|
Future<bool> setEnableFaceRecognitionApp(bool value) => _set<bool>(
|
||||||
|
AccountPrefKey.isEnableFaceRecognitionApp,
|
||||||
|
value,
|
||||||
|
(key, value) => provider.setBool(key, value));
|
||||||
|
|
||||||
|
String? getShareFolder() => provider.getString(AccountPrefKey.shareFolder);
|
||||||
|
String getShareFolderOr([String def = ""]) => getShareFolder() ?? def;
|
||||||
|
Future<bool> setShareFolder(String value) => _set<String>(
|
||||||
|
AccountPrefKey.shareFolder,
|
||||||
|
value,
|
||||||
|
(key, value) => provider.setString(key, value));
|
||||||
|
|
||||||
|
bool? hasNewSharedAlbum() =>
|
||||||
|
provider.getBool(AccountPrefKey.hasNewSharedAlbum);
|
||||||
|
bool hasNewSharedAlbumOr([bool def = false]) => hasNewSharedAlbum() ?? def;
|
||||||
|
Future<bool> setNewSharedAlbum(bool value) => _set<bool>(
|
||||||
|
AccountPrefKey.hasNewSharedAlbum,
|
||||||
|
value,
|
||||||
|
(key, value) => provider.setBool(key, value));
|
||||||
|
|
||||||
|
bool? isEnableMemoryAlbum() =>
|
||||||
|
provider.getBool(AccountPrefKey.isEnableMemoryAlbum);
|
||||||
|
bool isEnableMemoryAlbumOr([bool def = false]) =>
|
||||||
|
isEnableMemoryAlbum() ?? def;
|
||||||
|
Future<bool> setEnableMemoryAlbum(bool value) => _set<bool>(
|
||||||
|
AccountPrefKey.isEnableMemoryAlbum,
|
||||||
|
value,
|
||||||
|
(key, value) => provider.setBool(key, value));
|
||||||
|
|
||||||
|
String? getTouchRootEtag() =>
|
||||||
|
provider.getString(AccountPrefKey.touchRootEtag);
|
||||||
|
String getTouchRootEtagOr([String def = ""]) => getTouchRootEtag() ?? def;
|
||||||
|
Future<bool> setTouchRootEtag(String value) => _set<String>(
|
||||||
|
AccountPrefKey.touchRootEtag,
|
||||||
|
value,
|
||||||
|
(key, value) => provider.setString(key, value));
|
||||||
|
Future<bool> removeTouchRootEtag() => _remove(AccountPrefKey.touchRootEtag);
|
||||||
|
|
||||||
|
String? getAccountLabel() => provider.getString(AccountPrefKey.accountLabel);
|
||||||
|
String getAccountLabelOr([String def = ""]) => getAccountLabel() ?? def;
|
||||||
|
Future<bool> setAccountLabel(String? value) {
|
||||||
|
if (value == null) {
|
||||||
|
return _remove(AccountPrefKey.accountLabel);
|
||||||
|
} else {
|
||||||
|
return _set<String>(AccountPrefKey.accountLabel, value,
|
||||||
|
(key, value) => provider.setString(key, value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int? getLastNewCollectionType() =>
|
||||||
|
provider.getInt(AccountPrefKey.lastNewCollectionType);
|
||||||
|
int getLastNewCollectionTypeOr(int def) => getLastNewCollectionType() ?? def;
|
||||||
|
Future<bool> setLastNewCollectionType(int? value) {
|
||||||
|
if (value == null) {
|
||||||
|
return _remove(AccountPrefKey.lastNewCollectionType);
|
||||||
|
} else {
|
||||||
|
return _set<int>(AccountPrefKey.lastNewCollectionType, value,
|
||||||
|
(key, value) => provider.setInt(key, value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -7,28 +7,29 @@ class PrefMemoryProvider extends PrefProvider {
|
||||||
]) : _data = Map.of(initialData);
|
]) : _data = Map.of(initialData);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool? getBool(PrefKey key) => _get<bool>(key);
|
bool? getBool(PrefKeyInterface key) => _get<bool>(key);
|
||||||
@override
|
@override
|
||||||
Future<bool> setBool(PrefKey key, bool value) => _set(key, value);
|
Future<bool> setBool(PrefKeyInterface key, bool value) => _set(key, value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int? getInt(PrefKey key) => _get<int>(key);
|
int? getInt(PrefKeyInterface key) => _get<int>(key);
|
||||||
@override
|
@override
|
||||||
Future<bool> setInt(PrefKey key, int value) => _set(key, value);
|
Future<bool> setInt(PrefKeyInterface key, int value) => _set(key, value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String? getString(PrefKey key) => _get<String>(key);
|
String? getString(PrefKeyInterface key) => _get<String>(key);
|
||||||
@override
|
@override
|
||||||
Future<bool> setString(PrefKey key, String value) => _set(key, value);
|
Future<bool> setString(PrefKeyInterface key, String value) =>
|
||||||
|
|
||||||
@override
|
|
||||||
List<String>? getStringList(PrefKey key) => _get<List<String>>(key);
|
|
||||||
@override
|
|
||||||
Future<bool> setStringList(PrefKey key, List<String> value) =>
|
|
||||||
_set(key, value);
|
_set(key, value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> remove(PrefKey key) async {
|
List<String>? getStringList(PrefKeyInterface key) => _get<List<String>>(key);
|
||||||
|
@override
|
||||||
|
Future<bool> setStringList(PrefKeyInterface key, List<String> value) =>
|
||||||
|
_set(key, value);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<bool> remove(PrefKeyInterface key) async {
|
||||||
_data.remove(key);
|
_data.remove(key);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -39,9 +40,9 @@ class PrefMemoryProvider extends PrefProvider {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
T? _get<T>(PrefKey key) => _data[key.toStringKey()];
|
T? _get<T>(PrefKeyInterface key) => _data[key.toStringKey()];
|
||||||
|
|
||||||
Future<bool> _set<T>(PrefKey key, T value) async {
|
Future<bool> _set<T>(PrefKeyInterface key, T value) async {
|
||||||
_data[key.toStringKey()] = value;
|
_data[key.toStringKey()] = value;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,36 +20,36 @@ class PrefSharedPreferencesProvider extends PrefProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool? getBool(PrefKey key) => _pref.getBool(key.toStringKey());
|
bool? getBool(PrefKeyInterface key) => _pref.getBool(key.toStringKey());
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> setBool(PrefKey key, bool value) =>
|
Future<bool> setBool(PrefKeyInterface key, bool value) =>
|
||||||
_pref.setBool(key.toStringKey(), value);
|
_pref.setBool(key.toStringKey(), value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int? getInt(PrefKey key) => _pref.getInt(key.toStringKey());
|
int? getInt(PrefKeyInterface key) => _pref.getInt(key.toStringKey());
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> setInt(PrefKey key, int value) =>
|
Future<bool> setInt(PrefKeyInterface key, int value) =>
|
||||||
_pref.setInt(key.toStringKey(), value);
|
_pref.setInt(key.toStringKey(), value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String? getString(PrefKey key) => _pref.getString(key.toStringKey());
|
String? getString(PrefKeyInterface key) => _pref.getString(key.toStringKey());
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> setString(PrefKey key, String value) =>
|
Future<bool> setString(PrefKeyInterface key, String value) =>
|
||||||
_pref.setString(key.toStringKey(), value);
|
_pref.setString(key.toStringKey(), value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<String>? getStringList(PrefKey key) =>
|
List<String>? getStringList(PrefKeyInterface key) =>
|
||||||
_pref.getStringList(key.toStringKey());
|
_pref.getStringList(key.toStringKey());
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> setStringList(PrefKey key, List<String> value) =>
|
Future<bool> setStringList(PrefKeyInterface key, List<String> value) =>
|
||||||
_pref.setStringList(key.toStringKey(), value);
|
_pref.setStringList(key.toStringKey(), value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> remove(PrefKey key) => _pref.remove(key.toStringKey());
|
Future<bool> remove(PrefKeyInterface key) => _pref.remove(key.toStringKey());
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> clear() => _pref.clear();
|
Future<bool> clear() => _pref.clear();
|
||||||
|
|
|
@ -16,28 +16,29 @@ class PrefUniversalStorageProvider extends PrefProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool? getBool(PrefKey key) => _get<bool>(key);
|
bool? getBool(PrefKeyInterface key) => _get<bool>(key);
|
||||||
@override
|
@override
|
||||||
Future<bool> setBool(PrefKey key, bool value) => _set(key, value);
|
Future<bool> setBool(PrefKeyInterface key, bool value) => _set(key, value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int? getInt(PrefKey key) => _get<int>(key);
|
int? getInt(PrefKeyInterface key) => _get<int>(key);
|
||||||
@override
|
@override
|
||||||
Future<bool> setInt(PrefKey key, int value) => _set(key, value);
|
Future<bool> setInt(PrefKeyInterface key, int value) => _set(key, value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String? getString(PrefKey key) => _get<String>(key);
|
String? getString(PrefKeyInterface key) => _get<String>(key);
|
||||||
@override
|
@override
|
||||||
Future<bool> setString(PrefKey key, String value) => _set(key, value);
|
Future<bool> setString(PrefKeyInterface key, String value) =>
|
||||||
|
|
||||||
@override
|
|
||||||
List<String>? getStringList(PrefKey key) => _get<List<String>>(key);
|
|
||||||
@override
|
|
||||||
Future<bool> setStringList(PrefKey key, List<String> value) =>
|
|
||||||
_set(key, value);
|
_set(key, value);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> remove(PrefKey key) async {
|
List<String>? getStringList(PrefKeyInterface key) => _get<List<String>>(key);
|
||||||
|
@override
|
||||||
|
Future<bool> setStringList(PrefKeyInterface key, List<String> value) =>
|
||||||
|
_set(key, value);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<bool> remove(PrefKeyInterface key) async {
|
||||||
final newData = Map.of(_data)..remove(key.toStringKey());
|
final newData = Map.of(_data)..remove(key.toStringKey());
|
||||||
await platform.UniversalStorage().putString(name, jsonEncode(newData));
|
await platform.UniversalStorage().putString(name, jsonEncode(newData));
|
||||||
_data.remove(key.toStringKey());
|
_data.remove(key.toStringKey());
|
||||||
|
@ -51,9 +52,9 @@ class PrefUniversalStorageProvider extends PrefProvider {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
T? _get<T>(PrefKey key) => _data[key.toStringKey()];
|
T? _get<T>(PrefKeyInterface key) => _data[key.toStringKey()];
|
||||||
|
|
||||||
Future<bool> _set<T>(PrefKey key, T value) async {
|
Future<bool> _set<T>(PrefKeyInterface key, T value) async {
|
||||||
final newData = Map.of(_data)
|
final newData = Map.of(_data)
|
||||||
..addEntries([MapEntry(key.toStringKey(), value)]);
|
..addEntries([MapEntry(key.toStringKey(), value)]);
|
||||||
await platform.UniversalStorage().putString(name, jsonEncode(newData));
|
await platform.UniversalStorage().putString(name, jsonEncode(newData));
|
||||||
|
|
|
@ -42,7 +42,7 @@ class AccountPrefUpdatedEvent {
|
||||||
const AccountPrefUpdatedEvent(this.pref, this.key, this.value);
|
const AccountPrefUpdatedEvent(this.pref, this.key, this.value);
|
||||||
|
|
||||||
final AccountPref pref;
|
final AccountPref pref;
|
||||||
final PrefKey key;
|
final AccountPrefKey key;
|
||||||
final dynamic value;
|
final dynamic value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue