This commit is contained in:
Hamza-Ayed
2023-11-01 22:05:35 +03:00
parent c4285cface
commit 8ef5403f75
13 changed files with 449 additions and 156 deletions

View File

@@ -0,0 +1,46 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/main.dart';
import 'package:ride/views/auth/login_page.dart';
import 'package:ride/views/home/home_page.dart';
import '../../models/model/onboarding_model.dart';
class OnboardingController extends GetxController {}
abstract class OnBoardingController extends GetxController {
next();
onPageChanged(int index);
}
class OnBoardingControllerImp extends OnBoardingController {
late PageController pageController;
int currentPage = 0;
@override
next() {
currentPage++;
if (currentPage > onBoardingList.length - 1) {
box.write(BoxName.onBoarding, 'yes');
Get.offAll(LoginPage());
} else {
pageController.animateToPage(currentPage,
duration: const Duration(milliseconds: 900), curve: Curves.easeInOut);
}
}
@override
onPageChanged(int index) {
currentPage = index;
update();
}
@override
void onInit() {
pageController = PageController();
super.onInit();
}
}

View File

@@ -6,10 +6,12 @@ import 'package:flutter_tesseract_ocr/flutter_tesseract_ocr.dart';
import 'package:get/get.dart';
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/credential.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import 'package:path_provider/path_provider.dart' as path_provider;
import 'package:path/path.dart' as path;
import 'package:http/http.dart' as http;
import '../../main.dart';
class CameraClassController extends GetxController {
@@ -32,7 +34,7 @@ class CameraClassController extends GetxController {
update();
cameraController = CameraController(
cameras[0],
ResolutionPreset.max,
ResolutionPreset.medium,
enableAudio: false,
);
await cameraController.initialize();
@@ -57,6 +59,76 @@ class CameraClassController extends GetxController {
}
}
var imgUrl = '';
Future extractCardId() async {
// Construct the path for the image file
final directory = await path_provider.getTemporaryDirectory();
final imagePath =
path.join(directory.path, '${box.read(BoxName.driverID)}.png');
// Capture the image and save it to the specified path
final XFile capturedImage = await cameraController.takePicture();
// Move the captured image to the desired path
await capturedImage.saveTo(imagePath);
await uploadImage(File(capturedImage.path));
extractByAPI(AppLink.server + '/card_image/' + box.read(BoxName.driverID));
}
Future extractByAPI(String imgUrl) async {
var headers = {'apikey': 'K89368168788957'};
var request = http.MultipartRequest(
'POST', Uri.parse('https://api.ocr.space/parse/image'));
request.fields.addAll({
'language': 'ara',
'isOverlayRequired': 'false',
'url': imgUrl,
'iscreatesearchablepdf': 'false',
'issearchablepdfhidetextlayer': 'false'
});
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
} else {
print(response.reasonPhrase);
}
}
Future<String> uploadImage(File imageFile) async {
var request = http.MultipartRequest(
'POST',
Uri.parse(AppLink.uploadImage),
);
// Attach the image file to the request
request.files.add(
await http.MultipartFile.fromPath('image', imageFile.path),
); // Add the headers to the request
request.headers.addAll({
// "Content-Type": "application/x-www-form-urlencoded",
'Authorization':
'Basic ${base64Encode(utf8.encode(AppCredintials.basicAuthCredentials))}',
});
// Add the driverID to the request
request.fields['driverID'] = box.read(BoxName.driverID);
// Send the request
var response = await request.send();
// Read the response
var responseData = await response.stream.toBytes();
var responseString = String.fromCharCodes(responseData);
scannedText = responseString;
update();
// Return the link received from the server
return responseString;
}
Future<void> takePictureAndMLGoogleScan() async {
try {
// Construct the path for the image file

View File

@@ -179,7 +179,15 @@ class MyTranslation extends Translations {
"Type something...": "اكتب شيئا ما...",
"Submit rating": "إرسال التقييم",
"Rate Passenger": "تقييم الراكب",
"Ride Summary": "ملخص الرحلة"
"Ride Summary": "ملخص الرحلة",
"welcome_message": "مرحبا بك في سفر!",
"app_description":
"سفر هو تطبيق تطبيقات مشاركة الركوب الآمن والموثوق ويمكن الوصول إليه.",
"get_to_destination": "اذهب إلى وجهتك بسرعة وسهولة.",
"get_a_ride": "مع سفر، يمكنك الحصول على رحلة إلى وجهتك في دقائق.",
"safe_and_comfortable": "استمتع برحلة آمنة ومريحة.",
"committed_to_safety":
"تلتزم سفر بالسلامة، ويتم فحص جميع قباطننا بعناية وفحص خلفيتهم."
///
// 'Saved Sucssefully':
@@ -363,7 +371,18 @@ class MyTranslation extends Translations {
"Type something...": "Bir şeyler yazın...",
"Submit rating": "Değerlendirmeyi gönder",
"Rate Passenger": "Yolcularınızı değerlendirin",
"Ride Summary": "Seyahat özeti"
"Ride Summary": "Seyahat özeti",
"welcome_message": "Sefer'e hoş geldiniz!",
"app_description":
"Sefer, güvenli, güvenilir ve erişilebilir bir araç paylaşım uygulamasıdır.",
"get_to_destination":
"Hedef noktanıza hızlı ve kolay bir şekilde ulaşın.",
"get_a_ride":
"Sefer ile dakikalar içinde varış noktanıza bir yolculuk alabilirsiniz.",
"safe_and_comfortable":
"Güvenli ve konforlu bir yolculuğun tadını çıkarın.",
"committed_to_safety":
"Sefer, güvenliğe bağlıdır ve tüm kaptanlarımız dikkatle seçilir ve sicil sorgusu yapılır."
},
"en": {
"Choose Language": "Choose Language",