11/1/1
This commit is contained in:
46
lib/controller/auth/onboarding_controller.dart
Normal file
46
lib/controller/auth/onboarding_controller.dart
Normal 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();
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user