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

This reverts commit e6b4b08c24.
This commit is contained in:
Omar Hatem 2024-04-18 20:10:58 +02:00 committed by GitHub
parent e48962361a
commit 4ed4659f9e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 406 additions and 567 deletions

View file

@ -42,7 +42,7 @@ jobs:
- name: Flutter action - name: Flutter action
uses: subosito/flutter-action@v1 uses: subosito/flutter-action@v1
with: with:
flutter-version: "3.13.9" flutter-version: "3.10.x"
channel: stable channel: stable
- name: Install package dependencies - name: Install package dependencies

View file

@ -1,5 +1,5 @@
buildscript { buildscript {
ext.kotlin_version = '1.8.10' ext.kotlin_version = '1.7.10'
repositories { repositories {
google() google()
jcenter() jcenter()

View file

@ -39,14 +39,11 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
build_resolvers: ^2.0.9 build_resolvers: ^2.0.9
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
hive_generator: ^1.1.3 hive_generator: ^1.1.3
dependency_overrides:
watcher: ^1.1.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -39,13 +39,10 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
hive_generator: ^1.1.3 hive_generator: ^1.1.3
dependency_overrides:
watcher: ^1.1.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -28,14 +28,11 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
build_resolvers: ^2.0.9 build_resolvers: ^2.0.9
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
hive_generator: ^2.0.1 hive_generator: ^2.0.1
dependency_overrides:
watcher: ^1.1.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -22,11 +22,7 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
dependency_overrides:
watcher: ^1.1.0
flutter: flutter:
# assets: # assets:
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg

View file

@ -27,14 +27,11 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
hive_generator: ^1.1.3 hive_generator: ^1.1.3
flutter_lints: ^2.0.0 flutter_lints: ^2.0.0
dependency_overrides:
watcher: ^1.1.0
flutter: flutter:
# assets: # assets:
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg

View file

@ -24,14 +24,11 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
build_resolvers: ^2.0.9 build_resolvers: ^2.0.9
hive_generator: ^1.1.3 hive_generator: ^1.1.3
dependency_overrides:
watcher: ^1.1.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -26,14 +26,11 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
build_resolvers: ^2.0.9 build_resolvers: ^2.0.9
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
hive_generator: ^1.1.3 hive_generator: ^1.1.3
dependency_overrides:
watcher: ^1.1.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -32,13 +32,10 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
build_runner: ^2.4.7 build_runner: ^2.1.11
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
hive_generator: ^1.1.3 hive_generator: ^1.1.3
dependency_overrides:
watcher: ^1.1.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -28,10 +28,7 @@ dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
flutter_lints: ^2.0.0 flutter_lints: ^2.0.0
build_runner: ^2.4.7 build_runner: ^2.1.11
dependency_overrides:
watcher: ^1.1.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec

View file

@ -26,13 +26,10 @@ dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
flutter_lints: ^2.0.0 flutter_lints: ^2.0.0
build_runner: ^2.4.7 build_runner: ^2.1.11
mobx_codegen: ^2.0.7 mobx_codegen: ^2.0.7
hive_generator: ^1.1.3 hive_generator: ^1.1.3
dependency_overrides:
watcher: ^1.1.0
flutter: flutter:
# assets: # assets:
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg

View file

@ -1,28 +1,32 @@
import 'package:local_auth/local_auth.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_local_authentication/flutter_local_authentication.dart'; import 'package:cake_wallet/generated/i18n.dart';
class BiometricAuth { class BiometricAuth {
final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication(); final _localAuth = LocalAuthentication();
Future<bool> isAuthenticated() async { Future<bool> isAuthenticated() async {
try { try {
final authenticated = await _flutterLocalAuthenticationPlugin.authenticate(); return await _localAuth.authenticate(
return authenticated; localizedReason: S.current.biometric_auth_reason,
} catch (e) { options: AuthenticationOptions(
biometricOnly: true,
useErrorDialogs: true,
stickyAuth: false));
} on PlatformException catch (e) {
print(e); print(e);
} }
return false; return false;
} }
Future<bool> canCheckBiometrics() async { Future<bool> canCheckBiometrics() async {
bool canAuthenticate;
try { try {
canAuthenticate = await _flutterLocalAuthenticationPlugin.canAuthenticate(); return await _localAuth.canCheckBiometrics;
} catch (error) { } on PlatformException catch (e) {
print("Exception checking support. $error"); print(e);
canAuthenticate = false;
} }
return canAuthenticate; return false;
} }
} }

View file

@ -751,50 +751,6 @@ class HaMaterialLocalizations extends GlobalMaterialLocalizations {
@override @override
String get scrimOnTapHintRaw => "Scrip on Tap"; String get scrimOnTapHintRaw => "Scrip on Tap";
@override
// TODO: implement collapsedHint
String get collapsedHint => "collapsedHint";
@override
// TODO: implement expandedHint
String get expandedHint => "expandedHint";
@override
// TODO: implement expansionTileCollapsedHint
String get expansionTileCollapsedHint => "expansionTileCollapsedHint";
@override
// TODO: implement expansionTileCollapsedTapHint
String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint";
@override
// TODO: implement expansionTileExpandedHint
String get expansionTileExpandedHint => "expansionTileExpandedHint";
@override
// TODO: implement expansionTileExpandedTapHint
String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint";
@override
// TODO: implement scanTextButtonLabel
String get scanTextButtonLabel => "scanTextButtonLabel";
@override
// TODO: implement lookUpButtonLabel
String get lookUpButtonLabel => "lookUpButtonLabel";
@override
// TODO: implement menuDismissLabel
String get menuDismissLabel => "menuDismissLabel";
@override
// TODO: implement searchWebButtonLabel
String get searchWebButtonLabel => "searchWebButtonLabel";
@override
// TODO: implement shareButtonLabel
String get shareButtonLabel => "shareButtonLabel";
} }
/// Cupertino Support /// Cupertino Support
@ -999,24 +955,4 @@ class HaCupertinoLocalizations extends GlobalCupertinoLocalizations {
@override @override
String get noSpellCheckReplacementsLabel => ""; String get noSpellCheckReplacementsLabel => "";
@override
// TODO: implement clearButtonLabel
String get clearButtonLabel => "clearButtonLabel";
@override
// TODO: implement lookUpButtonLabel
String get lookUpButtonLabel => "lookUpButtonLabel";
@override
// TODO: implement menuDismissLabel
String get menuDismissLabel => "menuDismissLabel";
@override
// TODO: implement searchWebButtonLabel
String get searchWebButtonLabel => "searchWebButtonLabel";
@override
// TODO: implement shareButtonLabel
String get shareButtonLabel => "shareButtonLabel";
} }

View file

@ -1,3 +1,4 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@ -163,62 +164,62 @@ const yoDateSymbols = {
'ọjọ́ Àbámẹ́ta', 'ọjọ́ Àbámẹ́ta',
], ],
'STANDALONEWEEKDAYS': <dynamic>[ 'STANDALONEWEEKDAYS': <dynamic>[
'Ọjọ́ Ajé', 'Ọjọ́ Ajé',
'Ọjọ́ Ìsẹ́gun', 'Ọjọ́ Ìsẹ́gun',
'Ọjọ́ Ìsẹ́gun-Ẹtì', 'Ọjọ́ Ìsẹ́gun-Ẹtì',
'Ọjọ́ Ìsẹ́gun-Ọ̀rú', 'Ọjọ́ Ìsẹ́gun-Ọ̀rú',
'Ọjọ́ Àìkú', 'Ọjọ́ Àìkú',
'Ọjọ́ Jímọ̀', 'Ọjọ́ Jímọ̀',
'Ọjọ́ Àbámẹ́ta', 'Ọjọ́ Àbámẹ́ta',
], ],
'SHORTWEEKDAYS': <dynamic>[ 'SHORTWEEKDAYS': <dynamic>[
'Ajé', 'Ajé',
'Ìsẹ́gun', 'Ìsẹ́gun',
'Ìsẹ́gun-Ẹtì', 'Ìsẹ́gun-Ẹtì',
'Ìsẹ́gun-Ọ̀rú', 'Ìsẹ́gun-Ọ̀rú',
'Àìkú', 'Àìkú',
'Jímọ̀', 'Jímọ̀',
'Àbámẹ́ta', 'Àbámẹ́ta',
], ],
'STANDALONESHORTWEEKDAYS': <dynamic>[ 'STANDALONESHORTWEEKDAYS': <dynamic>[
'Ajé', 'Ajé',
'Ìsẹ́gun', 'Ìsẹ́gun',
'Ìsẹ́gun-Ẹtì', 'Ìsẹ́gun-Ẹtì',
'Ìsẹ́gun-Ọ̀rú', 'Ìsẹ́gun-Ọ̀rú',
'Àìkú', 'Àìkú',
'Jímọ̀', 'Jímọ̀',
'Àbámẹ́ta', 'Àbámẹ́ta',
], ],
'NARROWWEEKDAYS': <dynamic>[ 'NARROWWEEKDAYS': <dynamic>[
'A', 'A',
'A', 'A',
'Ì', 'Ì',
'A', 'A',
'À', 'À',
'J', 'J',
'À', 'À',
], ],
'STANDALONENARROWWEEKDAYS': <dynamic>[ 'STANDALONENARROWWEEKDAYS': <dynamic>[
'A', 'A',
'A', 'A',
'Ì', 'Ì',
'A', 'A',
'À', 'À',
'J', 'J',
'À', 'À',
], ],
'SHORTQUARTERS': <dynamic>[ 'SHORTQUARTERS': <dynamic>[
'K1', 'K1',
'K2', 'K2',
'K3', 'K3',
'K4', 'K4',
], ],
'QUARTERS': <dynamic>[ 'QUARTERS': <dynamic>[
'1. kwata', '1. kwata',
'2. kwata', '2. kwata',
'3. kwata', '3. kwata',
'4. kwata', '4. kwata',
], ],
'AMPMS': <dynamic>[ 'AMPMS': <dynamic>[
'a.m.', 'a.m.',
'p.m.', 'p.m.',
@ -315,339 +316,339 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations {
}); });
// #docregion Getters // #docregion Getters
@override @override
String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni'; String get moreButtonTooltip => r'Kò sí ìròhùn tí ó múni';
@override @override
String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname'; String get aboutListTileTitleRaw => r'Fun Àpótí àwọn $applicationname';
@override @override
String get alertDialogLabel => r'Ìròhùn Àlàyé'; String get alertDialogLabel => r'Ìròhùn Àlàyé';
// #enddocregion Getters // #enddocregion Getters
@override @override
String get anteMeridiemAbbreviation => r'AM'; String get anteMeridiemAbbreviation => r'AM';
@override @override
String get backButtonTooltip => r'Fíran'; String get backButtonTooltip => r'Fíran';
@override @override
String get cancelButtonLabel => r'FAGILE'; String get cancelButtonLabel => r'FAGILE';
@override @override
String get closeButtonLabel => r'KÚ'; String get closeButtonLabel => r'KÚ';
@override @override
String get closeButtonTooltip => r'Kú'; String get closeButtonTooltip => r'Kú';
@override @override
String get collapsedIconTapHint => r'Tá'; String get collapsedIconTapHint => r'Tá';
@override @override
String get continueButtonLabel => r'TÓ WÁ'; String get continueButtonLabel => r'TÓ WÁ';
@override @override
String get copyButtonLabel => r'DÚPLÍKÉTÍ'; String get copyButtonLabel => r'DÚPLÍKÉTÍ';
@override @override
String get cutButtonLabel => r'TÒ'; String get cutButtonLabel => r'TÒ';
@override @override
String get deleteButtonTooltip => r'Máa kú'; String get deleteButtonTooltip => r'Máa kú';
@override @override
String get dialogLabel => r'Ìròhùn'; String get dialogLabel => r'Ìròhùn';
@override @override
String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí'; String get drawerLabel => r'Àgbèjọ àwọn àpọ̀tí';
@override @override
String get expandedIconTapHint => r'Tá'; String get expandedIconTapHint => r'Tá';
@override @override
String get firstPageTooltip => r'Ojú ewe'; String get firstPageTooltip => r'Ojú ewe';
@override @override
String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀'; String get hideAccountsLabel => r'Fí èrò àpótí wáyé sílẹ̀';
@override @override
String get lastPageTooltip => r'Ojú ayé'; String get lastPageTooltip => r'Ojú ayé';
@override @override
String get licensesPageTitle => r'Ìròhùn Ọdún'; String get licensesPageTitle => r'Ìròhùn Ọdún';
@override @override
String get modalBarrierDismissLabel => r'Sọ'; String get modalBarrierDismissLabel => r'Sọ';
@override @override
String get nextMonthTooltip => r'Oṣù kọja'; String get nextMonthTooltip => r'Oṣù kọja';
@override @override
String get nextPageTooltip => r'Ojú ọjọ́ kẹta'; String get nextPageTooltip => r'Ojú ọjọ́ kẹta';
@override @override
String get okButtonLabel => r'Ò daájú'; String get okButtonLabel => r'Ò daájú';
@override @override
// A custom drawer tooltip message. // A custom drawer tooltip message.
String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka'; String get openAppDrawerTooltip => r'Aya ntọju Iwe Awọn Aka';
// #docregion Raw // #docregion Raw
@override @override
String get pageRowsInfoTitleRaw => r'$firstRow$lastRow lati $rowCount'; String get pageRowsInfoTitleRaw => r'$firstRow$lastRow lati $rowCount';
@override @override
String get pageRowsInfoTitleApproximateRaw => r'$firstRow$lastRow lati kiakia $rowCount'; String get pageRowsInfoTitleApproximateRaw => r'$firstRow$lastRow lati kiakia $rowCount';
// #enddocregion Raw // #enddocregion Raw
@override @override
String get pasteButtonLabel => r'TÌ'; String get pasteButtonLabel => r'TÌ';
@override @override
String get popupMenuLabel => r'Meniu Pop-up'; String get popupMenuLabel => r'Meniu Pop-up';
@override @override
String get menuBarMenuLabel => r'Meniu Akọkọ'; String get menuBarMenuLabel => r'Meniu Akọkọ';
@override @override
String get postMeridiemAbbreviation => r'PM'; String get postMeridiemAbbreviation => r'PM';
@override @override
String get previousMonthTooltip => r'Oṣu Kanakana'; String get previousMonthTooltip => r'Oṣu Kanakana';
@override @override
String get previousPageTooltip => r'Ojú ewé akọkọ kan'; String get previousPageTooltip => r'Ojú ewé akọkọ kan';
@override @override
String get refreshIndicatorSemanticLabel => r'Gbiyanju'; String get refreshIndicatorSemanticLabel => r'Gbiyanju';
@override @override
String? get remainingTextFieldCharacterCountFew => null; String? get remainingTextFieldCharacterCountFew => null;
@override @override
String? get remainingTextFieldCharacterCountMany => null; String? get remainingTextFieldCharacterCountMany => null;
@override @override
String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀'; String get remainingTextFieldCharacterCountOne => r'1 àmì báálẹ̀';
@override @override
String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀'; String get remainingTextFieldCharacterCountOther => r'$remainingCount àmì báálẹ̀';
@override @override
String? get remainingTextFieldCharacterCountTwo => null; String? get remainingTextFieldCharacterCountTwo => null;
@override @override
String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe'; String get remainingTextFieldCharacterCountZero => r'Kò sí ìwọlé létà láti ń ṣe';
@override @override
String get reorderItemDown => r'Jù sí ilẹ'; String get reorderItemDown => r'Jù sí ilẹ';
@override @override
String get reorderItemLeft => r'Jù sí àrà'; String get reorderItemLeft => r'Jù sí àrà';
@override @override
String get reorderItemRight => r'Jù sí òtútù'; String get reorderItemRight => r'Jù sí òtútù';
@override @override
String get reorderItemToEnd => r'Jù sí ìbẹ̀jì'; String get reorderItemToEnd => r'Jù sí ìbẹ̀jì';
@override @override
String get reorderItemToStart => r'Jù sí àkọ́kọ́'; String get reorderItemToStart => r'Jù sí àkọ́kọ́';
@override @override
String get reorderItemUp => r'Jù sí ọ̀rùn'; String get reorderItemUp => r'Jù sí ọ̀rùn';
@override @override
String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:'; String get rowsPerPageTitle => r'Ìlò Fún àwọn Ìtọ́kasíwájú:';
@override @override
ScriptCategory get scriptCategory => ScriptCategory.englishLike; ScriptCategory get scriptCategory => ScriptCategory.englishLike;
@override @override
String get searchFieldLabel => 'Ṣẹda'; String get searchFieldLabel => 'Ṣẹda';
@override @override
String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀'; String get selectAllButtonLabel => 'FADỌHỌN DỌFÚN GBÁJÚMỌ̀';
@override @override
String? get selectedRowCountTitleFew => null; String? get selectedRowCountTitleFew => null;
@override @override
String? get selectedRowCountTitleMany => null; String? get selectedRowCountTitleMany => null;
@override @override
String get selectedRowCountTitleOne => '1 káyé'; String get selectedRowCountTitleOne => '1 káyé';
@override @override
String get selectedRowCountTitleOther => r'$selectedRowCount káyé'; String get selectedRowCountTitleOther => r'$selectedRowCount káyé';
@override @override
String? get selectedRowCountTitleTwo => null; String? get selectedRowCountTitleTwo => null;
@override @override
String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé'; String get selectedRowCountTitleZero => 'Kò sí káyé ti o wọlé';
@override @override
String get showAccountsLabel => 'Fi iyipada mu kọ'; String get showAccountsLabel => 'Fi iyipada mu kọ';
@override @override
String get showMenuTooltip => 'Fi Meniu mu kọ'; String get showMenuTooltip => 'Fi Meniu mu kọ';
@override @override
String get signedInLabel => 'Ọ̀nà'; String get signedInLabel => 'Ọ̀nà';
@override @override
String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount'; String get tabLabelRaw => r'Àwọn tabin $tabIndex lati $tabCount';
@override @override
TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a; TimeOfDayFormat get timeOfDayFormatRaw => TimeOfDayFormat.h_colon_mm_space_a;
@override @override
String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ'; String get timePickerHourModeAnnouncement => 'Tuntun waqtu lọ';
@override @override
String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti'; String get timePickerMinuteModeAnnouncement => 'Tuntun daɗi minti';
@override @override
String get viewLicensesButtonLabel => 'WO NIKI'; String get viewLicensesButtonLabel => 'WO NIKI';
@override @override
List<String> get narrowWeekdays => const <String>['L', 'L', 'A', 'O', '', '', '']; List<String> get narrowWeekdays => const <String>['L', 'L', 'A', 'O', '', '', ''];
@override @override
int get firstDayOfWeekIndex => 0; int get firstDayOfWeekIndex => 0;
static const LocalizationsDelegate<MaterialLocalizations> delegate = static const LocalizationsDelegate<MaterialLocalizations> delegate =
_YoMaterialLocalizationsDelegate(); _YoMaterialLocalizationsDelegate();
@override @override
String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà'; String get calendarModeButtonLabel => 'Tọ́rọ̀ kálẹ̀ndà';
@override @override
String get dateHelpText => 'mm/dd/yyyy'; String get dateHelpText => 'mm/dd/yyyy';
@override @override
String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́'; String get dateInputLabel => 'Firanṣẹ̀ Ọjọ́';
@override @override
String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́'; String get dateOutOfRangeLabel => 'Nínú iwọ̀ lọ́wọ́';
@override @override
String get datePickerHelpText => 'WÁSÍ'; String get datePickerHelpText => 'WÁSÍ';
@override @override
String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà'; String get dateRangeEndDateSemanticLabelRaw => r'Ọjọ́ tuntun to ṣà';
@override @override
String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà'; String get dateRangeEndLabel => 'Ọjọ́ tuntun to ṣà';
@override @override
String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ'; String get dateRangePickerHelpText => 'WÁSÍ ÌGBÀ';
@override @override
String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá'; String get dateRangeStartDateSemanticLabelRaw => 'Ọjọ́ tuntun ti dá';
@override @override
String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá'; String get dateRangeStartLabel => 'Ọjọ́ tuntun ti dá';
@override @override
String get dateSeparator => '/'; String get dateSeparator => '/';
@override @override
String get dialModeButtonLabel => 'Tọ́rọ̀ wakati'; String get dialModeButtonLabel => 'Tọ́rọ̀ wakati';
@override @override
String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́'; String get inputDateModeButtonLabel => 'Tọ́rọ̀ firanṣẹ̀ ọjọ́';
@override @override
String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́'; String get inputTimeModeButtonLabel => 'Tọ́rọ̀ wakati bayi lọ́wọ́';
@override @override
String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin'; String get invalidDateFormatLabel => 'Akọ́kọ́tọ́ tó jẹ́kúnrin';
@override @override
String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé'; String get invalidDateRangeLabel => 'Àmì jẹ́ káàkiri lẹ́yìn ilé';
@override @override
String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí'; String get invalidTimeLabel => 'Akọ́kọ́tọ́ àkójọ ìwádìí';
@override @override
String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí'; String get licensesPackageDetailTextOther => r'$licenseCount àwọn níkí';
@override @override
String get saveButtonLabel => 'TÙN DÁRA'; String get saveButtonLabel => 'TÙN DÁRA';
@override @override
String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà'; String get selectYearSemanticsLabel => 'Fọ́ọ̀ shẹ́kàrà';
@override @override
String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ'; String get timePickerDialHelpText => 'WÁSÍ WÁKÀTÌ';
@override @override
String get timePickerHourLabel => 'Wákàtì àṣà'; String get timePickerHourLabel => 'Wákàtì àṣà';
@override @override
String get timePickerInputHelpText => 'Shìgárà wákàtì'; String get timePickerInputHelpText => 'Shìgárà wákàtì';
@override @override
String get timePickerMinuteLabel => 'Mìntì'; String get timePickerMinuteLabel => 'Mìntì';
@override @override
String get unspecifiedDate => 'Ọjọ̀kúnrin'; String get unspecifiedDate => 'Ọjọ̀kúnrin';
@override @override
String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀'; String get unspecifiedDateRange => 'Ọjọ̀kúnrin àdáyọ̀';
@override @override
String get keyboardKeyAlt => 'Alt'; String get keyboardKeyAlt => 'Alt';
@override @override
String get keyboardKeyAltGraph => 'AltGraph'; String get keyboardKeyAltGraph => 'AltGraph';
@override @override
String get keyboardKeyBackspace => 'Báckspàcè'; String get keyboardKeyBackspace => 'Báckspàcè';
@override @override
String get keyboardKeyCapsLock => 'Caps Lock'; String get keyboardKeyCapsLock => 'Caps Lock';
@override @override
String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké'; String get keyboardKeyChannelDown => 'Báyàkàmmàlàsàké';
@override @override
String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké'; String get keyboardKeyChannelUp => 'Yíkàmmàlàsàké';
@override @override
String get keyboardKeyControl => 'Kọ́ntírọ̀l'; String get keyboardKeyControl => 'Kọ́ntírọ̀l';
@override @override
String get keyboardKeyDelete => 'Shápè'; String get keyboardKeyDelete => 'Shápè';
@override @override
String get keyboardKeyEject => 'Èjẹ̀tì'; String get keyboardKeyEject => 'Èjẹ̀tì';
@override @override
String get keyboardKeyEnd => 'Tàbí'; String get keyboardKeyEnd => 'Tàbí';
@override @override
String get keyboardKeyEscape => 'Tòkè'; String get keyboardKeyEscape => 'Tòkè';
@override @override
String get keyboardKeyFn => 'Fn'; String get keyboardKeyFn => 'Fn';
@override @override
String get keyboardKeyHome => 'Ile'; String get keyboardKeyHome => 'Ile';
@override @override
String get keyboardKeyInsert => 'Fi sori'; String get keyboardKeyInsert => 'Fi sori';
@override @override
String get keyboardKeyMeta => 'Meta'; String get keyboardKeyMeta => 'Meta';
@override @override
String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command'; String get keyboardKeyMetaMacOs => 'Amfani pẹlu Command';
@override @override
String get keyboardKeyMetaWindows => 'Windows'; String get keyboardKeyMetaWindows => 'Windows';
@override @override
String get keyboardKeyNumLock => 'Num Lock'; String get keyboardKeyNumLock => 'Num Lock';
@ -750,50 +751,6 @@ class YoMaterialLocalizations extends GlobalMaterialLocalizations {
@override @override
String get scrimOnTapHintRaw => "Scrip on Tap"; String get scrimOnTapHintRaw => "Scrip on Tap";
@override
// TODO: implement collapsedHint
String get collapsedHint => "collapsedHint";
@override
// TODO: implement expandedHint
String get expandedHint => "expandedHint";
@override
// TODO: implement expansionTileCollapsedHint
String get expansionTileCollapsedHint => "expansionTileCollapsedHint";
@override
// TODO: implement expansionTileCollapsedTapHint
String get expansionTileCollapsedTapHint => "expansionTileCollapsedTapHint";
@override
// TODO: implement expansionTileExpandedHint
String get expansionTileExpandedHint => "expansionTileExpandedHint";
@override
// TODO: implement expansionTileExpandedTapHint
String get expansionTileExpandedTapHint => "expansionTileExpandedTapHint";
@override
// TODO: implement scanTextButtonLabel
String get scanTextButtonLabel => "scanTextButtonLabel";
@override
// TODO: implement lookUpButtonLabel
String get lookUpButtonLabel => "lookUpButtonLabel";
@override
// TODO: implement menuDismissLabel
String get menuDismissLabel => "menuDismissLabel";
@override
// TODO: implement searchWebButtonLabel
String get searchWebButtonLabel => "searchWebButtonLabel";
@override
// TODO: implement shareButtonLabel
String get shareButtonLabel => "shareButtonLabel";
} }
/// Cupertino Support /// Cupertino Support
@ -864,158 +821,138 @@ class YoCupertinoLocalizations extends GlobalCupertinoLocalizations {
required super.singleDigitSecondFormat, required super.singleDigitSecondFormat,
}); });
@override @override
String get alertDialogLabel => 'Àdàkárò'; String get alertDialogLabel => 'Àdàkárò';
@override @override
String get anteMeridiemAbbreviation => 'AM'; String get anteMeridiemAbbreviation => 'AM';
@override @override
String get copyButtonLabel => 'Kòpy'; String get copyButtonLabel => 'Kòpy';
@override @override
String get cutButtonLabel => 'Kọ́t'; String get cutButtonLabel => 'Kọ́t';
@override @override
String get datePickerDateOrderString => 'mdy'; String get datePickerDateOrderString => 'mdy';
@override @override
String get datePickerDateTimeOrderString => 'date_time_dayPeriod'; String get datePickerDateTimeOrderString => 'date_time_dayPeriod';
@override @override
String? get datePickerHourSemanticsLabelFew => null; String? get datePickerHourSemanticsLabelFew => null;
@override @override
String? get datePickerHourSemanticsLabelMany => null; String? get datePickerHourSemanticsLabelMany => null;
@override @override
String? get datePickerHourSemanticsLabelOne => r"$hour o'clock"; String? get datePickerHourSemanticsLabelOne => r"$hour o'clock";
@override @override
String get datePickerHourSemanticsLabelOther => r"$hour o'clock"; String get datePickerHourSemanticsLabelOther => r"$hour o'clock";
@override @override
String? get datePickerHourSemanticsLabelTwo => null; String? get datePickerHourSemanticsLabelTwo => null;
@override @override
String? get datePickerHourSemanticsLabelZero => null; String? get datePickerHourSemanticsLabelZero => null;
@override @override
String? get datePickerMinuteSemanticsLabelFew => null; String? get datePickerMinuteSemanticsLabelFew => null;
@override @override
String? get datePickerMinuteSemanticsLabelMany => null; String? get datePickerMinuteSemanticsLabelMany => null;
@override @override
String? get datePickerMinuteSemanticsLabelOne => '1 wakati'; String? get datePickerMinuteSemanticsLabelOne => '1 wakati';
@override @override
String get datePickerMinuteSemanticsLabelOther => r'$minute wakati'; String get datePickerMinuteSemanticsLabelOther => r'$minute wakati';
@override @override
String? get datePickerMinuteSemanticsLabelTwo => null; String? get datePickerMinuteSemanticsLabelTwo => null;
@override @override
String? get datePickerMinuteSemanticsLabelZero => null; String? get datePickerMinuteSemanticsLabelZero => null;
@override @override
String get modalBarrierDismissLabel => 'Búta'; String get modalBarrierDismissLabel => 'Búta';
@override @override
String get pasteButtonLabel => 'Tẹ́ẹ́'; String get pasteButtonLabel => 'Tẹ́ẹ́';
@override @override
String get postMeridiemAbbreviation => 'PM'; String get postMeridiemAbbreviation => 'PM';
@override @override
String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà'; String get searchTextFieldPlaceholderLabel => 'Wúró àtúntà';
@override @override
String get selectAllButtonLabel => 'Fírànsé gbógbo'; String get selectAllButtonLabel => 'Fírànsé gbógbo';
@override @override
String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount'; String get tabSemanticsLabelRaw => r'Tab $tabIndex nínú $tabCount';
@override @override
String? get timerPickerHourLabelFew => null; String? get timerPickerHourLabelFew => null;
@override @override
String? get timerPickerHourLabelMany => null; String? get timerPickerHourLabelMany => null;
@override @override
String? get timerPickerHourLabelOne => 'òǹdì'; String? get timerPickerHourLabelOne => 'òǹdì';
@override @override
String get timerPickerHourLabelOther => 'òǹdì'; String get timerPickerHourLabelOther => 'òǹdì';
@override @override
String? get timerPickerHourLabelTwo => null; String? get timerPickerHourLabelTwo => null;
@override @override
String? get timerPickerHourLabelZero => null; String? get timerPickerHourLabelZero => null;
@override @override
String? get timerPickerMinuteLabelFew => null; String? get timerPickerMinuteLabelFew => null;
@override @override
String? get timerPickerMinuteLabelMany => null; String? get timerPickerMinuteLabelMany => null;
@override @override
String? get timerPickerMinuteLabelOne => 'wakati.'; String? get timerPickerMinuteLabelOne => 'wakati.';
@override @override
String get timerPickerMinuteLabelOther => 'wakati.'; String get timerPickerMinuteLabelOther => 'wakati.';
@override @override
String? get timerPickerMinuteLabelTwo => null; String? get timerPickerMinuteLabelTwo => null;
@override @override
String? get timerPickerMinuteLabelZero => null; String? get timerPickerMinuteLabelZero => null;
@override @override
String? get timerPickerSecondLabelFew => null; String? get timerPickerSecondLabelFew => null;
@override @override
String? get timerPickerSecondLabelMany => null; String? get timerPickerSecondLabelMany => null;
@override @override
String? get timerPickerSecondLabelOne => 'dákìkà.'; String? get timerPickerSecondLabelOne => 'dákìkà.';
@override @override
String get timerPickerSecondLabelOther => 'dákìkà.'; String get timerPickerSecondLabelOther => 'dákìkà.';
@override @override
String? get timerPickerSecondLabelTwo => null; String? get timerPickerSecondLabelTwo => null;
@override @override
String? get timerPickerSecondLabelZero => null; String? get timerPickerSecondLabelZero => null;
@override @override
String get todayLabel => 'Oyọ'; String get todayLabel => 'Oyọ';
static const LocalizationsDelegate<CupertinoLocalizations> delegate = static const LocalizationsDelegate<CupertinoLocalizations> delegate =
_YoCupertinoLocalizationsDelegate(); _YoCupertinoLocalizationsDelegate();
@override @override
String get noSpellCheckReplacementsLabel => ""; String get noSpellCheckReplacementsLabel => "";
@override
// TODO: implement clearButtonLabel
String get clearButtonLabel => "clearButtonLabel";
@override
// TODO: implement lookUpButtonLabel
String get lookUpButtonLabel => "lookUpButtonLabel";
@override
// TODO: implement menuDismissLabel
String get menuDismissLabel => "menuDismissLabel";
@override
// TODO: implement searchWebButtonLabel
String get searchWebButtonLabel => "searchWebButtonLabel";
@override
// TODO: implement shareButtonLabel
String get shareButtonLabel => "shareButtonLabel";
} }

