hotfix: accounts are no persistently saved
This commit is contained in:
parent
b74e3e5491
commit
32cd87eefb
|
@ -16,14 +16,14 @@ abstract class _AccountsStore with Store {
|
||||||
_saveReactionDisposer = reaction(
|
_saveReactionDisposer = reaction(
|
||||||
// TODO: does not react to deep changes in users and tokens
|
// TODO: does not react to deep changes in users and tokens
|
||||||
(_) => [
|
(_) => [
|
||||||
users.asObservable(),
|
users.forEach((k, submap) =>
|
||||||
tokens.asObservable(),
|
MapEntry(k, submap.forEach((k2, v2) => MapEntry(k2, v2)))),
|
||||||
|
tokens.forEach((k, submap) =>
|
||||||
|
MapEntry(k, submap.forEach((k2, v2) => MapEntry(k2, v2)))),
|
||||||
_defaultAccount,
|
_defaultAccount,
|
||||||
_defaultAccounts.asObservable(),
|
_defaultAccounts.asObservable(),
|
||||||
],
|
],
|
||||||
(_) {
|
(_) => save(),
|
||||||
save();
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,10 +33,26 @@ abstract class _AccountsStore with Store {
|
||||||
|
|
||||||
void load() async {
|
void load() async {
|
||||||
var prefs = await SharedPreferences.getInstance();
|
var prefs = await SharedPreferences.getInstance();
|
||||||
|
|
||||||
|
nestedMapsCast<T>(String key, T f(Map<String, dynamic> json)) =>
|
||||||
|
ObservableMap.of(
|
||||||
|
(jsonDecode(prefs.getString(key) ?? '{}') as Map<String, dynamic>)
|
||||||
|
?.map(
|
||||||
|
(k, e) => MapEntry(
|
||||||
|
k,
|
||||||
|
ObservableMap.of(
|
||||||
|
(e as Map<String, dynamic>)?.map(
|
||||||
|
(k, e) => MapEntry(
|
||||||
|
k, e == null ? null : f(e as Map<String, dynamic>)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
// set saved settings or create defaults
|
// set saved settings or create defaults
|
||||||
// TODO: load saved users and tokens
|
users = nestedMapsCast('users', (json) => User.fromJson(json));
|
||||||
users = ObservableMap();
|
tokens = nestedMapsCast('tokens', (json) => Jwt(json['raw']));
|
||||||
tokens = ObservableMap();
|
|
||||||
_defaultAccount = prefs.getString('defaultAccount');
|
_defaultAccount = prefs.getString('defaultAccount');
|
||||||
_defaultAccounts = ObservableMap.of(Map.castFrom(
|
_defaultAccounts = ObservableMap.of(Map.castFrom(
|
||||||
jsonDecode(prefs.getString('defaultAccounts') ?? 'null') ?? {}));
|
jsonDecode(prefs.getString('defaultAccounts') ?? 'null') ?? {}));
|
||||||
|
|
Loading…
Reference in New Issue