diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 3dd6b2d..690115d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -5,9 +5,8 @@ PODS: - AppAuth/Core (1.6.2) - AppAuth/ExternalUserAgent (1.6.2): - AppAuth/Core - - credit_card_scanner (0.0.1): + - device_info_plus (0.0.1): - Flutter - - GoogleMLKit/TextRecognition - Firebase/CoreOnly (10.12.0): - FirebaseCore (= 10.12.0) - Firebase/Messaging (10.12.0): @@ -24,9 +23,9 @@ PODS: - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Logger (~> 7.8) - - FirebaseCoreInternal (10.13.0): + - FirebaseCoreInternal (10.15.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseInstallations (10.13.0): + - FirebaseInstallations (10.15.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) @@ -45,6 +44,9 @@ PODS: - Flutter - flutter_secure_storage (6.0.0): - Flutter + - flutter_tesseract_ocr (0.3.4): + - Flutter + - SwiftyTesseract - FMDB (2.7.5): - FMDB/standard (= 2.7.5) - FMDB/standard (2.7.5) @@ -53,6 +55,13 @@ PODS: - google_maps_flutter_ios (0.0.1): - Flutter - GoogleMaps (< 8.0) + - google_mlkit_commons (0.5.0): + - Flutter + - MLKitVision + - google_mlkit_text_recognition (0.10.0): + - Flutter + - google_mlkit_commons + - GoogleMLKit/TextRecognition (~> 4.0.0) - google_sign_in_ios (0.0.1): - Flutter - GoogleSignIn (~> 6.2) @@ -109,6 +118,8 @@ PODS: - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 3.0, >= 1.5) - GTMSessionFetcher/Core (2.3.0) + - image_picker_ios (0.0.1): + - Flutter - location (0.0.1): - Flutter - MLImage (1.0.0-beta4) @@ -145,21 +156,26 @@ PODS: - sqflite (0.0.3): - Flutter - FMDB (>= 2.7.5) + - SwiftyTesseract (3.1.3) - url_launcher_ios (0.0.1): - Flutter - webview_flutter_wkwebview (0.0.1): - Flutter DEPENDENCIES: - - credit_card_scanner (from `.symlinks/plugins/credit_card_scanner/ios`) + - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - Flutter (from `Flutter`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) + - flutter_tesseract_ocr (from `.symlinks/plugins/flutter_tesseract_ocr/ios`) - geolocator_apple (from `.symlinks/plugins/geolocator_apple/ios`) - google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`) + - google_mlkit_commons (from `.symlinks/plugins/google_mlkit_commons/ios`) + - google_mlkit_text_recognition (from `.symlinks/plugins/google_mlkit_text_recognition/ios`) - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/ios`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - location (from `.symlinks/plugins/location/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - sqflite (from `.symlinks/plugins/sqflite/ios`) @@ -191,10 +207,11 @@ SPEC REPOS: - MLKitVision - nanopb - PromisesObjC + - SwiftyTesseract EXTERNAL SOURCES: - credit_card_scanner: - :path: ".symlinks/plugins/credit_card_scanner/ios" + device_info_plus: + :path: ".symlinks/plugins/device_info_plus/ios" firebase_core: :path: ".symlinks/plugins/firebase_core/ios" firebase_messaging: @@ -205,12 +222,20 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_local_notifications/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" + flutter_tesseract_ocr: + :path: ".symlinks/plugins/flutter_tesseract_ocr/ios" geolocator_apple: :path: ".symlinks/plugins/geolocator_apple/ios" google_maps_flutter_ios: :path: ".symlinks/plugins/google_maps_flutter_ios/ios" + google_mlkit_commons: + :path: ".symlinks/plugins/google_mlkit_commons/ios" + google_mlkit_text_recognition: + :path: ".symlinks/plugins/google_mlkit_text_recognition/ios" google_sign_in_ios: :path: ".symlinks/plugins/google_sign_in_ios/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" location: :path: ".symlinks/plugins/location/ios" path_provider_foundation: @@ -224,20 +249,23 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 - credit_card_scanner: 2c3c58d821ec493cb42cf7c782dc461f516c212b + device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 Firebase: 07150e75d142fb9399f6777fa56a187b17f833a0 firebase_core: 4a3246a02f828a01c74a2c26427037786d90f17f firebase_messaging: 0b4f7997f491343b90d9300af54fe55c72135833 FirebaseCore: f86a1394906b97ac445ae49c92552a9425831bed - FirebaseCoreInternal: b342e37cd4f5b4454ec34308f073420e7920858e - FirebaseInstallations: b28af1b9f997f1a799efe818c94695a3728c352f + FirebaseCoreInternal: 2f4bee5ed00301b5e56da0849268797a2dd31fb4 + FirebaseInstallations: cae95cab0f965ce05b805189de1d4c70b11c76fb FirebaseMessaging: bb2c4f6422a753038fe137d90ae7c1af57251316 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be + flutter_tesseract_ocr: c01971df9e5817a08563298b8ce571fa10e164f1 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a geolocator_apple: cc556e6844d508c95df1e87e3ea6fa4e58c50401 google_maps_flutter_ios: abdac20d6ce8931f6ebc5f46616df241bfaa2cfd + google_mlkit_commons: 9765447bd869c5d4f750dbd01475c8c42fd47aec + google_mlkit_text_recognition: 6e8ae87c6ff2f9f06bc60a8d4ac88756319ce9af google_sign_in_ios: 1256ff9d941db546373826966720b0c24804bcdd GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2 GoogleMaps: 032f676450ba0779bd8ce16840690915f84e57ac @@ -248,6 +276,7 @@ SPEC CHECKSUMS: GoogleUtilitiesComponents: 679b2c881db3b615a2777504623df6122dd20afe GTMAppAuth: 0ff230db599948a9ad7470ca667337803b3fc4dd GTMSessionFetcher: 3a63d75eecd6aa32c2fc79f578064e1214dfdec2 + image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 location: d5cf8598915965547c3f36761ae9cc4f4e87d22e MLImage: 7bb7c4264164ade9bf64f679b40fb29c8f33ee9b MLKitCommon: c1b791c3e667091918d91bda4bba69a91011e390 @@ -258,9 +287,10 @@ SPEC CHECKSUMS: path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a + SwiftyTesseract: 1f3d96668ae92dc2208d9842c8a59bea9fad2cbb url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 webview_flutter_wkwebview: 2e2d318f21a5e036e2c3f26171342e95908bd60a -PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 +PODFILE CHECKSUM: 5dc3f53762f32b09fb6dbb6df4a961ce126c0d90 -COCOAPODS: 1.12.1 +COCOAPODS: 1.13.0 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 182c32c..85220c7 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; C690B4752A80554500E1D66E /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C690B4742A80554500E1D66E /* GoogleService-Info.plist */; }; + C69EC94E2AE7E19A00DD49ED /* tessdata in Resources */ = {isa = PBXBuildFile; fileRef = C69EC94D2AE7E19A00DD49ED /* tessdata */; }; D529E7C8240CCC30BB7358A2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B099132D71B1299FCDFD9C8 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ @@ -66,6 +67,7 @@ 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C690B4742A80554500E1D66E /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; C69588332A8C1F6B00C3AC67 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + C69EC94D2AE7E19A00DD49ED /* tessdata */ = {isa = PBXFileReference; lastKnownFileType = folder; name = tessdata; path = ../../assets/tessdata; sourceTree = ""; }; CAF37DC30C17166B851DBC8C /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; F231BA28015FE2C634809733 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -151,6 +153,7 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, + C69EC94D2AE7E19A00DD49ED /* tessdata */, C690B4742A80554500E1D66E /* GoogleService-Info.plist */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, @@ -220,7 +223,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 331C8080294A63A400263BE5 = { @@ -269,6 +272,7 @@ C690B4752A80554500E1D66E /* GoogleService-Info.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + C69EC94E2AE7E19A00DD49ED /* tessdata in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index e42adcb..87131a0 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ GMSApiKey YOUR_API_KEY + NSPhotoLibraryUsageDescription +Explanation of why your app needs access to the photo library. NSCameraUsageDescription Sefer app requires access to your camera in order to scan QR codes and capture images for uploading. diff --git a/lib/controller/functions/ocr_controller.dart b/lib/controller/functions/ocr_controller.dart index 6630465..60c42c4 100644 --- a/lib/controller/functions/ocr_controller.dart +++ b/lib/controller/functions/ocr_controller.dart @@ -22,6 +22,7 @@ class TextExtractionController extends GetxController { String getTextAsJSON(String text) { final json = { 'text': text, + 'num_lines': text.split('\n').length, }; return jsonEncode(json); @@ -61,7 +62,7 @@ class TextExtractionController extends GetxController { textBlocks.toString(); // Convert the extracted text to JSON. // Print the JSON to the console. - print(textBlocks); + print(jsonText); update(); // print(text); } catch (e) { @@ -72,35 +73,8 @@ class TextExtractionController extends GetxController { } } -// class TesseractController extends GetxController { -// String text = ''; -// bool scanning = false; -// Future extractTextFromImage() async { -// scanning = true; -// update(); - -// // Get the image from the image picker -// final ImagePicker picker = ImagePicker(); -// final XFile? image = await picker.pickImage(source: ImageSource.gallery); - -// // If an image was selected, extract the text from it -// if (image != null) { -// var watch = Stopwatch()..start(); -// text = await TesseractLatest.extractText(image.path); -// scanning = false; -// update(); -// print('Scanning took ${watch.elapsedMilliseconds} ms'); -// } -// } -// } - -// import 'package:get/get.dart'; -// import 'package:flutter/material.dart'; -// import 'package:image_picker/image_picker.dart'; -// import 'package:google_ml_kit/google_ml_kit.dart'; -// -class TextRecognizerController extends GetxController { +class TextMLGoogleRecognizerController extends GetxController { @override void onInit() { scanText(); @@ -121,7 +95,7 @@ class TextRecognizerController extends GetxController { Future scanText() async { // Pick an image from the camera or gallery final XFile? image = - await _imagePicker.pickImage(source: ImageSource.gallery); + await _imagePicker.pickImage(source: ImageSource.camera); // If no image was picked, return if (image == null) { diff --git a/lib/controller/functions/remove_account.dart b/lib/controller/functions/remove_account.dart new file mode 100644 index 0000000..aaeeabf --- /dev/null +++ b/lib/controller/functions/remove_account.dart @@ -0,0 +1,8 @@ +// import 'package:ride/controller/functions/crud.dart'; + +// class RemoveAccount { + +// void removeAccount()async{ +// var res=await CRUD().post(link: link) +// } +// } \ No newline at end of file diff --git a/lib/views/home/Captin/text_scanner.dart b/lib/views/home/Captin/text_scanner.dart index eb102a0..165e1c6 100644 --- a/lib/views/home/Captin/text_scanner.dart +++ b/lib/views/home/Captin/text_scanner.dart @@ -95,8 +95,8 @@ class TextExtractionView extends StatelessWidget { class TextRecognizerWidget extends StatelessWidget { @override Widget build(BuildContext context) { - Get.put(TextRecognizerController()); - return GetBuilder( + Get.put(TextMLGoogleRecognizerController()); + return GetBuilder( builder: (controller) => Scaffold( appBar: AppBar(), body: Center(