dev
dart 48 lines 1.47 KB
Raw
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 }