5/2/passnew

This commit is contained in:
Hamza-Ayed
2024-05-02 15:01:01 +03:00
parent dd4e3a2e20
commit 4f2ccf6495
86 changed files with 130 additions and 13430 deletions

View File

@@ -1,62 +0,0 @@
import 'dart:convert';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:get/get.dart';
import '../../../constant/box_name.dart';
import '../../../constant/links.dart';
import '../../../main.dart';
import '../../../views/home/Captin/history/history_details_page.dart';
import '../../functions/crud.dart';
class HistoryCaptainController extends GetxController {
bool isloading = false;
Map historyData = {};
Map historyDetailsData = {};
late String orderID;
getOrderId(String orderId) {
orderID = orderId;
update();
}
getHistory() async {
isloading = true;
var res = await CRUD().get(
link: AppLink.getDriverOrder,
payload: {'driver_id': box.read(BoxName.driverID)});
if (res != 'failure') {
historyData = jsonDecode(res);
print(historyData);
isloading = false;
update();
} else {
Get.defaultDialog(
title: 'No ride yet'.tr,
middleText: '',
barrierDismissible: false,
confirm: MyElevatedButton(
title: 'Back'.tr,
onPressed: () {
Get.back();
Get.back();
}));
}
}
getHistoryDetails(String orderId) async {
isloading = true;
var res = await CRUD()
.get(link: AppLink.getRideOrderID, payload: {'id': orderId});
historyDetailsData = jsonDecode(res);
print(historyDetailsData);
isloading = false;
update();
Get.to(() => HistoryDetailsPage());
}
@override
void onInit() {
getHistory();
super.onInit();
}
}

View File

@@ -1,118 +0,0 @@
import 'dart:convert';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart';
import 'package:SEFER/controller/functions/secure_storage.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/auth/captin/verify_email_captain.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
class LoginCaptinController extends GetxController {
final formKey = GlobalKey<FormState>();
TextEditingController emailController = TextEditingController();
TextEditingController phoneController = TextEditingController();
TextEditingController passwordController = TextEditingController();
bool isAgreeTerms = false;
bool isloading = false;
final FlutterSecureStorage _storage = const FlutterSecureStorage();
void changeAgreeTerm() {
isAgreeTerms = !isAgreeTerms;
print(isAgreeTerms);
update();
}
void saveAgreementTerms() {
box.write(BoxName.agreeTerms, 'agreed');
update();
}
void login() async {
isloading = true;
update();
var res = await CRUD().get(link: AppLink.loginCaptin, payload: {
'email': emailController.text,
'phone': phoneController.text,
'password': passwordController.text
});
print(res);
if (res == 'Failure') {
isloading = false;
update();
Get.snackbar('Failure', '', backgroundColor: Colors.red);
} else {
var jsonDecoeded = jsonDecode(res);
// print(jsonDecoeded);
if (jsonDecoeded.isNotEmpty) {
if (jsonDecoeded['status'] == 'success') {
print(jsonDecoeded['data'][0]['verified']);
if (jsonDecoeded['data'][0]['verified'] == '1') {
box.write(BoxName.driverID, jsonDecoeded['data'][0]['id']);
box.write(BoxName.emailDriver, jsonDecoeded['data'][0]['email']);
box.write(
BoxName.nameDriver, jsonDecoeded['data'][0]['first_name']);
box.write(BoxName.phoneDriver, jsonDecoeded['data'][0]['phone']);
SecureStorage()
.saveData(BoxName.passwordDriver, passwordController.text);
Get.offAll(() => HomeCaptain());
isloading = false;
update();
print(box.read(BoxName.driverID).toString());
print(box.read(BoxName.tokenDriver));
await CRUD().post(link: AppLink.addTokensDriver, payload: {
'token': box.read(BoxName.tokenDriver),
'captain_id': box.read(BoxName.driverID).toString()
}).then((value) => print('cccc'));
} else {
isloading = false;
update();
Get.defaultDialog(
title: 'You must Verify email !.'.tr,
middleText: '',
backgroundColor: Colors.yellow[300],
onConfirm: () async {
int randomNumber = Random().nextInt(100000) + 1;
await CRUD().post(link: AppLink.sendVerifyEmail, payload: {
'email': emailController.text,
'token': randomNumber.toString(),
}).then((value) => print(value));
Get.to(() => VerifyEmailCaptainPage());
},
);
}
} else if (jsonDecoeded['status'] == 'Failure') {
Get.snackbar(jsonDecoeded['status'], jsonDecoeded['data'],
backgroundColor: Colors.redAccent);
isloading = false;
update();
}
} else {
print('res is null');
isloading = false;
update();
}
}
}
void loginByBoxData() async {
Get.to(() => HomeCaptain());
await CRUD().post(link: AppLink.addTokensDriver, payload: {
'token': box.read(BoxName.tokenDriver).toString(),
'captain_id': box.read(BoxName.driverID).toString()
});
}
@override
void onInit() async {
super.onInit();
// if (box.read(BoxName.driverID).toString() != null) {
// loginByBoxData();
// }
}
}