View file

@ -1,5 +1,3 @@
import 'dart:io';
import 'package:cake_wallet/core/auth_service.dart'; import 'package:cake_wallet/core/auth_service.dart';
import 'package:cake_wallet/entities/pin_code_required_duration.dart'; import 'package:cake_wallet/entities/pin_code_required_duration.dart';
import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/routes.dart';
@ -60,7 +58,7 @@ class SecurityBackupPage extends BasePage {
.shouldRequireTOTP2FAForAllSecurityAndBackupSettings, .shouldRequireTOTP2FAForAllSecurityAndBackupSettings,
), ),
), ),
if (DeviceInfo.instance.isMobile || Platform.isMacOS || Platform.isLinux) if (DeviceInfo.instance.isMobile)
Observer(builder: (_) { Observer(builder: (_) {
return SettingsSwitcherCell( return SettingsSwitcherCell(
title: S.current.settings_allow_biometrical_authentication, title: S.current.settings_allow_biometrical_authentication,

View file

@ -146,7 +146,7 @@ class ConnectScreen extends StatelessWidget {
ElevatedButton( ElevatedButton(
onPressed: connect, onPressed: connect,
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
// primary: Colors.blue, primary: Colors.blue,
padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30), borderRadius: BorderRadius.circular(30),
@ -211,7 +211,7 @@ class DisconnectScreen extends StatelessWidget {
ElevatedButton( ElevatedButton(
onPressed: disconnect, onPressed: disconnect,
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
// primary: Colors.red, primary: Colors.red,
padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15), padding: EdgeInsets.symmetric(horizontal: 40, vertical: 15),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30), borderRadius: BorderRadius.circular(30),

View file

@ -1,14 +1,8 @@
import 'package:cake_wallet/core/seed_validator.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class Annotation extends Comparable<Annotation> {
extension Compare<T> on Comparable<T> {
bool operator <=(T other) => compareTo(other) <= 0;
bool operator >=(T other) => compareTo(other) >= 0;
bool operator <(T other) => compareTo(other) < 0;
bool operator >(T other) => compareTo(other) > 0;
}
class Annotation implements Comparable<Annotation> {
Annotation({required this.range, required this.style}); Annotation({required this.range, required this.style});
final TextRange range; final TextRange range;
@ -18,7 +12,7 @@ class Annotation implements Comparable<Annotation> {
int compareTo(Annotation other) => range.start.compareTo(other.range.start); int compareTo(Annotation other) => range.start.compareTo(other.range.start);
} }
class TextAnnotation implements Comparable<TextAnnotation> { class TextAnnotation extends Comparable<TextAnnotation> {
TextAnnotation({required this.text, required this.style}); TextAnnotation({required this.text, required this.style});
final TextStyle style; final TextStyle style;

View file

@ -1,6 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_local_authentication/flutter_local_authentication.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:mobx/mobx.dart'; import 'package:mobx/mobx.dart';
import 'package:cake_wallet/view_model/auth_state.dart'; import 'package:cake_wallet/view_model/auth_state.dart';
@ -106,14 +105,16 @@ abstract class AuthViewModelBase with Store {
@action @action
Future<void> biometricAuth() async { Future<void> biometricAuth() async {
final _flutterLocalAuthenticationPlugin = FlutterLocalAuthentication();
try { try {
final authenticated = await _flutterLocalAuthenticationPlugin.authenticate(); final canBiometricAuth = await _biometricAuth.canCheckBiometrics();
if (!authenticated) {
throw Exception('Biometric authentication failed'); if (canBiometricAuth) {
final isAuthenticated = await _biometricAuth.isAuthenticated();
if (isAuthenticated) {
state = ExecutedSuccessfullyState();
}
} }
state = ExecutedSuccessfullyState();
} catch (e) { } catch (e) {
state = FailureState(e.toString()); state = FailureState(e.toString());
} }

View file

@ -33,8 +33,8 @@ dependencies:
dio: ^4.0.6 dio: ^4.0.6
hive: ^2.2.3 hive: ^2.2.3
hive_flutter: ^1.1.0 hive_flutter: ^1.1.0
local_auth: ^2.1.0
local_auth_android: 1.0.21 local_auth_android: 1.0.21
flutter_local_authentication: ^1.2.0
package_info: ^2.0.0 package_info: ^2.0.0
#package_info_plus: ^1.4.2 #package_info_plus: ^1.4.2
devicelocale: devicelocale:

View file

@ -4,4 +4,4 @@ version: 0.0.0
publish_to: none publish_to: none
environment: environment:
sdk: ">=3.1.0 <4.0.0" sdk: ">=2.17.5 <3.0.0"