V4.6.0 reports fixes (#835)
* Add user network connection issue to ignored errors * Check current nodes on each app start * Add user network connection error to ignored errors * Fix sharing files issue on iOS
Omar Hatem committed
Mar 17, 2023 at 21:15 UTC
4027619ad3e9276dc3343562c3ff7deb16854724
8 files changed
+86
-55
cw_core/pubspec.lock
+1
-1
@@ -202,7 +202,7 @@ packages:
202
source: hosted
203
version: "2.0.1"
204
file:
205
- dependency: transitive
205
+ dependency: "direct main"
206
description:
207
name: file
208
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
cw_haven/pubspec.lock
+6
-6
@@ -204,10 +204,10 @@ packages:
204
dependency: "direct main"
205
description:
206
name: ffi
207
- sha256: "13a6ccf6a459a125b3fcdb6ec73bd5ff90822e071207c663bfd1f70062d51d18"
207
+ sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
208
url: "https://pub.dev"
209
source: hosted
210
- version: "1.2.1"
210
+ version: "2.0.1"
211
file:
212
dependency: transitive
213
description:
@@ -454,10 +454,10 @@ packages:
454
dependency: transitive
455
description:
456
name: path_provider_windows
457
- sha256: a34ecd7fb548f8e57321fd8e50d865d266941b54e6c3b7758cf8f37c24116905
457
+ sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130
458
url: "https://pub.dev"
459
source: hosted
460
- version: "2.0.7"
460
+ version: "2.1.5"
461
platform:
462
dependency: transitive
463
description:
@@ -651,10 +651,10 @@ packages:
651
dependency: transitive
652
description:
653
name: win32
654
- sha256: c0e3a4f7be7dae51d8f152230b86627e3397c1ba8c3fa58e63d44a9f3edc9cef
654
+ sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
655
url: "https://pub.dev"
656
source: hosted
657
- version: "2.6.1"
657
+ version: "3.1.3"
658
xdg_directories:
659
dependency: transitive
660
description:
cw_monero/pubspec.lock
+6
-6
@@ -204,10 +204,10 @@ packages:
204
dependency: "direct main"
205
description:
206
name: ffi
207
- sha256: "13a6ccf6a459a125b3fcdb6ec73bd5ff90822e071207c663bfd1f70062d51d18"
207
+ sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
208
url: "https://pub.dev"
209
source: hosted
210
- version: "1.2.1"
210
+ version: "2.0.1"
211
file:
212
dependency: transitive
213
description:
@@ -454,10 +454,10 @@ packages:
454
dependency: transitive
455
description:
456
name: path_provider_windows
457
- sha256: a34ecd7fb548f8e57321fd8e50d865d266941b54e6c3b7758cf8f37c24116905
457
+ sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130
458
url: "https://pub.dev"
459
source: hosted
460
- version: "2.0.7"
460
+ version: "2.1.5"
461
platform:
462
dependency: transitive
463
description:
@@ -651,10 +651,10 @@ packages:
651
dependency: transitive
652
description:
653
name: win32
654
- sha256: c0e3a4f7be7dae51d8f152230b86627e3397c1ba8c3fa58e63d44a9f3edc9cef
654
+ sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
655
url: "https://pub.dev"
656
source: hosted
657
- version: "2.6.1"
657
+ version: "3.1.3"
658
xdg_directories:
659
dependency: transitive
660
description:
ios/Podfile.lock
+56
-34
@@ -7,7 +7,7 @@ PODS:
7
- connectivity (0.0.1):
8
- Flutter
9
- Reachability
10
- - CryptoSwift (1.3.2)
10
+ - CryptoSwift (1.6.0)
11
- cw_haven (0.0.1):
12
- cw_haven/Boost (= 0.0.1)
13
- cw_haven/Haven (= 0.0.1)
@@ -65,16 +65,18 @@ PODS:
65
- Flutter
66
- device_info (0.0.1):
67
- Flutter
68
+ - device_info_plus (0.0.1):
69
+ - Flutter
70
- devicelocale (0.0.1):
71
- Flutter
70
- - DKImagePickerController/Core (4.3.2):
72
+ - DKImagePickerController/Core (4.3.4):
73
- DKImagePickerController/ImageDataManager
74
- DKImagePickerController/Resource
73
- - DKImagePickerController/ImageDataManager (4.3.2)
74
- - DKImagePickerController/PhotoGallery (4.3.2):
75
+ - DKImagePickerController/ImageDataManager (4.3.4)
76
+ - DKImagePickerController/PhotoGallery (4.3.4):
77
- DKImagePickerController/Core
78
- DKPhotoGallery
77
- - DKImagePickerController/Resource (4.3.2)
79
+ - DKImagePickerController/Resource (4.3.4)
80
- DKPhotoGallery (0.0.17):
81
- DKPhotoGallery/Core (= 0.0.17)
82
- DKPhotoGallery/Model (= 0.0.17)
@@ -102,29 +104,41 @@ PODS:
104
- DKImagePickerController/PhotoGallery
105
- Flutter
106
- Flutter (1.0.0)
107
+ - flutter_inappwebview (0.0.1):
108
+ - Flutter
109
+ - flutter_inappwebview/Core (= 0.0.1)
110
+ - OrderedSet (~> 5.0)
111
+ - flutter_inappwebview/Core (0.0.1):
112
+ - Flutter
113
+ - OrderedSet (~> 5.0)
114
+ - flutter_mailer (0.0.1):
115
+ - Flutter
116
- flutter_secure_storage (3.3.1):
117
- Flutter
118
- local_auth_ios (0.0.1):
119
- Flutter
120
- MTBBarcodeScanner (5.0.11)
121
+ - OrderedSet (5.0.0)
122
- package_info (0.0.1):
123
- Flutter
112
- - path_provider_ios (0.0.1):
124
+ - path_provider_foundation (0.0.1):
125
- Flutter
126
+ - FlutterMacOS
127
- permission_handler_apple (9.0.4):
128
- Flutter
129
- platform_device_id (0.0.1):
130
- Flutter
131
- Reachability (3.2)
119
- - SDWebImage (5.9.1):
120
- - SDWebImage/Core (= 5.9.1)
121
- - SDWebImage/Core (5.9.1)
132
+ - SDWebImage (5.15.5):
133
+ - SDWebImage/Core (= 5.15.5)
134
+ - SDWebImage/Core (5.15.5)
135
- share_plus (0.0.1):
136
- Flutter
124
- - shared_preferences_ios (0.0.1):
137
+ - shared_preferences_foundation (0.0.1):
138
- Flutter
126
- - SwiftProtobuf (1.18.0)
127
- - SwiftyGif (5.3.0)
139
+ - FlutterMacOS
140
+ - SwiftProtobuf (1.21.0)
141
+ - SwiftyGif (5.4.4)
142
- uni_links (0.0.1):
143
- Flutter
144
- UnstoppableDomainsResolution (4.0.0):
@@ -132,8 +146,6 @@ PODS:
146
- CryptoSwift
147
- url_launcher_ios (0.0.1):
148
- Flutter
135
- - webview_flutter_wkwebview (0.0.1):
136
- - Flutter
149
150
DEPENDENCIES:
151
- barcode_scan2 (from `.symlinks/plugins/barcode_scan2/ios`)
@@ -144,21 +156,23 @@ DEPENDENCIES:
156
- cw_shared_external (from `.symlinks/plugins/cw_shared_external/ios`)
157
- device_display_brightness (from `.symlinks/plugins/device_display_brightness/ios`)
158
- device_info (from `.symlinks/plugins/device_info/ios`)
159
+ - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
160
- devicelocale (from `.symlinks/plugins/devicelocale/ios`)
161
- file_picker (from `.symlinks/plugins/file_picker/ios`)
162
- Flutter (from `Flutter`)
163
+ - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
164
+ - flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`)
165
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
166
- local_auth_ios (from `.symlinks/plugins/local_auth_ios/ios`)
167
- package_info (from `.symlinks/plugins/package_info/ios`)
153
- - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
168
+ - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
169
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
170
- platform_device_id (from `.symlinks/plugins/platform_device_id/ios`)
171
- share_plus (from `.symlinks/plugins/share_plus/ios`)
157
- - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
172
+ - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
173
- uni_links (from `.symlinks/plugins/uni_links/ios`)
174
- UnstoppableDomainsResolution (~> 4.0.0)
175
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
161
- - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
176
177
SPEC REPOS:
178
https://github.com/CocoaPods/Specs.git:
@@ -167,6 +181,7 @@ SPEC REPOS:
181
- DKImagePickerController
182
- DKPhotoGallery
183
- MTBBarcodeScanner
184
+ - OrderedSet
185
- Reachability
186
- SDWebImage
187
- SwiftProtobuf
@@ -188,67 +203,74 @@ EXTERNAL SOURCES:
203
:path: ".symlinks/plugins/device_display_brightness/ios"
204
device_info:
205
:path: ".symlinks/plugins/device_info/ios"
206
+ device_info_plus:
207
+ :path: ".symlinks/plugins/device_info_plus/ios"
208
devicelocale:
209
:path: ".symlinks/plugins/devicelocale/ios"
210
file_picker:
211
:path: ".symlinks/plugins/file_picker/ios"
212
Flutter:
213
:path: Flutter
214
+ flutter_inappwebview:
215
+ :path: ".symlinks/plugins/flutter_inappwebview/ios"
216
+ flutter_mailer:
217
+ :path: ".symlinks/plugins/flutter_mailer/ios"
218
flutter_secure_storage:
219
:path: ".symlinks/plugins/flutter_secure_storage/ios"
220
local_auth_ios:
221
:path: ".symlinks/plugins/local_auth_ios/ios"
222
package_info:
223
:path: ".symlinks/plugins/package_info/ios"
203
- path_provider_ios:
204
- :path: ".symlinks/plugins/path_provider_ios/ios"
224
+ path_provider_foundation:
225
+ :path: ".symlinks/plugins/path_provider_foundation/ios"
226
permission_handler_apple:
227
:path: ".symlinks/plugins/permission_handler_apple/ios"
228
platform_device_id:
229
:path: ".symlinks/plugins/platform_device_id/ios"
230
share_plus:
231
:path: ".symlinks/plugins/share_plus/ios"
211
- shared_preferences_ios:
212
- :path: ".symlinks/plugins/shared_preferences_ios/ios"
232
+ shared_preferences_foundation:
233
+ :path: ".symlinks/plugins/shared_preferences_foundation/ios"
234
uni_links:
235
:path: ".symlinks/plugins/uni_links/ios"
236
url_launcher_ios:
237
:path: ".symlinks/plugins/url_launcher_ios/ios"
217
- webview_flutter_wkwebview:
218
- :path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
238
239
SPEC CHECKSUMS:
240
barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0
241
BigInt: f668a80089607f521586bbe29513d708491ef2f7
242
connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
224
- CryptoSwift: 093499be1a94b0cae36e6c26b70870668cb56060
243
+ CryptoSwift: 562f8eceb40e80796fffc668b0cad9313284cfa6
244
cw_haven: b3e54e1fbe7b8e6fda57a93206bc38f8e89b898a
245
cw_monero: 4cf3b96f2da8e95e2ef7d6703dd4d2c509127b7d
246
cw_shared_external: 2972d872b8917603478117c9957dfca611845a92
247
device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7
248
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
249
+ device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
250
devicelocale: b22617f40038496deffba44747101255cee005b0
231
- DKImagePickerController: b5eb7f7a388e4643264105d648d01f727110fc3d
251
+ DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
252
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
233
- file_picker: 817ab1d8cd2da9d2da412a417162deee3500fc95
253
+ file_picker: ce3938a0df3cc1ef404671531facef740d03f920
254
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
255
+ flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721
256
+ flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83
257
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
236
- local_auth_ios: 0d333dde7780f669e66f19d2ff6005f3ea84008d
258
+ local_auth_ios: c6cf091ded637a88f24f86a8875d8b0f526e2605
259
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
260
+ OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
261
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
239
- path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
262
+ path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9
263
permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce
264
platform_device_id: 81b3e2993881f87d0c82ef151dc274df4869aef5
265
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
243
- SDWebImage: a990c053fff71e388a10f3357edb0be17929c9c5
266
+ SDWebImage: fd7e1a22f00303e058058278639bf6196ee431fe
267
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
245
- shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
246
- SwiftProtobuf: c3c12645230d9b09c72267e0de89468c5543bd86
247
- SwiftyGif: e466e86c660d343357ab944a819a101c4127cb40
268
+ shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472
269
+ SwiftProtobuf: afced68785854575756db965e9da52bbf3dc45e7
270
+ SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
271
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
272
UnstoppableDomainsResolution: c3c67f4d0a5e2437cb00d4bd50c2e00d6e743841
250
- url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
251
- webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f
273
+ url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
274
275
PODFILE CHECKSUM: ae71bdf0eb731a1ffc399c122f6aa4dea0cb5f6f
276
lib/entities/default_settings_migration.dart
+3
@@ -39,6 +39,9 @@ Future defaultSettingsMigration(
39
await ios_migrate_v1(walletInfoSource, tradeSource, contactSource);
40
}
41
42
+ // check current nodes for nullability regardless of the version
43
+ await checkCurrentNodes(nodes, sharedPreferences);
44
+
45
final currentVersion = sharedPreferences
46
.getInt(PreferencesKey.currentDefaultSettingsMigrationVersion) ??
47
0;
lib/reactions/bootstrap.dart
+1
-1
@@ -25,7 +25,7 @@ Future<void> bootstrap(GlobalKey<NavigatorState> navigatorKey) async {
25
.get<SharedPreferences>()
26
.getString(PreferencesKey.currentWalletName);
27
if (currentWalletName != null) {
28
- authenticationStore.state = AuthenticationState.installed;
28
+ authenticationStore.installed();
29
}
30
31
startAuthenticationStateChange(authenticationStore, navigatorKey);
lib/utils/exception_handler.dart
+11
-4
@@ -17,13 +17,14 @@ class ExceptionHandler {
17
static bool _hasError = false;
18
static const _coolDownDurationInDays = 7;
19
20
- static void _saveException(String? error, StackTrace? stackTrace) async {
20
+ static void _saveException(String? error, StackTrace? stackTrace, {String? library}) async {
21
final appDocDir = await getApplicationDocumentsDirectory();
22
23
final file = File('${appDocDir.path}/error.txt');
24
final exception = {
25
"${DateTime.now()}": {
26
- "Error": error,
26
+ "Error": "$error\n\n",
27
+ "Library": "$library\n\n",
28
"StackTrace": stackTrace.toString(),
29
}
30
};
@@ -31,7 +32,7 @@ class ExceptionHandler {
32
const String separator = '''\n\n==========================================================
33
==========================================================\n\n''';
34
34
- await file.writeAsString(
35
+ file.writeAsStringSync(
36
"$exception $separator",
37
mode: FileMode.append,
38
);
@@ -75,7 +76,11 @@ class ExceptionHandler {
76
return;
77
}
78
78
- _saveException(errorDetails.exception.toString(), errorDetails.stack);
79
+ _saveException(
80
+ errorDetails.exceptionAsString(),
81
+ errorDetails.stack,
82
+ library: errorDetails.library,
83
+ );
84
85
final sharedPrefs = await SharedPreferences.getInstance();
86
@@ -134,6 +139,8 @@ class ExceptionHandler {
139
"errno = 103", // SocketException: Software caused connection abort
140
"errno = 104", // SocketException: Connection reset by peer
141
"errno = 110", // SocketException: Connection timed out
142
+ "HttpException: Connection closed before full header was received",
143
+ "HandshakeException: Connection terminated during handshake",
144
"PERMISSION_NOT_GRANTED",
145
];
146
lib/utils/share_util.dart
+2
-3
@@ -3,8 +3,6 @@ import 'package:share_plus/share_plus.dart';
3
import 'package:cross_file/cross_file.dart';
4
5
class ShareUtil {
6
- static const _mimeType = 'application/*';
7
-
6
static void share({required String text, required BuildContext context}) {
7
Share.share(
8
text,
@@ -17,7 +15,8 @@ class ShareUtil {
15
required String fileName,
16
required BuildContext context,
17
}) async {
20
- Share.shareXFiles(
18
+ const _mimeType = 'application/*';
19
+ await Share.shareXFiles(
20
<XFile>[
21
XFile(
22
filePath,