View File

@@ -1,103 +0,0 @@
import 'dart:io';
import 'package:get/get.dart';
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';
import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/controller/functions/llama_ai.dart';
class CarRegistrationRecognizerController extends GetxController {
@override
void onInit() {
// scanText();
super.onInit();
}
// The ImagePicker instance
final ImagePicker _imagePicker = ImagePicker();
// The GoogleMlKit TextRecognizer instance
final TextRecognizer _textRecognizer = TextRecognizer();
// The scanned text
String? scannedText;
String? jsonOutput;
final List<Map<String, dynamic>> lines = [];
Map extracted = {};
XFile? image;
CroppedFile? croppedFile;
// Picks an image from the camera or gallery and extracts the text
final List<Map<String, dynamic>> extractedTextWithCoordinates = [];
Future<void> scanText() async {
// Pick an image from the camera or gallery
image = await _imagePicker.pickImage(source: ImageSource.gallery);
update();
// If no image was picked, return
if (image == null) {
return;
}
// Crop the image
croppedFile = await ImageCropper().cropImage(
sourcePath: image!.path,
aspectRatioPresets: [
CropAspectRatioPreset.square,
CropAspectRatioPreset.ratio3x2,
CropAspectRatioPreset.original,
CropAspectRatioPreset.ratio4x3,
CropAspectRatioPreset.ratio16x9
],
uiSettings: [
AndroidUiSettings(
toolbarTitle: 'Cropper'.tr,
toolbarColor: AppColor.blueColor,
toolbarWidgetColor: AppColor.yellowColor,
initAspectRatio: CropAspectRatioPreset.original,
lockAspectRatio: false),
IOSUiSettings(
title: 'Cropper'.tr,
),
],
);
// If no cropped image was obtained, return
if (croppedFile == null) {
return;
}
// Convert the cropped file to an InputImage object
final InputImage inputImage = InputImage.fromFile(File(croppedFile!.path));
// Recognize the text in the image
final RecognizedText recognizedText =
await _textRecognizer.processImage(inputImage);
scannedText = recognizedText.text;
// Extract the scanned text line by line
final List<Map<String, dynamic>> lines = [];
for (var i = 0; i < recognizedText.blocks.length; i++) {
lines.add({
i.toString(): recognizedText.blocks[i].text,
});
}
String result = lines.map((map) => map.values.first.toString()).join(' ');
// print(result.length);
if (result.length > 2200) {
result = result.substring(0, 2200);
}
// print('jsonOutput------------------------------');
// print(result);
Map result2 = await LlamaAi().getCarRegistrationData(result,
'vin,make,made,year,expiration_date,color,owner,registration_date'); //
// Assign the result to the extracted variable
extracted = result2;
print('extracted is ' + extracted.toString());
update();
}
}

View File

