version bump to 3.13.9, auth working on mac (#1367)

* version bump to 3.13.9, auth working on mac * bump flutter version in workflow file * workflow fix * test fix * downgrade flutter version * test fix * test fix * update gradle version * fixes for updated dart version, localization file updates * remove accidental inclusion * missed some unimplemented throws

Matthew Fosse committed Apr 18, 2024 at 10:00 UTC e6b4b08c24c1c2fb6987dcca233a3fee67c50d25
21 files changed +567 -406
.github/workflows/pr_test_build.yml
+1 -1
@@ -42,7 +42,7 @@ jobs:
42 - name: Flutter action
43 uses: subosito/flutter-action@v1
44 with:
45 - flutter-version: "3.10.x"
45 + flutter-version: "3.13.9"
46 channel: stable
47
48 - name: Install package dependencies
android/build.gradle
+1 -1
@@ -1,5 +1,5 @@
1 buildscript {
2 - ext.kotlin_version = '1.7.10'
2 + ext.kotlin_version = '1.8.10'
3 repositories {
4 google()
5 jcenter()
cw_bitcoin/pubspec.yaml
+4 -1
@@ -39,11 +39,14 @@ dependencies:
39 dev_dependencies:
40 flutter_test:
41 sdk: flutter
42 - build_runner: ^2.1.11
42 + build_runner: ^2.4.7
43 build_resolvers: ^2.0.9
44 mobx_codegen: ^2.0.7
45 hive_generator: ^1.1.3
46
47 +dependency_overrides:
48 + watcher: ^1.1.0
49 +
50 # For information on the generic Dart part of this file, see the
51 # following page: https://dart.dev/tools/pub/pubspec
52
cw_bitcoin_cash/pubspec.yaml
+4 -1
@@ -39,10 +39,13 @@ dependencies:
39 dev_dependencies:
40 flutter_test:
41 sdk: flutter
42 - build_runner: ^2.1.11
42 + build_runner: ^2.4.7
43 mobx_codegen: ^2.0.7
44 hive_generator: ^1.1.3
45
46 +dependency_overrides:
47 + watcher: ^1.1.0
48 +
49 # For information on the generic Dart part of this file, see the
50 # following page: https://dart.dev/tools/pub/pubspec
51
cw_core/pubspec.yaml
+4 -1
@@ -28,11 +28,14 @@ dependencies:
28 dev_dependencies:
29 flutter_test:
30 sdk: flutter
31 - build_runner: ^2.1.11
31 + build_runner: ^2.4.7
32 build_resolvers: ^2.0.9
33 mobx_codegen: ^2.0.7
34 hive_generator: ^2.0.1
35
36 +dependency_overrides:
37 + watcher: ^1.1.0
38 +
39 # For information on the generic Dart part of this file, see the
40 # following page: https://dart.dev/tools/pub/pubspec
41
cw_ethereum/pubspec.yaml
+5 -1
@@ -22,7 +22,11 @@ dependencies:
22 dev_dependencies:
23 flutter_test:
24 sdk: flutter
25 - build_runner: ^2.1.11
25 + build_runner: ^2.4.7
26 +
27 +dependency_overrides:
28 + watcher: ^1.1.0
29 +
30 flutter:
31 # assets:
32 # - images/a_dot_burr.jpeg
cw_evm/pubspec.yaml
+4 -1
@@ -27,11 +27,14 @@ dependencies:
27 dev_dependencies:
28 flutter_test:
29 sdk: flutter
30 - build_runner: ^2.1.11
30 + build_runner: ^2.4.7
31 mobx_codegen: ^2.0.7
32 hive_generator: ^1.1.3
33 flutter_lints: ^2.0.0
34
35 +dependency_overrides:
36 + watcher: ^1.1.0
37 +
38 flutter:
39 # assets:
40 # - images/a_dot_burr.jpeg
cw_haven/pubspec.yaml
+4 -1
@@ -24,11 +24,14 @@ dependencies:
24 dev_dependencies:
25 flutter_test:
26 sdk: flutter
27 - build_runner: ^2.1.11
27 + build_runner: ^2.4.7
28 mobx_codegen: ^2.0.7
29 build_resolvers: ^2.0.9
30 hive_generator: ^1.1.3
31
32 +dependency_overrides:
33 + watcher: ^1.1.0
34 +
35 # For information on the generic Dart part of this file, see the
36 # following page: https://dart.dev/tools/pub/pubspec
37
cw_monero/pubspec.yaml
+4 -1
@@ -26,11 +26,14 @@ dependencies:
26 dev_dependencies:
27 flutter_test:
28 sdk: flutter
29 - build_runner: ^2.1.11
29 + build_runner: ^2.4.7
30 build_resolvers: ^2.0.9
31 mobx_codegen: ^2.0.7
32 hive_generator: ^1.1.3
33
34 +dependency_overrides:
35 + watcher: ^1.1.0
36 +
37 # For information on the generic Dart part of this file, see the
38 # following page: https://dart.dev/tools/pub/pubspec
39
cw_nano/pubspec.yaml
+4 -1
@@ -32,10 +32,13 @@ dependencies:
32 dev_dependencies:
33 flutter_test:
34 sdk: flutter
35 - build_runner: ^2.1.11
35 + build_runner: ^2.4.7
36 mobx_codegen: ^2.0.7
37 hive_generator: ^1.1.3
38
39 +dependency_overrides:
40 + watcher: ^1.1.0
41 +
42 # For information on the generic Dart part of this file, see the
43 # following page: https://dart.dev/tools/pub/pubspec
44
cw_polygon/pubspec.yaml
+4 -1
@@ -28,7 +28,10 @@ dev_dependencies:
28 flutter_test:
29 sdk: flutter
30 flutter_lints: ^2.0.0
31 - build_runner: ^2.1.11
31 + build_runner: ^2.4.7
32 +
33 +dependency_overrides:
34 + watcher: ^1.1.0
35
36 # For information on the generic Dart part of this file, see the
37 # following page: https://dart.dev/tools/pub/pubspec
cw_solana/pubspec.yaml
+4 -1
@@ -26,10 +26,13 @@ dev_dependencies:
26 flutter_test:
27 sdk: flutter
28 flutter_lints: ^2.0.0
29 - build_runner: ^2.1.11
29 + build_runner: ^2.4.7
30 mobx_codegen: ^2.0.7
31 hive_generator: ^1.1.3
32
33 +dependency_overrides:
34 + watcher: ^1.1.0
35 +
36 flutter:
37 # assets:
38 # - images/a_dot_burr.jpeg
lib/entities/biometric_auth.dart
+11 -15
@@ -1,32 +1,28 @@
1 -import 'package:local_auth/local_auth.dart';
1 import 'package:flutter/services.dart';
3 -import 'package:cake_wallet/generated/i18n.dart';
2 +import 'package:flutter_local_authentication/flutter_local_authentication.dart';
3
4 class BiometricAuth {
6 - final _localAuth = LocalAuthentication();
5 + final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication();
6
7 Future<bool> isAuthenticated() async {
8 try {
10 - return await _localAuth.authenticate(
11 - localizedReason: S.current.biometric_auth_reason,
12 - options: AuthenticationOptions(
13 - biometricOnly: true,
14 - useErrorDialogs: true,
15 - stickyAuth: false));
16 - } on PlatformException catch (e) {
9 + final authenticated = await _flutterLocalAuthenticationPlugin.authenticate();
10 + return authenticated;
11 + } catch (e) {
12 print(e);
13 }
19 -
14 return false;
15 }
16
17 Future<bool> canCheckBiometrics() async {
18 + bool canAuthenticate;
19 try {
25 - return await _localAuth.canCheckBiometrics;
26 - } on PlatformException catch (e) {
27 - print(e);
20 + canAuthenticate = await _flutterLocalAuthenticationPlugin.canAuthenticate();
21 + } catch (error) {
22 + print("Exception checking support. $error");
23 + canAuthenticate = false;
24 }
25
30 - return false;
26 + return canAuthenticate;
27 }
28 }
lib/locales/hausa_intl.dart
+64
@@ -751,6 +751,50 @@ class HaMaterialLocalizations extends GlobalMaterialLocalizations {
751
752 @override
753 String get scrimOnTapHintRaw => "Scrip on Tap";
754 +
755 + @override
756 + // TODO: implement collapsedHint
757 + String get collapsedHint => "collapsedHint";
758 +
759 + @override
760 + // TODO: implement expandedHint
761 + String get expandedHint => "expandedHint";
762 +
763 + @override
764 + // TODO: implement expansionTileCollapsedHint
765 + String get expansionTileCollapsedHint => "expansionTileCollapsedHint";
766 +
767 + @override
768 + // TODO: implement expansionTileCollapsedTapHint
769 + String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint";
770 +
771 + @override
772 + // TODO: implement expansionTileExpandedHint
773 + String get expansionTileExpandedHint => "expansionTileExpandedHint";
774 +
775 + @override
776 + // TODO: implement expansionTileExpandedTapHint
777 + String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint";
778 +
779 + @override
780 + // TODO: implement scanTextButtonLabel
781 + String get scanTextButtonLabel => "scanTextButtonLabel";
782 +
783 + @override
784 + // TODO: implement lookUpButtonLabel
785 + String get lookUpButtonLabel => "lookUpButtonLabel";
786 +
787 + @override
788 + // TODO: implement menuDismissLabel
789 + String get menuDismissLabel => "menuDismissLabel";
790 +
791 + @override
792 + // TODO: implement searchWebButtonLabel
793 + String get searchWebButtonLabel => "searchWebButtonLabel";
794 +
795 + @override
796 + // TODO: implement shareButtonLabel
797 + String get shareButtonLabel => "shareButtonLabel";
798 }
799
800 /// Cupertino Support
@@ -955,4 +999,24 @@ class HaCupertinoLocalizations extends GlobalCupertinoLocalizations {
999
1000 @override
1001 String get noSpellCheckReplacementsLabel => "";
1002 +
1003 + @override
1004 + // TODO: implement clearButtonLabel
1005 + String get clearButtonLabel => "clearButtonLabel";
1006 +
1007 + @override
1008 + // TODO: implement lookUpButtonLabel
1009 + String get lookUpButtonLabel => "lookUpButtonLabel";
1010 +
1011 + @override
1012 + // TODO: implement menuDismissLabel
1013 + String get menuDismissLabel => "menuDismissLabel";
1014 +
1015 + @override
1016 + // TODO: implement searchWebButtonLabel
1017 + String get searchWebButtonLabel => "searchWebButtonLabel";
1018 +
1019 + @override
1020 + // TODO: implement shareButtonLabel
1021 + String get shareButtonLabel => "shareButtonLabel";
1022 }
lib/locales/yoruba_intl.dart
+425 -362
@@ -1,4 +1,3 @@
1 -
1 import 'dart:async';
2
3 import 'package:flutter/cupertino.dart';
@@ -164,62 +163,62 @@ const yoDateSymbols = {
163 'ọjọ́ Àbámẹ́ta',
164 ],
165 'STANDALONEWEEKDAYS': <dynamic>[
167 -'Ọjọ́ Ajé',
168 -'Ọjọ́ Ìsẹ́gun',
169 -'Ọjọ́ Ìsẹ́gun-Ẹtì',
170 -'Ọjọ́ Ìsẹ́gun-Ọ̀rú',
171 -'Ọjọ́ Àìkú',
172 -'Ọjọ́ Jímọ̀',
173 -'Ọjọ́ Àbámẹ́ta',
174 -],
175 -'SHORTWEEKDAYS': <dynamic>[
176 -'Ajé',
177 -'Ìsẹ́gun',
178 -'Ìsẹ́gun-Ẹtì',
179 -'Ìsẹ́gun-Ọ̀rú',
180 -'Àìkú',
181 -'Jímọ̀',
182 -'Àbámẹ́ta',
183 -],
184 -'STANDALONESHORTWEEKDAYS': <dynamic>[
185 -'Ajé',
186 -'Ìsẹ́gun',
187 -'Ìsẹ́gun-Ẹtì',
188 -'Ìsẹ́gun-Ọ̀rú',
189 -'Àìkú',
190 -'Jímọ̀',
191 -'Àbámẹ́ta',
192 -],
193 -'NARROWWEEKDAYS': <dynamic>[
194 -'A',
195 -'A',
196 -'Ì',
197 -'A',
198 -'À',
199 -'J',
200 -'À',
201 -],
202 -'STANDALONENARROWWEEKDAYS': <dynamic>[
203 -'A',
204 -'A',
205 -'Ì',
206 -'A',
207 -'À',
208 -'J',
209 -'À',
210 -],
211 -'SHORTQUARTERS': <dynamic>[
212 -'K1',
213 -'K2',
214 -'K3',
215 -'K4',
216 -],
217 -'QUARTERS': <dynamic>[
218 -'1. kwata',
219 -'2. kwata',
220 -'3. kwata',
221 -'4. kwata',
222 -],
166 + 'Ọjọ́ Ajé',
167 + 'Ọjọ́ Ìsẹ́gun',
168 + 'Ọjọ́ Ìsẹ́gun-Ẹtì',
169 + 'Ọjọ́ Ìsẹ́gun-Ọ̀rú',
170 + 'Ọjọ́ Àìkú',
171 + 'Ọjọ́ Jímọ̀',
172 + 'Ọjọ́ Àbámẹ́ta',
173 + ],
174 + 'SHORTWEEKDAYS': <dynamic>[
175 + 'Ajé',
176 + 'Ìsẹ́gun',
177 + 'Ìsẹ́gun-Ẹtì',
178 + 'Ìsẹ́gun-Ọ̀rú',
179 + 'Àìkú',
180 + 'Jímọ̀',
181 + 'Àbámẹ́ta',
182 + ],
183 + 'STANDALONESHORTWEEKDAYS': <dynamic>[
184 + 'Ajé',
185 + 'Ìsẹ́gun',
186 + 'Ìsẹ́gun-Ẹtì',
187 + 'Ìsẹ́gun-Ọ̀rú',
188 + 'Àìkú',
189 + 'Jímọ̀',
190 + 'Àbámẹ́ta',
191 + ],
192 + 'NARROWWEEKDAYS': <dynamic>[
193 + 'A',
194 + 'A',
195 + 'Ì',
196 + 'A',
197 + 'À',
198 + 'J',
199 + 'À',
200 + ],
201 + 'STANDALONENARROWWEEKDAYS': <dynamic>[
202 + 'A',
203 + 'A',
204 + 'Ì',
205 + 'A',
206 + 'À',
207 + 'J',
208 + 'À',
209 + ],
210 + 'SHORTQUARTERS': <dynamic>[
211 + 'K1',
212 + 'K2',
213 + 'K3',
214 + 'K4',
215 + ],
216 + 'QUARTERS': <dynamic>[
217 + '1. kwata',
218 + '2. kwata',
219 + '3. kwata',
220 + '4. kwata',
221 + ],
222 'AMPMS': <dynamic>[
223 'a.m.',
224 'p.m.',
@@ -316,339 +315,339 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations {
315 });
316
317 // #docregion Getters
319 -@override
320 -String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni';
318 + @override
319 + String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni';
320
322 -@override
323 -String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname';
321 + @override
322 + String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname';
323
325 -@override
326 -String get alertDialogLabel => r'Ìròhùn Àlàyé';
324 + @override
325 + String get alertDialogLabel => r'Ìròhùn Àlàyé';
326
327 // #enddocregion Getters
328
330 -@override
331 -String get anteMeridiemAbbreviation => r'AM';
329 + @override
330 + String get anteMeridiemAbbreviation => r'AM';
331
333 -@override
334 -String get backButtonTooltip => r'Fíran';
332 + @override
333 + String get backButtonTooltip => r'Fíran';
334
336 -@override
337 -String get cancelButtonLabel => r'FAGILE';
335 + @override
336 + String get cancelButtonLabel => r'FAGILE';
337
339 -@override
340 -String get closeButtonLabel => r'KÚ';
338 + @override
339 + String get closeButtonLabel => r'KÚ';
340
342 -@override
343 -String get closeButtonTooltip => r'Kú';
341 + @override
342 + String get closeButtonTooltip => r'Kú';
343
345 -@override
346 -String get collapsedIconTapHint => r'Tá';
344 + @override
345 + String get collapsedIconTapHint => r'Tá';
346
348 -@override
349 -String get continueButtonLabel => r'TÓ WÁ';
347 + @override
348 + String get continueButtonLabel => r'TÓ WÁ';
349
351 -@override
352 -String get copyButtonLabel => r'DÚPLÍKÉTÍ';
350 + @override
351 + String get copyButtonLabel => r'DÚPLÍKÉTÍ';
352
354 -@override
355 -String get cutButtonLabel => r'TÒ';
353 + @override
354 + String get cutButtonLabel => r'TÒ';
355
357 -@override
358 -String get deleteButtonTooltip => r'Máa kú';
356 + @override
357 + String get deleteButtonTooltip => r'Máa kú';
358
360 -@override
361 -String get dialogLabel => r'Ìròhùn';
359 + @override
360 + String get dialogLabel => r'Ìròhùn';
361
363 -@override
364 -String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí';
362 + @override
363 + String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí';
364
366 -@override
367 -String get expandedIconTapHint => r'Tá';
365 + @override
366 + String get expandedIconTapHint => r'Tá';
367
369 -@override
370 -String get firstPageTooltip => r'Ojú ewe';
368 + @override
369 + String get firstPageTooltip => r'Ojú ewe';
370
372 -@override
373 -String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀';
371 + @override
372 + String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀';
373
375 -@override
376 -String get lastPageTooltip => r'Ojú ayé';
374 + @override
375 + String get lastPageTooltip => r'Ojú ayé';
376
378 -@override
379 -String get licensesPageTitle => r'Ìròhùn Ọdún';
377 + @override
378 + String get licensesPageTitle => r'Ìròhùn Ọdún';
379
381 -@override
382 -String get modalBarrierDismissLabel => r'Sọ';
380 + @override
381 + String get modalBarrierDismissLabel => r'Sọ';
382
384 -@override
385 -String get nextMonthTooltip => r'Oṣù kọja';
383 + @override
384 + String get nextMonthTooltip => r'Oṣù kọja';
385
387 -@override
388 -String get nextPageTooltip => r'Ojú ọjọ́ kẹta';
386 + @override
387 + String get nextPageTooltip => r'Ojú ọjọ́ kẹta';
388
390 -@override
391 -String get okButtonLabel => r'Ò daájú';
392 -@override
389 + @override
390 + String get okButtonLabel => r'Ò daájú';
391 + @override
392 // A custom drawer tooltip message.
394 -String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka';
393 + String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka';
394
395 // #docregion Raw
397 -@override
398 -String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount';
396 + @override
397 + String get pageRowsInfoTitleRaw => r'$firstRow–$lastRow lati $rowCount';
398
400 -@override
401 -String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount';
399 + @override
400 + String get pageRowsInfoTitleApproximateRaw => r'$firstRow–$lastRow lati kiakia $rowCount';
401 // #enddocregion Raw
402
404 -@override
405 -String get pasteButtonLabel => r'TÌ';
403 + @override
404 + String get pasteButtonLabel => r'TÌ';
405
407 -@override
408 -String get popupMenuLabel => r'Meniu Pop-up';
406 + @override
407 + String get popupMenuLabel => r'Meniu Pop-up';
408
410 -@override
411 -String get menuBarMenuLabel => r'Meniu Akọkọ';
409 + @override
410 + String get menuBarMenuLabel => r'Meniu Akọkọ';
411
413 -@override
414 -String get postMeridiemAbbreviation => r'PM';
412 + @override
413 + String get postMeridiemAbbreviation => r'PM';
414
416 -@override
417 -String get previousMonthTooltip => r'Oṣu Kanakana';
415 + @override
416 + String get previousMonthTooltip => r'Oṣu Kanakana';
417
419 -@override
420 -String get previousPageTooltip => r'Ojú ewé akọkọ kan';
418 + @override
419 + String get previousPageTooltip => r'Ojú ewé akọkọ kan';
420
422 -@override
423 -String get refreshIndicatorSemanticLabel => r'Gbiyanju';
421 + @override
422 + String get refreshIndicatorSemanticLabel => r'Gbiyanju';
423
425 -@override
426 -String? get remainingTextFieldCharacterCountFew => null;
424 + @override
425 + String? get remainingTextFieldCharacterCountFew => null;
426
428 -@override
429 -String? get remainingTextFieldCharacterCountMany => null;
427 + @override
428 + String? get remainingTextFieldCharacterCountMany => null;
429
431 -@override
432 -String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀';
430 + @override
431 + String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀';
432
434 -@override
435 -String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀';
433 + @override
434 + String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀';
435
437 -@override
438 -String? get remainingTextFieldCharacterCountTwo => null;
436 + @override
437 + String? get remainingTextFieldCharacterCountTwo => null;
438
440 -@override
441 -String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe';
439 + @override
440 + String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe';
441
443 -@override
444 -String get reorderItemDown => r'Jù sí ilẹ';
442 + @override
443 + String get reorderItemDown => r'Jù sí ilẹ';
444
446 -@override
447 -String get reorderItemLeft => r'Jù sí àrà';
445 + @override
446 + String get reorderItemLeft => r'Jù sí àrà';
447
449 -@override
450 -String get reorderItemRight => r'Jù sí òtútù';
448 + @override
449 + String get reorderItemRight => r'Jù sí òtútù';
450
452 -@override
453 -String get reorderItemToEnd => r'Jù sí ìbẹ̀jì';
451 + @override
452 + String get reorderItemToEnd => r'Jù sí ìbẹ̀jì';
453
455 -@override
456 -String get reorderItemToStart => r'Jù sí àkọ́kọ́';
454 + @override
455 + String get reorderItemToStart => r'Jù sí àkọ́kọ́';
456
458 -@override
459 -String get reorderItemUp => r'Jù sí ọ̀rùn';
457 + @override
458 + String get reorderItemUp => r'Jù sí ọ̀rùn';
459
461 -@override
462 -String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:';
460 + @override
461 + String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:';
462
464 -@override
465 -ScriptCategory get scriptCategory => ScriptCategory.englishLike;
463 + @override
464 + ScriptCategory get scriptCategory => ScriptCategory.englishLike;
465
467 -@override
468 -String get searchFieldLabel => 'Ṣẹda';
466 + @override
467 + String get searchFieldLabel => 'Ṣẹda';
468
470 -@override
471 -String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀';
469 + @override
470 + String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀';
471
473 -@override
474 -String? get selectedRowCountTitleFew => null;
472 + @override
473 + String? get selectedRowCountTitleFew => null;
474
476 -@override
477 -String? get selectedRowCountTitleMany => null;
475 + @override
476 + String? get selectedRowCountTitleMany => null;
477
479 -@override
480 -String get selectedRowCountTitleOne => '1 káyé';
478 + @override
479 + String get selectedRowCountTitleOne => '1 káyé';
480
482 -@override
483 -String get selectedRowCountTitleOther => r'$selectedRowCount káyé';
481 + @override
482 + String get selectedRowCountTitleOther => r'$selectedRowCount káyé';
483
485 -@override
486 -String? get selectedRowCountTitleTwo => null;
484 + @override
485 + String? get selectedRowCountTitleTwo => null;
486
488 -@override
489 -String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé';
487 + @override
488 + String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé';
489
491 -@override
492 -String get showAccountsLabel => 'Fi iyipada mu kọ';
490 + @override
491 + String get showAccountsLabel => 'Fi iyipada mu kọ';
492
494 -@override
495 -String get showMenuTooltip => 'Fi Meniu mu kọ';
493 + @override
494 + String get showMenuTooltip => 'Fi Meniu mu kọ';
495
497 -@override
498 -String get signedInLabel => 'Ọ̀nà';
496 + @override
497 + String get signedInLabel => 'Ọ̀nà';
498
500 -@override
501 -String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount';
502 -
499 @override
504 -TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a;
500 + String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount';
501
506 -@override
507 -String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ';
502 + @override
503 + TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a;
504
509 -@override
510 -String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti';
505 + @override
506 + String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ';
507
512 -@override
513 -String get viewLicensesButtonLabel => 'WO NIKI';
508 + @override
509 + String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti';
510
515 -@override
516 -List<String> get narrowWeekdays => const <String>['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ'];
511 + @override
512 + String get viewLicensesButtonLabel => 'WO NIKI';
513
518 -@override
519 -int get firstDayOfWeekIndex => 0;
514 + @override
515 + List<String> get narrowWeekdays => const <String>['L', 'L', 'A', 'O', 'Ọ', 'Ẹ', 'Ẹ'];
516
521 -static const LocalizationsDelegate<MaterialLocalizations> delegate =
522 -_YoMaterialLocalizationsDelegate();
517 + @override
518 + int get firstDayOfWeekIndex => 0;
519
524 -@override
525 -String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà';
520 + static const LocalizationsDelegate<MaterialLocalizations> delegate =
521 + _YoMaterialLocalizationsDelegate();
522
527 -@override
528 -String get dateHelpText => 'mm/dd/yyyy';
523 + @override
524 + String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà';
525
530 -@override
531 -String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́';
526 + @override
527 + String get dateHelpText => 'mm/dd/yyyy';
528
533 -@override
534 -String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́';
529 + @override
530 + String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́';
531
536 -@override
537 -String get datePickerHelpText => 'WÁSÍ';
532 + @override
533 + String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́';
534
539 -@override
540 -String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà';
535 + @override
536 + String get datePickerHelpText => 'WÁSÍ';
537
542 -@override
543 -String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà';
538 + @override
539 + String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà';
540
545 -@override
546 -String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ';
541 + @override
542 + String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà';
543
548 -@override
549 -String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá';
544 + @override
545 + String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ';
546
551 -@override
552 -String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá';
547 + @override
548 + String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá';
549
554 -@override
555 -String get dateSeparator => '/';
550 + @override
551 + String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá';
552
557 -@override
558 -String get dialModeButtonLabel => 'Tọ́rọ̀ wakati';
553 + @override
554 + String get dateSeparator => '/';
555
560 -@override
561 -String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́';
556 + @override
557 + String get dialModeButtonLabel => 'Tọ́rọ̀ wakati';
558
563 -@override
564 -String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́';
559 + @override
560 + String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́';
561
566 -@override
567 -String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin';
562 + @override
563 + String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́';
564
569 -@override
570 -String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé';
565 + @override
566 + String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin';
567
572 -@override
573 -String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí';
568 + @override
569 + String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé';
570
575 -@override
576 -String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí';
571 + @override
572 + String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí';
573
578 -@override
579 -String get saveButtonLabel => 'TÙN DÁRA';
574 + @override
575 + String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí';
576
581 -@override
582 -String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà';
577 + @override
578 + String get saveButtonLabel => 'TÙN DÁRA';
579
584 -@override
585 -String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ';
580 + @override
581 + String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà';
582
587 -@override
588 -String get timePickerHourLabel => 'Wákàtì àṣà';
583 + @override
584 + String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ';
585
590 -@override
591 -String get timePickerInputHelpText => 'Shìgárà wákàtì';
586 + @override
587 + String get timePickerHourLabel => 'Wákàtì àṣà';
588
593 -@override
594 -String get timePickerMinuteLabel => 'Mìntì';
589 + @override
590 + String get timePickerInputHelpText => 'Shìgárà wákàtì';
591
596 -@override
597 -String get unspecifiedDate => 'Ọjọ̀kúnrin';
592 + @override
593 + String get timePickerMinuteLabel => 'Mìntì';
594
599 -@override
600 -String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀';
595 + @override
596 + String get unspecifiedDate => 'Ọjọ̀kúnrin';
597
602 -@override
603 -String get keyboardKeyAlt => 'Alt';
598 + @override
599 + String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀';
600
605 -@override
606 -String get keyboardKeyAltGraph => 'AltGraph';
601 + @override
602 + String get keyboardKeyAlt => 'Alt';
603
608 -@override
609 -String get keyboardKeyBackspace => 'Báckspàcè';
604 + @override
605 + String get keyboardKeyAltGraph => 'AltGraph';
606
611 -@override
612 -String get keyboardKeyCapsLock => 'Caps Lock';
607 + @override
608 + String get keyboardKeyBackspace => 'Báckspàcè';
609
614 -@override
615 -String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké';
610 + @override
611 + String get keyboardKeyCapsLock => 'Caps Lock';
612
617 -@override
618 -String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké';
613 + @override
614 + String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké';
615
620 -@override
621 -String get keyboardKeyControl => 'Kọ́ntírọ̀l';
616 + @override
617 + String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké';
618
623 -@override
624 -String get keyboardKeyDelete => 'Shápè';
619 + @override
620 + String get keyboardKeyControl => 'Kọ́ntírọ̀l';
621 +
622 + @override
623 + String get keyboardKeyDelete => 'Shápè';
624
626 -@override
627 -String get keyboardKeyEject => 'Èjẹ̀tì';
625 + @override
626 + String get keyboardKeyEject => 'Èjẹ̀tì';
627
629 -@override
630 -String get keyboardKeyEnd => 'Tàbí';
628 + @override
629 + String get keyboardKeyEnd => 'Tàbí';
630
632 -@override
633 -String get keyboardKeyEscape => 'Tòkè';
631 + @override
632 + String get keyboardKeyEscape => 'Tòkè';
633
634 @override
636 -String get keyboardKeyFn => 'Fn';
635 + String get keyboardKeyFn => 'Fn';
636
638 -@override
639 -String get keyboardKeyHome => 'Ile';
637 + @override
638 + String get keyboardKeyHome => 'Ile';
639
641 -@override
642 -String get keyboardKeyInsert => 'Fi sori';
640 + @override
641 + String get keyboardKeyInsert => 'Fi sori';
642
644 -@override
645 -String get keyboardKeyMeta => 'Meta';
643 + @override
644 + String get keyboardKeyMeta => 'Meta';
645
647 -@override
648 -String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command';
646 + @override
647 + String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command';
648
650 -@override
651 -String get keyboardKeyMetaWindows => 'Windows';
649 + @override
650 + String get keyboardKeyMetaWindows => 'Windows';
651
652 @override
653 String get keyboardKeyNumLock => 'Num Lock';
@@ -751,6 +750,50 @@ String get keyboardKeyMetaWindows => 'Windows';
750
751 @override
752 String get scrimOnTapHintRaw => "Scrip on Tap";
753 +
754 + @override
755 + // TODO: implement collapsedHint
756 + String get collapsedHint => "collapsedHint";
757 +
758 + @override
759 + // TODO: implement expandedHint
760 + String get expandedHint => "expandedHint";
761 +
762 + @override
763 + // TODO: implement expansionTileCollapsedHint
764 + String get expansionTileCollapsedHint => "expansionTileCollapsedHint";
765 +
766 + @override
767 + // TODO: implement expansionTileCollapsedTapHint
768 + String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint";
769 +
770 + @override
771 + // TODO: implement expansionTileExpandedHint
772 + String get expansionTileExpandedHint => "expansionTileExpandedHint";
773 +
774 + @override
775 + // TODO: implement expansionTileExpandedTapHint
776 + String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint";
777 +
778 + @override
779 + // TODO: implement scanTextButtonLabel
780 + String get scanTextButtonLabel => "scanTextButtonLabel";
781 +
782 + @override
783 + // TODO: implement lookUpButtonLabel
784 + String get lookUpButtonLabel => "lookUpButtonLabel";
785 +
786 + @override
787 + // TODO: implement menuDismissLabel
788 + String get menuDismissLabel => "menuDismissLabel";
789 +
790 + @override
791 + // TODO: implement searchWebButtonLabel
792 + String get searchWebButtonLabel => "searchWebButtonLabel";
793 +
794 + @override
795 + // TODO: implement shareButtonLabel
796 + String get shareButtonLabel => "shareButtonLabel";
797 }
798
799 /// Cupertino Support
@@ -821,138 +864,158 @@ class YoCupertinoLocalizations extends GlobalCupertinoLocalizations {
864 required super.singleDigitSecondFormat,
865 });
866
824 -@override
825 -String get alertDialogLabel => 'Àdàkárò';
867 + @override
868 + String get alertDialogLabel => 'Àdàkárò';
869
827 -@override
828 -String get anteMeridiemAbbreviation => 'AM';
870 + @override
871 + String get anteMeridiemAbbreviation => 'AM';
872
830 -@override
831 -String get copyButtonLabel => 'Kòpy';
873 + @override
874 + String get copyButtonLabel => 'Kòpy';
875
833 -@override
834 -String get cutButtonLabel => 'Kọ́t';
876 + @override
877 + String get cutButtonLabel => 'Kọ́t';
878
836 -@override
837 -String get datePickerDateOrderString => 'mdy';
879 + @override
880 + String get datePickerDateOrderString => 'mdy';
881
839 -@override
840 -String get datePickerDateTimeOrderString => 'date_time_dayPeriod';
882 + @override
883 + String get datePickerDateTimeOrderString => 'date_time_dayPeriod';
884
842 -@override
843 -String? get datePickerHourSemanticsLabelFew => null;
885 + @override
886 + String? get datePickerHourSemanticsLabelFew => null;
887
845 -@override
846 -String? get datePickerHourSemanticsLabelMany => null;
888 + @override
889 + String? get datePickerHourSemanticsLabelMany => null;
890
848 -@override
849 -String? get datePickerHourSemanticsLabelOne => r"$hour o'clock";
891 + @override
892 + String? get datePickerHourSemanticsLabelOne => r"$hour o'clock";
893
851 -@override
852 -String get datePickerHourSemanticsLabelOther => r"$hour o'clock";
894 + @override
895 + String get datePickerHourSemanticsLabelOther => r"$hour o'clock";
896
854 -@override
855 -String? get datePickerHourSemanticsLabelTwo => null;
897 + @override
898 + String? get datePickerHourSemanticsLabelTwo => null;
899
857 -@override
858 -String? get datePickerHourSemanticsLabelZero => null;
900 + @override
901 + String? get datePickerHourSemanticsLabelZero => null;
902
860 -@override
861 -String? get datePickerMinuteSemanticsLabelFew => null;
903 + @override
904 + String? get datePickerMinuteSemanticsLabelFew => null;
905
863 -@override
864 -String? get datePickerMinuteSemanticsLabelMany => null;
906 + @override
907 + String? get datePickerMinuteSemanticsLabelMany => null;
908
866 -@override
867 -String? get datePickerMinuteSemanticsLabelOne => '1 wakati';
909 + @override
910 + String? get datePickerMinuteSemanticsLabelOne => '1 wakati';
911
869 -@override
870 -String get datePickerMinuteSemanticsLabelOther => r'$minute wakati';
912 + @override
913 + String get datePickerMinuteSemanticsLabelOther => r'$minute wakati';
914
872 -@override
873 -String? get datePickerMinuteSemanticsLabelTwo => null;
915 + @override
916 + String? get datePickerMinuteSemanticsLabelTwo => null;
917
875 -@override
876 -String? get datePickerMinuteSemanticsLabelZero => null;
918 + @override
919 + String? get datePickerMinuteSemanticsLabelZero => null;
920
878 -@override
879 -String get modalBarrierDismissLabel => 'Búta';
921 + @override
922 + String get modalBarrierDismissLabel => 'Búta';
923
881 -@override
882 -String get pasteButtonLabel => 'Tẹ́ẹ́';
924 + @override
925 + String get pasteButtonLabel => 'Tẹ́ẹ́';
926
884 -@override
885 -String get postMeridiemAbbreviation => 'PM';
927 + @override
928 + String get postMeridiemAbbreviation => 'PM';
929
887 -@override
888 -String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà';
930 + @override
931 + String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà';
932
890 -@override
891 -String get selectAllButtonLabel => 'Fírànsé gbógbo';
933 + @override
934 + String get selectAllButtonLabel => 'Fírànsé gbógbo';
935
893 -@override
894 -String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount';
936 + @override
937 + String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount';
938
896 -@override
897 -String? get timerPickerHourLabelFew => null;
939 + @override
940 + String? get timerPickerHourLabelFew => null;
941
899 -@override
900 -String? get timerPickerHourLabelMany => null;
942 + @override
943 + String? get timerPickerHourLabelMany => null;
944
902 -@override
903 -String? get timerPickerHourLabelOne => 'òǹdì';
945 + @override
946 + String? get timerPickerHourLabelOne => 'òǹdì';
947
905 -@override
906 -String get timerPickerHourLabelOther => 'òǹdì';
948 + @override
949 + String get timerPickerHourLabelOther => 'òǹdì';
950
908 -@override
909 -String? get timerPickerHourLabelTwo => null;
951 + @override
952 + String? get timerPickerHourLabelTwo => null;
953
911 -@override
912 -String? get timerPickerHourLabelZero => null;
954 + @override
955 + String? get timerPickerHourLabelZero => null;
956
914 -@override
915 -String? get timerPickerMinuteLabelFew => null;
957 + @override
958 + String? get timerPickerMinuteLabelFew => null;
959
917 -@override
918 -String? get timerPickerMinuteLabelMany => null;
960 + @override
961 + String? get timerPickerMinuteLabelMany => null;
962
920 -@override
921 -String? get timerPickerMinuteLabelOne => 'wakati.';
963 + @override
964 + String? get timerPickerMinuteLabelOne => 'wakati.';
965
923 -@override
924 -String get timerPickerMinuteLabelOther => 'wakati.';
966 + @override
967 + String get timerPickerMinuteLabelOther => 'wakati.';
968
926 -@override
927 -String? get timerPickerMinuteLabelTwo => null;
969 + @override
970 + String? get timerPickerMinuteLabelTwo => null;
971
929 -@override
930 -String? get timerPickerMinuteLabelZero => null;
972 + @override
973 + String? get timerPickerMinuteLabelZero => null;
974
932 -@override
933 -String? get timerPickerSecondLabelFew => null;
975 + @override
976 + String? get timerPickerSecondLabelFew => null;
977
935 -@override
936 -String? get timerPickerSecondLabelMany => null;
978 + @override
979 + String? get timerPickerSecondLabelMany => null;
980
938 -@override
939 -String? get timerPickerSecondLabelOne => 'dákìkà.';
981 + @override
982 + String? get timerPickerSecondLabelOne => 'dákìkà.';
983
941 -@override
942 -String get timerPickerSecondLabelOther => 'dákìkà.';
984 + @override
985 + String get timerPickerSecondLabelOther => 'dákìkà.';
986
944 -@override
945 -String? get timerPickerSecondLabelTwo => null;
987 + @override
988 + String? get timerPickerSecondLabelTwo => null;
989
947 -@override
948 -String? get timerPickerSecondLabelZero => null;
990 + @override
991 + String? get timerPickerSecondLabelZero => null;
992
950 -@override
951 -String get todayLabel => 'Oyọ';
993 + @override
994 + String get todayLabel => 'Oyọ';
995
996 static const LocalizationsDelegate<CupertinoLocalizations> delegate =
997 _YoCupertinoLocalizationsDelegate();
998
999 @override
1000 String get noSpellCheckReplacementsLabel => "";
1001 +
1002 + @override
1003 + // TODO: implement clearButtonLabel
1004 + String get clearButtonLabel => "clearButtonLabel";
1005 +
1006 + @override
1007 + // TODO: implement lookUpButtonLabel
1008 + String get lookUpButtonLabel => "lookUpButtonLabel";
1009 +
1010 + @override
1011 + // TODO: implement menuDismissLabel
1012 + String get menuDismissLabel => "menuDismissLabel";
1013 +
1014 + @override
1015 + // TODO: implement searchWebButtonLabel
1016 + String get searchWebButtonLabel => "searchWebButtonLabel";
1017 +
1018 + @override
1019 + // TODO: implement shareButtonLabel
1020 + String get shareButtonLabel => "shareButtonLabel";
1021 }
lib/src/screens/settings/security_backup_page.dart
+3 -1
@@ -1,3 +1,5 @@
1 +import 'dart:io';
2 +
3 import 'package:cake_wallet/core/auth_service.dart';
4 import 'package:cake_wallet/entities/pin_code_required_duration.dart';
5 import 'package:cake_wallet/routes.dart';
@@ -58,7 +60,7 @@ class SecurityBackupPage extends BasePage {
60 .shouldRequireTOTP2FAForAllSecurityAndBackupSettings,
61 ),
62 ),
61 - if (DeviceInfo.instance.isMobile)
63 + if (DeviceInfo.instance.isMobile || Platform.isMacOS || Platform.isLinux)
64 Observer(builder: (_) {
65 return SettingsSwitcherCell(
66 title: S.current.settings_allow_biometrical_authentication,
lib/src/screens/settings/tor_page.dart
+2 -2
@@ -146,7 +146,7 @@ class ConnectScreen extends StatelessWidget {
146 ElevatedButton(
147 onPressed: connect,
148 style: ElevatedButton.styleFrom(
149 - primary: Colors.blue,
149 + // primary: Colors.blue,
150 padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15),
151 shape: RoundedRectangleBorder(
152 borderRadius: BorderRadius.circular(30),
@@ -211,7 +211,7 @@ class DisconnectScreen extends StatelessWidget {
211 ElevatedButton(
212 onPressed: disconnect,
213 style: ElevatedButton.styleFrom(
214 - primary: Colors.red,
214 + // primary: Colors.red,
215 padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15),
216 shape: RoundedRectangleBorder(
217 borderRadius: BorderRadius.circular(30),
lib/src/widgets/validable_annotated_editable_text.dart
+10 -4
@@ -1,8 +1,14 @@
1 -import 'package:cake_wallet/core/seed_validator.dart';
2 -import 'package:cw_core/wallet_type.dart';
1 import 'package:flutter/material.dart';
2
5 -class Annotation extends Comparable<Annotation> {
3 +
4 +extension Compare<T> on Comparable<T> {
5 + bool operator <=(T other) => compareTo(other) <= 0;
6 + bool operator >=(T other) => compareTo(other) >= 0;
7 + bool operator <(T other) => compareTo(other) < 0;
8 + bool operator >(T other) => compareTo(other) > 0;
9 +}
10 +
11 +class Annotation implements Comparable<Annotation> {
12 Annotation({required this.range, required this.style});
13
14 final TextRange range;
@@ -12,7 +18,7 @@ class Annotation extends Comparable<Annotation> {
18 int compareTo(Annotation other) => range.start.compareTo(other.range.start);
19 }
20
15 -class TextAnnotation extends Comparable<TextAnnotation> {
21 +class TextAnnotation implements Comparable<TextAnnotation> {
22 TextAnnotation({required this.text, required this.style});
23
24 final TextStyle style;
lib/view_model/auth_view_model.dart
+7 -8
@@ -1,5 +1,6 @@
1 import 'dart:async';
2 import 'package:flutter/material.dart';
3 +import 'package:flutter_local_authentication/flutter_local_authentication.dart';
4 import 'package:shared_preferences/shared_preferences.dart';
5 import 'package:mobx/mobx.dart';
6 import 'package:cake_wallet/view_model/auth_state.dart';
@@ -105,16 +106,14 @@ abstract class AuthViewModelBase with Store {
106
107 @action
108 Future<void> biometricAuth() async {
108 - try {
109 - final canBiometricAuth = await _biometricAuth.canCheckBiometrics();
110 -
111 - if (canBiometricAuth) {
112 - final isAuthenticated = await _biometricAuth.isAuthenticated();
109 + final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication();
110
114 - if (isAuthenticated) {
115 - state = ExecutedSuccessfullyState();
116 - }
111 + try {
112 + final authenticated = await _flutterLocalAuthenticationPlugin.authenticate();
113 + if (!authenticated) {
114 + throw Exception('Biometric authentication failed');
115 }
116 + state = ExecutedSuccessfullyState();
117 } catch (e) {
118 state = FailureState(e.toString());
119 }
pubspec_base.yaml
+1 -1
@@ -33,8 +33,8 @@ dependencies:
33 dio: ^4.0.6
34 hive: ^2.2.3
35 hive_flutter: ^1.1.0
36 - local_auth: ^2.1.0
36 local_auth_android: 1.0.21
37 + flutter_local_authentication: ^1.2.0
38 package_info: ^2.0.0
39 #package_info_plus: ^1.4.2
40 devicelocale:
pubspec_description.yaml
+1 -1
@@ -4,4 +4,4 @@ version: 0.0.0
4 publish_to: none
5
6 environment:
7 - sdk: ">=2.17.5 <3.0.0"
\ No newline at end of file
7 + sdk: ">=3.1.0 <4.0.0"
\ No newline at end of file