diff --git a/wallet/ios/Flutter/AppFrameworkInfo.plist b/wallet/ios/Flutter/AppFrameworkInfo.plist index 9625e105df..7c56964006 100644 --- a/wallet/ios/Flutter/AppFrameworkInfo.plist +++ b/wallet/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/wallet/ios/Runner.xcodeproj/project.pbxproj b/wallet/ios/Runner.xcodeproj/project.pbxproj index b2f6f33c71..e2447f6880 100644 --- a/wallet/ios/Runner.xcodeproj/project.pbxproj +++ b/wallet/ios/Runner.xcodeproj/project.pbxproj @@ -189,7 +189,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -435,7 +435,7 @@ ENABLE_BITCODE = NO; GOOGLE_SERVICE_PATH = ""; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -574,7 +574,7 @@ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GOOGLE_SERVICE_PATH = ""; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -606,7 +606,7 @@ ENABLE_BITCODE = NO; GOOGLE_SERVICE_PATH = ""; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -692,7 +692,7 @@ ENABLE_BITCODE = NO; GOOGLE_SERVICE_PATH = "${SRCROOT}/Runner/Firebase/prod/GoogleService-Info.plist"; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -776,7 +776,7 @@ ENABLE_BITCODE = NO; GOOGLE_SERVICE_PATH = "${SRCROOT}/Runner/Firebase/prod/GoogleService-Info.plist"; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -862,7 +862,7 @@ ENABLE_BITCODE = NO; GOOGLE_SERVICE_PATH = "${SRCROOT}/Runner/Firebase/development/GoogleService-Info.plist"; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -946,7 +946,7 @@ ENABLE_BITCODE = NO; GOOGLE_SERVICE_PATH = "${SRCROOT}/Runner/Firebase/development/GoogleService-Info.plist"; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/wallet/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/wallet/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 4ba725f4c3..498aa0d19e 100644 --- a/wallet/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/wallet/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ main() async { await FlutterDownloader.initialize(ignoreSsl: true); await EasyLocalization.ensureInitialized(); await Firebase.initializeApp(); - await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(!kDebugMode); + await FirebaseCrashlytics.instance + .setCrashlyticsCollectionEnabled(!kDebugMode); PlatformDispatcher.instance.onError = (error, stack) { FirebaseCrashlytics.instance.recordError(error, stack, fatal: true); @@ -53,7 +55,8 @@ Future main() async { FirebaseAnalytics.instance.logEvent(name: event.getEventName()); }, onLogError: (exception, {bool fatal = false, StackTrace? stack}) { - FirebaseCrashlytics.instance.recordError(exception, stack, fatal: fatal); + FirebaseCrashlytics.instance + .recordError(exception, stack, fatal: fatal); }, onLogMessage: logMessage, ); @@ -86,14 +89,17 @@ Future main() async { } Future initializeAppCheck() async { - await FirebaseAppCheck.instance.activate(webRecaptchaSiteKey: 'recaptcha-v3-site-key'); + await FirebaseAppCheck.instance.activate( + webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'), + ); // FirebaseAppCheck when enforced would block incoming requests from Android and iOS in debug mode. // This kDebugMode check gets a android debug token from FirebaseAppCheck which can then be added on the Firebase console // iOS debug token from FirebaseAppCheck automatically get without method channel when run on debug mode which can then be added on the Firebase console // So that the application can be allowed to access to Firebase AppCheck token in debug mode. if (kDebugMode && Platform.isAndroid) { try { - const MethodChannel methodChannel = MethodChannel(kGetFirebaseAppCheckTokenMethodChannelKey); + const MethodChannel methodChannel = + MethodChannel(kGetFirebaseAppCheckTokenMethodChannelKey); await methodChannel.invokeMethod(kGetFirebaseAppCheckDebugTokenKey); } catch (e) { e.toString().show(); @@ -105,6 +111,7 @@ class MyHttpOverrides extends HttpOverrides { @override HttpClient createHttpClient(SecurityContext? context) { return super.createHttpClient(context) - ..badCertificateCallback = (X509Certificate cert, String host, int port) => true; + ..badCertificateCallback = + (X509Certificate cert, String host, int port) => true; } } diff --git a/wallet/lib/pages/image_picker.dart b/wallet/lib/pages/image_picker.dart index bec03ce078..21ba318eb7 100644 --- a/wallet/lib/pages/image_picker.dart +++ b/wallet/lib/pages/image_picker.dart @@ -10,8 +10,14 @@ import 'package:pylons_wallet/pages/detailed_asset_view/widgets/create_trade_bot import 'package:pylons_wallet/services/repository/repository.dart'; import 'package:pylons_wallet/utils/constants.dart'; -Future pickImageFromGallery(double maxHeight, double maxWidth, int imageQuality, BuildContext context) async { - final pickImageEither = await GetIt.I.get().pickImageFromGallery(PickImageModel(maxHeight: maxHeight, maxWidth: maxWidth, imageQuality: imageQuality, imageSource: ImageSource.gallery)); +Future pickImageFromGallery(double maxHeight, double maxWidth, + int imageQuality, BuildContext context) async { + final pickImageEither = await GetIt.I.get().pickImageFromGallery( + PickImageModel( + maxHeight: maxHeight, + maxWidth: maxWidth, + imageQuality: imageQuality, + imageSource: ImageSource.gallery)); if (pickImageEither.isLeft()) { // ignore: use_build_context_synchronously @@ -36,7 +42,6 @@ Future pickImageFromGallery(double maxHeight, double maxWidth, int imageQ Future cropImage(String path) async { return ImageCropper().cropImage( sourcePath: path, - aspectRatioPresets: [CropAspectRatioPreset.square, CropAspectRatioPreset.ratio3x2, CropAspectRatioPreset.original, CropAspectRatioPreset.ratio4x3, CropAspectRatioPreset.ratio16x9], uiSettings: [ AndroidUiSettings( toolbarTitle: kStripeMerchantDisplayName, diff --git a/wallet/lib/pages/stripe_screen.dart b/wallet/lib/pages/stripe_screen.dart index b104e69f3f..e5d8e7426b 100644 --- a/wallet/lib/pages/stripe_screen.dart +++ b/wallet/lib/pages/stripe_screen.dart @@ -48,10 +48,12 @@ class _StripeScreenState extends State { Future loadLoginLink() async { final loading = Loading()..showLoading(); - final account_response = await GetIt.I.get().handleStripeAccountLink(); + final account_response = + await GetIt.I.get().handleStripeAccountLink(); loading.dismiss(); account_response.fold((fail) => {fail.message.show()}, (accountlink) { - _controller.loadUrl(urlRequest: URLRequest(url: Uri.parse(accountlink))); + _controller.loadUrl( + urlRequest: URLRequest(url: WebUri.uri(Uri.parse(accountlink)))); }); return true; @@ -73,7 +75,8 @@ class _StripeScreenState extends State { top: 40.h, bottom: 0, child: InAppWebView( - initialUrlRequest: URLRequest(url: Uri.parse(widget.url)), + initialUrlRequest: + URLRequest(url: WebUri.uri(Uri.parse(widget.url))), onWebViewCreated: (InAppWebViewController webViewController) { _controller = webViewController; }, @@ -88,7 +91,8 @@ class _StripeScreenState extends State { getAccountLinkAndRedirect(); return NavigationActionPolicy.CANCEL; } - if (urlInString.contains(baseEnv.baseStripeCallbackRefreshUrl)) { + if (urlInString + .contains(baseEnv.baseStripeCallbackRefreshUrl)) { getAccountLinkAndRedirect(); return NavigationActionPolicy.CANCEL; } @@ -103,9 +107,11 @@ class _StripeScreenState extends State { } return NavigationActionPolicy.ALLOW; }, - androidOnPermissionRequest: - (InAppWebViewController controller, String origin, List resources) async { - return PermissionRequestResponse(resources: resources, action: PermissionRequestResponseAction.GRANT); + androidOnPermissionRequest: (InAppWebViewController controller, + String origin, List resources) async { + return PermissionRequestResponse( + resources: resources, + action: PermissionRequestResponseAction.GRANT); }, initialOptions: InAppWebViewGroupOptions( crossPlatform: InAppWebViewOptions( @@ -148,10 +154,12 @@ class _StripeScreenState extends State { Future getAccountLinkAndRedirect() async { final loading = Loading()..showLoading(); - final account_response = await GetIt.I.get().handleStripeAccountLink(); + final account_response = + await GetIt.I.get().handleStripeAccountLink(); loading.dismiss(); account_response.fold((fail) => {fail.message.show()}, (accountlink) { - _controller.loadUrl(urlRequest: URLRequest(url: Uri.parse(accountlink))); + _controller.loadUrl( + urlRequest: URLRequest(url: WebUri.uri(Uri.parse(accountlink)))); }); } } diff --git a/wallet/pubspec.yaml b/wallet/pubspec.yaml index 9d96950027..1173c6a9fc 100644 --- a/wallet/pubspec.yaml +++ b/wallet/pubspec.yaml @@ -11,41 +11,41 @@ dependencies: path: pkgs/pdf_viewer-master alan: path: pkgs/alan - audio_video_progress_bar: ^1.0.0 + audio_video_progress_bar: ^2.0.3 auto_size_text: ^3.0.0 backdrop: ^0.9.0 bottom_drawer: ^0.0.3 cached_network_image: - cloud_firestore: ^4.3.0 + cloud_firestore: ^5.0.2 cupertino_icons: ^1.0.3 dartz: ^0.10.1 decimal: ^2.3.0 - detectable_text_field: ^2.0.3 + detectable_text_field: ^3.0.2 dotted_border: ^2.0.0+2 easy_localization: ^3.0.1 equatable: ^2.0.5 expandable: ^5.0.1 firebase_analytics: - firebase_app_check: ^0.1.1+7 - firebase_core: ^2.4.0 - firebase_crashlytics: ^3.0.8 - firebase_dynamic_links: ^5.0.10 - firebase_messaging: ^14.2.0 - firebase_remote_config: ^3.0.8 + firebase_app_check: ^0.3.0+2 + firebase_core: ^3.1.1 + firebase_crashlytics: ^4.0.2 + firebase_dynamic_links: ^6.0.2 + firebase_messaging: ^15.0.2 + firebase_remote_config: ^5.0.2 fixnum: ^1.0.0 floor: ^1.3.0 flutter: sdk: flutter flutter_dotenv: ^5.0.2 flutter_downloader: ^1.9.1 - flutter_inappwebview: ^5.7.2+2 - flutter_local_notifications: ^13.0.0 + flutter_inappwebview: ^6.0.0 + flutter_local_notifications: ^17.2.1 flutter_localizations: sdk: flutter flutter_mobx: ^2.0.1 flutter_screenutil: ^5.5.4 flutter_secure_storage: ^8.0.0 - flutter_staggered_grid_view: ^0.6.2 + flutter_staggered_grid_view: ^0.7.0 flutter_sticky_header: ^0.6.0 flutter_stripe: flutter_svg: @@ -56,14 +56,14 @@ dependencies: focus_detector: ^2.0.1 get_it: ^7.2.0 google_sign_in: ^6.0.2 - googleapis: ^11.1.0 + googleapis: ^13.2.0 grpc: ^3.0.2 - home_widget: ^0.2.0+1 + home_widget: ^0.6.0 http: icloud_storage: ^2.0.0 image: ^4.0.12 image_cropper: - image_picker: ^0.8.5+3 + image_picker: ^1.1.2 in_app_purchase: ^3.0.7 internet_connection_checker: ^1.0.0+1 intl: @@ -71,11 +71,11 @@ dependencies: just_the_tooltip: 0.0.12 local_auth: ^2.1.2 mobx: ^2.0.3 - modal_bottom_sheet: ^2.0.0 + modal_bottom_sheet: ^3.0.0 model_viewer_plus: path: pkgs/model_viewer_plus.dart-master path_provider: ^2.0.11 - permission_handler: ^10.0.1 + permission_handler: ^11.3.1 provider: ^6.0.3 qr_flutter: ^4.0.0