From b28d18164f3ffbf4831654ef5f94a08a7697cda5 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 30 May 2025 15:09:27 -0600 Subject: [PATCH 1/2] fix optional date --- lib/models/exchange/change_now/cn_exchange_transaction.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/models/exchange/change_now/cn_exchange_transaction.dart b/lib/models/exchange/change_now/cn_exchange_transaction.dart index 5063df995..bd904f8f5 100644 --- a/lib/models/exchange/change_now/cn_exchange_transaction.dart +++ b/lib/models/exchange/change_now/cn_exchange_transaction.dart @@ -48,7 +48,7 @@ class CNExchangeTransaction { final String refundExtraId; /// Deadline until which the estimated rate or transaction is valid. - final DateTime validUntil; + final DateTime? validUntil; /// Date when transaction was created. final DateTime date; @@ -104,7 +104,7 @@ class CNExchangeTransaction { toCurrency: json["toCurrency"] as String, refundAddress: json["refundAddress"] as String, refundExtraId: json["refundExtraId"] as String, - validUntil: DateTime.parse(json["validUntil"] as String), + validUntil: DateTime.tryParse(json["validUntil"] as String? ?? ""), date: DateTime.parse(json["date"] as String), id: json["id"] as String, directedAmount: Decimal.tryParse(json["directedAmount"].toString()), @@ -133,7 +133,7 @@ class CNExchangeTransaction { "toCurrency": toCurrency, "refundAddress": refundAddress, "refundExtraId": refundExtraId, - "validUntil": validUntil.toIso8601String(), + "validUntil": validUntil?.toIso8601String(), "date": date.toIso8601String(), "id": id, "directedAmount": directedAmount, From 877ef21e6e307a1615a303061b1476e704d6e0d8 Mon Sep 17 00:00:00 2001 From: julian Date: Fri, 30 May 2025 15:26:34 -0600 Subject: [PATCH 2/2] fix duress favorites --- .../providers/favourite_wallets_provider.dart | 70 +++++++++++-------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/lib/wallets/isar/providers/favourite_wallets_provider.dart b/lib/wallets/isar/providers/favourite_wallets_provider.dart index 1f7eb798e..8a0b2c0ef 100644 --- a/lib/wallets/isar/providers/favourite_wallets_provider.dart +++ b/lib/wallets/isar/providers/favourite_wallets_provider.dart @@ -3,8 +3,10 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:isar/isar.dart'; -import '../../../providers/db/main_db_provider.dart'; + import '../../../app_config.dart'; +import '../../../providers/db/main_db_provider.dart'; +import '../../../providers/global/duress_provider.dart'; import '../../crypto_currency/crypto_currency.dart'; import '../models/wallet_info.dart'; @@ -27,9 +29,9 @@ class _Watcher extends ChangeNotifier { .sortByFavouriteOrderIndex() .watch(fireImmediately: true) .listen((event) { - _value = event; - notifyListeners(); - }); + _value = event; + notifyListeners(); + }); } @override @@ -39,32 +41,42 @@ class _Watcher extends ChangeNotifier { } } -final _wiProvider = ChangeNotifierProvider.family<_Watcher, bool>( - (ref, isFavourite) { - final isar = ref.watch(mainDBProvider).isar; +final _wiProvider = ChangeNotifierProvider.family<_Watcher, bool>(( + ref, + isFavourite, +) { + final isar = ref.watch(mainDBProvider).isar; + + final watcher = _Watcher( + isar.walletInfo + .filter() + .anyOf( + AppConfig.coins.map((e) => e.identifier), + (q, element) => q.coinNameMatches(element), + ) + .isFavouriteEqualTo(isFavourite) + .sortByFavouriteOrderIndex() + .findAllSync(), + isFavourite, + isar, + ); + + ref.onDispose(() => watcher.dispose()); + + return watcher; +}); - final watcher = _Watcher( - isar.walletInfo - .filter() - .anyOf( - AppConfig.coins.map((e) => e.identifier), - (q, element) => q.coinNameMatches(element), - ) - .isFavouriteEqualTo(isFavourite) - .sortByFavouriteOrderIndex() - .findAllSync(), - isFavourite, - isar, - ); +final pFavouriteWalletInfos = Provider.family, bool>(( + ref, + isFavourite, +) { + final isDuress = ref.watch(pDuress); - ref.onDispose(() => watcher.dispose()); + final infos = ref.watch(_wiProvider(isFavourite)).value; - return watcher; - }, -); + if (isDuress) { + infos.retainWhere((e) => e.isDuressVisible); + } -final pFavouriteWalletInfos = Provider.family, bool>( - (ref, isFavourite) { - return ref.watch(_wiProvider(isFavourite)).value; - }, -); + return infos; +});