dev
dart 69 lines 1.93 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:cake_wallet/utils/exception_handler.dart';
6 import 'package:cw_core/root_dir.dart';
7 import 'package:cw_core/utils/print_verbose.dart';
8 import 'package:cw_core/wallet_base.dart';
9 import 'package:flutter/widgets.dart';
10 import 'package:mobx/mobx.dart';
11 import 'package:path_provider/path_provider.dart';
12
13 part 'mweb_settings_view_model.g.dart';
14
15 class MwebSettingsViewModel = MwebSettingsViewModelBase with _$MwebSettingsViewModel;
16
17 abstract class MwebSettingsViewModelBase with Store {
18 MwebSettingsViewModelBase(this._settingsStore, this._wallet) {
19 mwebEnabled = bitcoin!.getMwebEnabled(_wallet);
20 _settingsStore.mwebAlwaysScan = mwebEnabled;
21 }
22
23 final SettingsStore _settingsStore;
24 final WalletBase _wallet;
25
26 @computed
27 bool get mwebCardDisplay => _settingsStore.mwebCardDisplay;
28
29 @observable
30 late bool mwebEnabled;
31
32 @computed
33 String get mwebNodeUri => _settingsStore.mwebNodeUri;
34
35 @action
36 void setMwebCardDisplay(bool value) {
37 _settingsStore.mwebCardDisplay = value;
38 }
39
40 @action
41 void setMwebNodeUri(String value) {
42 _settingsStore.mwebNodeUri = value;
43 }
44
45 @action
46 void setMwebEnabled(bool value) {
47 mwebEnabled = value;
48 bitcoin!.setMwebEnabled(_wallet, value);
49 _settingsStore.mwebAlwaysScan = value;
50 }
51
52 Future<String> getAbbreviatedLogs() async {
53 final appSupportPath = (await getApplicationSupportDirectory()).path;
54 final logsFile = File("$appSupportPath/logs/debug.log");
55 if (!logsFile.existsSync()) {
56 return "";
57 }
58 final logs = logsFile.readAsStringSync();
59 // return last 10000 characters:
60 return logs.substring(logs.length > 10000 ? logs.length - 10000 : 0);
61 }
62
63 Future<void> removeLogsLocally(String filePath) async {
64 final logsFile = File(filePath);
65 if (logsFile.existsSync()) {
66 await logsFile.delete();
67 }
68 }
69 }