fix settingsStore.reload

Robert Malikowski committed May 26, 2026 at 20:10 UTC c6f6832231cf859231a1c8e7c82210f3ccf9abf0
3 files changed +38 -21
cw_core/lib/node.dart
+17 -1
@@ -155,10 +155,22 @@ class Node {
155 whereArgs: whereArgs.isNotEmpty ? whereArgs : null,
156 orderBy: orderBy,
157 );
158 - printV("selectList: $list");
158 return List.generate(list.length, (index) => Node.fromMap(list[index]));
159 }
160
161 + static Future<Node?> select(String where, List<dynamic> whereArgs, {String? orderBy}) async {
162 + if(orderBy == null) {
163 + orderBy = selfIdColumn;
164 + }
165 + final list = await db!.query(
166 + tableName,
167 + where: where.isNotEmpty ? where : "1 = 1",
168 + whereArgs: whereArgs.isNotEmpty ? whereArgs : null,
169 + orderBy: orderBy,
170 + );
171 + return list.isEmpty ? null : Node.fromMap(list.first);
172 + }
173 +
174
175 static Future<List<Node>> getAll() async {
176 return selectList("isPow = ?", [false]);
@@ -192,6 +204,10 @@ class Node {
204 return selectList("isPow = ?", [true]);
205 }
206
207 + static Future<Node?> get(int id) async {
208 + return select("id = ?", [id]);
209 + }
210 +
211
212 int id;
213 late String uriRaw;
lib/store/settings_store.dart
+20 -19
@@ -1712,7 +1712,7 @@ abstract class SettingsStoreBase with Store {
1712 );
1713 }
1714
1715 - Future<void> reload({required Box<Node> nodeSource}) async {
1715 + Future<void> reload() async {
1716 final sharedPreferences = await getIt.getAsync<SharedPreferences>();
1717
1718 fiatCurrency = FiatCurrency.deserialize(
@@ -1917,24 +1917,25 @@ abstract class SettingsStoreBase with Store {
1917 final zcashNodeId = sharedPreferences.getInt(PreferencesKey.currentZcashNodeIdKey);
1918 final decredNodeId = sharedPreferences.getInt(PreferencesKey.currentDecredNodeIdKey);
1919 final dogecoinNodeId = sharedPreferences.getInt(PreferencesKey.currentDogecoinNodeIdKey);
1920 - final moneroNode = nodeSource.get(nodeId);
1921 - final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId);
1922 - final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId);
1923 - final havenNode = nodeSource.get(havenNodeId);
1924 - final ethereumNode = nodeSource.get(ethereumNodeId);
1925 - final polygonNode = nodeSource.get(polygonNodeId);
1926 - final baseNode = nodeSource.get(baseNodeId);
1927 - final arbitrumNode = nodeSource.get(arbitrumNodeId);
1928 - final bscNode = nodeSource.get(bscNodeId);
1929 - final bitcoinCashNode = nodeSource.get(bitcoinCashElectrumServerId);
1930 - final nanoNode = nodeSource.get(nanoNodeId);
1931 - final solanaNode = nodeSource.get(solanaNodeId);
1932 - final tronNode = nodeSource.get(tronNodeId);
1933 - final wowneroNode = nodeSource.get(wowneroNodeId);
1934 - final zanoNode = nodeSource.get(zanoNodeId);
1935 - final zcashNode = nodeSource.get(zcashNodeId);
1936 - final decredNode = nodeSource.get(decredNodeId);
1937 - final dogecoinNode = nodeSource.get(dogecoinNodeId);
1920 + final moneroNode = await Node.get(nodeId ?? -1);
1921 + final bitcoinElectrumServer = await Node.get(bitcoinElectrumServerId ?? -1);
1922 + final litecoinElectrumServer = await Node.get(litecoinElectrumServerId ?? -1);
1923 + final havenNode = await Node.get(havenNodeId ?? -1);
1924 + final ethereumNode = await Node.get(ethereumNodeId ?? -1);
1925 + final polygonNode = await Node.get(polygonNodeId ?? -1);
1926 + final baseNode = await Node.get(baseNodeId ?? -1);
1927 + final arbitrumNode = await Node.get(arbitrumNodeId ?? -1);
1928 + final bscNode = await Node.get(bscNodeId ?? -1);
1929 + final bitcoinCashNode = await Node.get(bitcoinCashElectrumServerId ?? -1);
1930 + final nanoNode = await Node.get(nanoNodeId ?? -1);
1931 + final solanaNode = await Node.get(solanaNodeId ?? -1);
1932 + final tronNode = await Node.get(tronNodeId ?? -1);
1933 + final wowneroNode = await Node.get(wowneroNodeId ?? -1);
1934 + final zanoNode = await Node.get(zanoNodeId ?? -1);
1935 + final zcashNode = await Node.get(zcashNodeId ?? -1);
1936 + final decredNode = await Node.get(decredNodeId ?? -1);
1937 + final dogecoinNode = await Node.get(dogecoinNodeId ?? -1);
1938 +
1939
1940 if (moneroNode != null) {
1941 nodes[WalletType.monero] = moneroNode;
lib/view_model/restore_from_backup_view_model.dart
+1 -1
@@ -62,7 +62,7 @@ abstract class RestoreFromBackupViewModelBase with Store {
62
63 final store = getIt.get<AppStore>();
64 ReactionDisposer? reaction;
65 - //await store.settingsStore.reload(nodeSource: getIt.get<Box<Node>>());
65 + await store.settingsStore.reload();
66 await store.themeStore.loadSavedTheme(isFromBackup: true);
67 reaction = autorun((_) {
68 final wallet = store.wallet;