| 1 | import 'dart:io'; |
| 2 | |
| 3 | import 'package:cake_wallet/bitcoin/bitcoin.dart'; |
| 4 | import 'package:cake_wallet/store/settings_store.dart'; |
| 5 | import 'package:cw_core/wallet_base.dart'; |
| 6 | import 'package:mobx/mobx.dart'; |
| 7 | import 'package:path_provider/path_provider.dart'; |
| 8 | |
| 9 | part 'silent_payments_settings_view_model.g.dart'; |
| 10 | |
| 11 | class SilentPaymentsSettingsViewModel = SilentPaymentsSettingsViewModelBase |
| 12 | with _$SilentPaymentsSettingsViewModel; |
| 13 | |
| 14 | abstract class SilentPaymentsSettingsViewModelBase with Store { |
| 15 | SilentPaymentsSettingsViewModelBase(this._settingsStore, this._wallet); |
| 16 | |
| 17 | final SettingsStore _settingsStore; |
| 18 | final WalletBase _wallet; |
| 19 | |
| 20 | @computed |
| 21 | bool get silentPaymentsCardDisplay => _settingsStore.silentPaymentsCardDisplay; |
| 22 | |
| 23 | @computed |
| 24 | bool get silentPaymentsAlwaysScan => bitcoin!.getIsAlwaysScanningSP(_wallet); |
| 25 | |
| 26 | @action |
| 27 | void setSilentPaymentsCardDisplay(bool value) { |
| 28 | _settingsStore.silentPaymentsCardDisplay = value; |
| 29 | } |
| 30 | |
| 31 | @action |
| 32 | void setSilentPaymentsAlwaysScan(bool value) { |
| 33 | bitcoin!.setIsAlwaysScanningSP(_wallet, value); |
| 34 | bitcoin!.setScanningActive(_wallet, value); |
| 35 | } |
| 36 | |
| 37 | Future<String> getAbbreviatedLogs() async { |
| 38 | final appSupportPath = (await getApplicationSupportDirectory()).path; |
| 39 | final logsFile = File("$appSupportPath/logs/debug.log"); |
| 40 | if (!logsFile.existsSync()) { |
| 41 | return ""; |
| 42 | } |
| 43 | final logs = logsFile.readAsStringSync(); |
| 44 | |
| 45 | // return last 10000 characters: |
| 46 | return logs.substring(logs.length > 10000 ? logs.length - 10000 : 0); |
| 47 | } |
| 48 | } |