@@ -1,197 +0,0 @@
import 'dart:convert';
import 'dart:math';
import 'package:SEFER/controller/auth/captin/login_captin_controller.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart';
import 'package:SEFER/controller/functions/ocr_controller.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/auth/captin/login_captin.dart';
import 'package:SEFER/views/auth/captin/verify_email_captain.dart';
import '../../../views/auth/captin/ai_page.dart';
import '../../../views/auth/captin/car_license_page.dart';
import '../../../views/home/Captin/home_captain/home_captin.dart';
class RegisterCaptainController extends GetxController {
final formKey = GlobalKey<FormState>();
TextEditingController emailController = TextEditingController();
TextEditingController phoneController = TextEditingController();
TextEditingController passwordController = TextEditingController();
TextEditingController verifyCode = TextEditingController();
String birthDate = 'Birth Date'.tr;
String gender = 'Male'.tr;
bool isLoading = false;
late String name;
late String licenseClass;
late String documentNo;
late String address;
late String height;
late String postalCode;
late String sex;
late String stateCode;
late String expireDate;
late String dob;
getBirthDate() {
Get.defaultDialog(
title: 'Select Date'.tr,
content: SizedBox(
width: 300,
child: CalendarDatePicker(
initialDate: DateTime.now().subtract(const Duration(days: 18 * 365)),
firstDate: DateTime.parse('1940-06-01'),
lastDate: DateTime.now().subtract(const Duration(days: 18 * 365)),
onDateChanged: (date) {
// Get the selected date and convert it to a DateTime object
DateTime dateTime = date;
// Call the getOrders() function from the controller
birthDate = dateTime.toString().split(' ')[0];
update();
Get.back();
},
// onDateChanged: (DateTime value) {},
),
),
);
}
void changeGender(String value) {
gender = value;
update();
}
sendVerifications() async {
var res = await CRUD().post(link: AppLink.verifyEmail, payload: {
'email': emailController.text.isEmpty
? Get.find<LoginCaptinController>().emailController.text.toString()
: emailController.text,
'token': verifyCode.text,
});
if (res != 'failure') {
if (Get.find<LoginCaptinController>().emailController.text.toString() !=
'') {
Get.offAll(() => HomeCaptain());
} else {
Get.to(() => CarLicensePage());
}
}
}
void nextToAIDetection() async {
//Todo dont forget this
if (formKey.currentState!.validate()) {
isLoading = true;
update();
Get.to(() => AiPage());
}
}
Map<String, dynamic> payloadLisence = {};
void getFromController() {
name = Get.find<ScanDocumentsByApi>().name;
licenseClass = Get.find<ScanDocumentsByApi>().licenseClass.toString();
documentNo = Get.find<ScanDocumentsByApi>().documentNo.toString();
address = Get.find<ScanDocumentsByApi>().address.toString();
height = Get.find<ScanDocumentsByApi>().height.toString();
postalCode = Get.find<ScanDocumentsByApi>().address.toString();
sex = Get.find<ScanDocumentsByApi>().sex.toString();
stateCode = Get.find<ScanDocumentsByApi>().postalCode.toString();
expireDate = Get.find<ScanDocumentsByApi>().expireDate.toString();
dob = Get.find<ScanDocumentsByApi>().dob.toString();
update();
}
Future addLisence() async {
getFromController();
var res = await CRUD().post(link: AppLink.addLicense, payload: {
'name': name,
'licenseClass': licenseClass,
'documentNo': documentNo,
'address': address,
'height': height,
'postalCode': postalCode,
'sex': sex,
'stateCode': stateCode,
'expireDate': expireDate,
'dateOfBirth': dob,
});
print(jsonDecode(res));
isLoading = false;
update();
if (jsonDecode(res)['status'] == 'success') {
// Get.to(() => AiPage()); //todo rplace this
}
}
void addRegisrationCarForDriver(String vin, make, model, year, color, owner,
expirationDate, registrationDate) async {
getFromController();
var res = await CRUD().post(link: AppLink.addRegisrationCar, payload: {
'vin': vin,
'make': make,
'model': model,
'year': year,
'expirationDate': expirationDate,
'color': color,
'owner': owner,
'registrationDate': registrationDate,
});
print(jsonDecode(res));
box.write(BoxName.vin, vin);
box.write(BoxName.make, make);
box.write(BoxName.model, model);
box.write(BoxName.year, year);
box.write(BoxName.expirationDate, expirationDate);
box.write(BoxName.color, color);
box.write(BoxName.owner, owner);
box.write(BoxName.registrationDate, registrationDate);
isLoading = false;
update();
if (jsonDecode(res)['status'] == 'success') {
Get.offAll(() => LoginCaptin()); //todo replace this
}
}
Future register() async {
getFromController();
if (formKey.currentState!.validate()) {
isLoading = true;
update();
var res = await CRUD().post(link: AppLink.signUpCaptin, payload: {
'first_name': name.split(' ')[1],
'last_name': name.split(' ')[0],
'email': emailController.text,
'phone': phoneController.text,
'password': passwordController.text,
'gender': sex,
'site': address,
'birthdate': dob,
});
isLoading = false;
update();
if (jsonDecode(res)['status'] == 'success') {
box.write(BoxName.driverID, jsonDecode(res)['message']);
box.write(BoxName.dobDriver, dob);
box.write(BoxName.sexDriver, sex);
box.write(BoxName.phoneDriver, phoneController.text);
box.write(BoxName.lastNameDriver, name.split(' ')[0]);
int randomNumber = Random().nextInt(100000) + 1;
await CRUD().post(link: AppLink.sendVerifyEmail, payload: {
'email': emailController.text,
'token': randomNumber.toString(),
}).then((value) => print(value));
Get.to(() => VerifyEmailCaptainPage());
}
}
}
}

