@@ -11,6 +11,7 @@ class BarcodeScannerViewModel = BarcodeScannerViewModelBase with _$BarcodeScanne
11
11
12
12
abstract class BarcodeScannerViewModelBase with ViewModel , Store {
13
13
BarcodeScannerViewModelBase ({required this .wallet});
14
+
14
15
@override
15
16
String get screenName => L .scan;
16
17
@@ -23,38 +24,31 @@ abstract class BarcodeScannerViewModelBase with ViewModel, Store {
23
24
@observable
24
25
List <String > urCodes = [];
25
26
26
- URQRData get ur => URQRData .parse (urCodes);
27
-
28
27
final CoinWallet wallet;
29
28
30
29
final MobileScannerController mobileScannerCtrl = MobileScannerController ();
31
30
32
- URQrProgress get urQrProgress => URQrProgress (
33
- expectedPartCount: ur.count - 1 ,
34
- processedPartsCount: ur.inputs.length,
35
- receivedPartIndexes: urParts (),
36
- percentage: ur.progress,
37
- );
38
-
31
+ @action
39
32
Future <void > handleUR () async {
40
33
await callThrowable (
41
34
() async {
42
- await wallet.handleUR (c! , ur );
35
+ await wallet.handleUR (c! , URQRData . parse (urCodes) );
43
36
},
44
37
L .error_handling_urqr_scan,
45
38
);
46
39
}
47
40
41
+ @action
48
42
Future <void > handleBarcode (final BarcodeCapture barcodes) async {
49
43
for (final barcode in barcodes.barcodes) {
50
44
if (barcode.rawValue! .startsWith ("ur:" )) {
51
- if (ur .progress == 1 && ! popped) {
45
+ if (URQRData . parse (urCodes) .progress == 1 && ! popped) {
52
46
popped = true ;
53
47
await handleUR ();
54
48
return ;
55
49
}
56
50
if (urCodes.contains (barcode.rawValue)) return ;
57
- urCodes. add ( barcode.rawValue! ) ;
51
+ urCodes = [...urCodes, barcode.rawValue! ] ;
58
52
}
59
53
}
60
54
if (urCodes.isNotEmpty) return ;
@@ -66,9 +60,10 @@ abstract class BarcodeScannerViewModelBase with ViewModel, Store {
66
60
}
67
61
}
68
62
63
+ @action
69
64
List <int > urParts () {
70
65
final List <int > l = [];
71
- for (final inp in ur .inputs) {
66
+ for (final inp in URQRData . parse (urCodes) .inputs) {
72
67
try {
73
68
l.add (int .parse (inp.split ("/" )[1 ].split ("-" )[0 ]));
74
69
} catch (e) {
0 commit comments