mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-03-26 00:58:44 +00:00
Conflicts: cw_bitcoin/lib/electrum_wallet.dart cw_monero/ios/Classes/monero_api.cpp cw_monero/lib/api/signatures.dart cw_monero/lib/api/types.dart cw_monero/lib/api/wallet.dart cw_monero/lib/monero_wallet.dart lib/reactions/on_current_wallet_change.dart lib/reactions/on_wallet_sync_status_change.dart lib/src/screens/send/send_page.dart lib/src/screens/send/widgets/send_card.dart lib/view_model/send/output.dart lib/view_model/send/send_view_model.dart
43 lines
1.7 KiB
Dart
43 lines
1.7 KiB
Dart
import 'package:cake_wallet/di.dart';
|
|
import 'package:cake_wallet/entities/update_haven_rate.dart';
|
|
import 'package:cake_wallet/entities/wake_lock.dart';
|
|
import 'package:cake_wallet/store/settings_store.dart';
|
|
import 'package:cw_core/transaction_priority.dart';
|
|
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
|
|
import 'package:cw_core/wallet_type.dart';
|
|
import 'package:cw_monero/monero_transaction_priority.dart';
|
|
import 'package:mobx/mobx.dart';
|
|
import 'package:cw_core/transaction_history.dart';
|
|
import 'package:cw_core/wallet_base.dart';
|
|
import 'package:cw_core/balance.dart';
|
|
import 'package:cw_core/transaction_info.dart';
|
|
import 'package:cw_core/sync_status.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
|
ReactionDisposer _onWalletSyncStatusChangeReaction;
|
|
|
|
void startWalletSyncStatusChangeReaction(WalletBase<Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo> wallet,
|
|
FiatConversionStore fiatConversionStore, SettingsStore settingsStore) {
|
|
final _wakeLock = getIt.get<WakeLock>();
|
|
_onWalletSyncStatusChangeReaction?.reaction?.dispose();
|
|
_onWalletSyncStatusChangeReaction =
|
|
reaction((_) => wallet.syncStatus, (SyncStatus status) async {
|
|
if (status is ConnectedSyncStatus) {
|
|
await wallet.startSync();
|
|
|
|
if (wallet.type == WalletType.haven) {
|
|
await updateHavenRate(fiatConversionStore);
|
|
}
|
|
}
|
|
if (status is SyncingSyncStatus) {
|
|
await _wakeLock.enableWake();
|
|
}
|
|
if (status is SyncedSyncStatus || status is FailedSyncStatus) {
|
|
await _wakeLock.disableWake();
|
|
}
|
|
|
|
if (status is SyncedSyncStatus) {
|
|
wallet.feeEstimate.update(priority: settingsStore.priority[wallet.type], outputsCount: 1);
|
|
}
|
|
});
|
|
}
|