View File

@@ -3,8 +3,6 @@ import 'package:SEFER/main.dart';
import 'package:get/get.dart';
import 'package:google_sign_in/google_sign_in.dart';
import '../../views/auth/captin/ai_page.dart';
class GoogleSignInHelper {
static final GoogleSignIn _googleSignIn = GoogleSignIn(
scopes: [
@@ -17,7 +15,7 @@ class GoogleSignInHelper {
try {
final GoogleSignInAccount? googleUser = await _googleSignIn.signIn();
getDriverInfo();
Get.to(() => AiPage());
// Get.to(() => AiPage());
return googleUser;
} catch (error) {
print('Google Sign-In error: $error');

View File

@@ -1,5 +1,4 @@
import 'dart:convert';
import 'dart:io';
import 'dart:math';
import 'package:flutter/material.dart';
@@ -13,9 +12,6 @@ import 'package:SEFER/main.dart';
import 'package:SEFER/views/auth/verify_email_page.dart';
import 'package:SEFER/views/home/map_page_passenger.dart';
import '../../views/admin/admin_home_page.dart';
import '../functions/device_info.dart';
class LoginController extends GetxController {
final formKey = GlobalKey<FormState>();
final formKeyAdmin = GlobalKey<FormState>();
@@ -44,37 +40,37 @@ class LoginController extends GetxController {
update();
}
void adminDashboardOpen() async {
if (formKeyAdmin.currentState!.validate()) {
await DeviceInfoPlus.getDeviceInfo();
if (Platform.isAndroid) {
// print(DeviceInfoPlus.deviceDataList['serialNumber']);
// var res = await CRUD().get(link: AppLink.getAdminUser, payload: {
// // 'device_number': DeviceInfoPlus.deviceData['serialNumber'].toString(),
// });
// var d = jsonDecode(res);
// // print(d);
// // if (DeviceInfoPlus.deviceData['serialNumber'] ==
// d['message']['device_number']) {
Get.back();
Get.to(() => const AdminHomePage());
// }
}
if (Platform.isIOS) {
// print(DeviceInfoPlus.deviceData['identifierForVendor']);
// var res = await CRUD().get(link: AppLink.getAdminUser, payload: {
// 'device_number': DeviceInfoPlus.deviceData['identifierForVendor'].toString(),
// });
// var d = jsonDecode(res);
// print(d);
// if (DeviceInfoPlus.deviceData['serialNumber'] ==
// d['message']['device_number']) {
Get.back();
Get.to(() => const AdminHomePage());
// }
}
}
}
// void adminDashboardOpen() async {
// if (formKeyAdmin.currentState!.validate()) {
// await DeviceInfoPlus.getDeviceInfo();
// if (Platform.isAndroid) {
// // print(DeviceInfoPlus.deviceDataList['serialNumber']);
// // var res = await CRUD().get(link: AppLink.getAdminUser, payload: {
// // // 'device_number': DeviceInfoPlus.deviceData['serialNumber'].toString(),
// // });
// // var d = jsonDecode(res);
// // // print(d);
// // // if (DeviceInfoPlus.deviceData['serialNumber'] ==
// // d['message']['device_number']) {
// Get.back();
// Get.to(() => const AdminHomePage());
// // }
// }
// if (Platform.isIOS) {
// // print(DeviceInfoPlus.deviceData['identifierForVendor']);
// // var res = await CRUD().get(link: AppLink.getAdminUser, payload: {
// // 'device_number': DeviceInfoPlus.deviceData['identifierForVendor'].toString(),
// // });
// // var d = jsonDecode(res);
// // print(d);
// // if (DeviceInfoPlus.deviceData['serialNumber'] ==
// // d['message']['device_number']) {
// Get.back();
// Get.to(() => const AdminHomePage());
// // }
// }
// }
// }
void login() async {
isloading = true;