From a8d6c509c157c326efc0b468a5df8ddb726a84e9 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Sat, 25 Nov 2023 14:05:02 +0300 Subject: [PATCH] 11/25/1 --- .env | 6 +- android/app/src/main/AndroidManifest.xml | 2 + assets/notify.mp3 | Bin 0 -> 160044 bytes lib/constant/api_key.dart | 3 + lib/constant/links.dart | 5 + .../auth/captin/login_captin_controller.dart | 5 +- lib/controller/auth/captin/ml_google_doc.dart | 83 ++++---- .../captin/register_captin_controller.dart | 23 ++- lib/controller/firebase/firbase_messge.dart | 11 +- lib/controller/functions/crud.dart | 37 +++- lib/controller/functions/llama_ai.dart | 20 +- lib/controller/functions/ocr_controller.dart | 16 +- .../home/captin/home_captain_controller.dart | 53 +++++ .../home/captin/map_driver_controller.dart | 8 +- .../home/captin/order_request_controller.dart | 6 +- .../home/captin/widget/connect.dart | 20 +- .../captin/widget/left_menu_map_captain.dart | 18 ++ .../home/map_passenger_controller.dart | 22 ++- .../home/splash_screen_controlle.dart | 2 +- lib/controller/rate/rate_conroller.dart | 2 +- lib/views/auth/captin/ai_page.dart | 2 +- lib/views/auth/captin/car_license_page.dart | 181 ++++++++++++++---- lib/views/auth/captin/login_captin.dart | 82 ++------ lib/views/auth/captin/logout_captain.dart | 16 ++ lib/views/auth/captin/register_captin.dart | 4 +- .../auth/captin/verify_email_captain.dart | 6 +- lib/views/home/Captin/history_captain.dart | 16 ++ .../Captin/home_captain/drawer_captain.dart | 104 ++++++++++ .../Captin/home_captain/help_captain.dart | 16 ++ .../{ => home_captain}/home_captin.dart | 124 ++---------- .../Captin/mapDriverWidgets/sos_connect.dart | 4 +- .../orderCaptin/order_request_page.dart | 14 +- lib/views/home/Captin/settings_captain.dart | 16 ++ lib/views/home/map_page_passenger.dart | 10 +- lib/views/home/my_wallet/walet_captain.dart | 17 ++ lib/views/home/profile/profile_captain.dart | 16 ++ .../notification/notification_captain.dart | 16 ++ 37 files changed, 679 insertions(+), 307 deletions(-) create mode 100644 assets/notify.mp3 create mode 100644 lib/views/auth/captin/logout_captain.dart create mode 100644 lib/views/home/Captin/history_captain.dart create mode 100644 lib/views/home/Captin/home_captain/drawer_captain.dart create mode 100644 lib/views/home/Captin/home_captain/help_captain.dart rename lib/views/home/Captin/{ => home_captain}/home_captin.dart (65%) rename lib/views/{ => home/Captin}/orderCaptin/order_request_page.dart (96%) create mode 100644 lib/views/home/Captin/settings_captain.dart create mode 100644 lib/views/home/my_wallet/walet_captain.dart create mode 100644 lib/views/home/profile/profile_captain.dart create mode 100644 lib/views/notification/notification_captain.dart diff --git a/.env b/.env index 4ee4537..4d4691d 100644 --- a/.env +++ b/.env @@ -6,9 +6,11 @@ twilloRecoveryCode=CAU79DHPH1BE9PUH4ETXTSXZXrXlBl authTokenTwillo=70u98ju0214xx4q0u74028u021u4qu65XrXlBl chatGPTkey=zg-4C26q4SYBKQeHZDqkWowC9XrxgUEfUy9JRw2rm6Q2adb3kjwXrXlBl transactionCloude=Qhcwilomqcoib:QVO_JNYED2XWA26YXKC2TP:YK1DVH6SJB31N3PE1UXrXlBl -visionApi=3vQRyaYYSWpmv69A58ZOkxmeK6M1mgwEDlXrXlBl +visionApi=3pALsqSSYTvzp69Q5FMIgbzjG6Z1zktJXrXlBl chatGPTkeySefer=zg-IiR34ooza3Yvhvb9rZk1C9XrxgUE0l8jRRZrHj3Qe5QXPlqVXrXlBl +chatGPTkeySeferNew=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 secretKey=zg_cjzc_57I0TCIYNJPlIFQ5ZXkqiZZ28bBULsuMd1Cr5IYztSseaRvf3LdXWT9wwfV94Cv64CM7VAiMi6jWUrrLoAy9lNWVB33Rl8TY9b1XrXlBl stripe_publishableKe=vg_cjzc_57I0TCIYNJPlIFQ5ZB5j2x4vQpU5FVYF9f9Vou74a60BJAQvH5QunMMJB8D1TOqsuOlHCeeh7vHqpnkijRkx9UL5g33vb0iNWKIXrXlBl llamaKey=LL-JfdiCXFpcLXNe87cSGQwGE0piZ9Zw179tVjEP1KMxQgVWGxD9Ixz3m8kkKaO5Kdi -serverPHP=https://ride.mobile-app.store \ No newline at end of file +serverPHP=https://ride.mobile-app.store +Cohere=Qfrhx9d5YVHiy4uEuK4wiFc9kIuFFlvc5A6WVzPK \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 75d27f3..289b193 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -22,6 +22,8 @@ + + \ No newline at end of file diff --git a/assets/notify.mp3 b/assets/notify.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d10bc285be09213d1768d8e1dd6a2bba83fd25b0 GIT binary patch literal 160044 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

w*oVob| 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 yETk_;#*h>^k3MWGSRycV print(value)); - Get.to(() => VerifyEmailPage()); + Get.to(() => VerifyEmailCaptainPage()); }, ); } diff --git a/lib/controller/auth/captin/ml_google_doc.dart b/lib/controller/auth/captin/ml_google_doc.dart index e28eae2..ac93c0f 100644 --- a/lib/controller/auth/captin/ml_google_doc.dart +++ b/lib/controller/auth/captin/ml_google_doc.dart @@ -1,10 +1,11 @@ -import 'dart:convert'; import 'dart:io'; -import 'dart:ui'; 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:ride/constant/colors.dart'; +import 'package:ride/controller/functions/llama_ai.dart'; class CarRegistrationRecognizerController extends GetxController { @override @@ -15,7 +16,6 @@ class CarRegistrationRecognizerController extends GetxController { // The ImagePicker instance final ImagePicker _imagePicker = ImagePicker(); - Map extractedData = {}; // The GoogleMlKit TextRecognizer instance final TextRecognizer _textRecognizer = TextRecognizer(); @@ -24,47 +24,57 @@ class CarRegistrationRecognizerController extends GetxController { String? scannedText; String? jsonOutput; final List> lines = []; + Map extracted = {}; XFile? image; - Map decode = {}; + CroppedFile? croppedFile; // Picks an image from the camera or gallery and extracts the text final List> extractedTextWithCoordinates = []; + Future 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; } - // Convert the XFile object to an InputImage object - final InputImage inputImage = InputImage.fromFile(File(image!.path)); + // 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', + toolbarColor: AppColor.blueColor, + toolbarWidgetColor: AppColor.yellowColor, + initAspectRatio: CropAspectRatioPreset.original, + lockAspectRatio: false), + IOSUiSettings( + title: 'Cropper', + ), + ], + ); + + // 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; - final Map extractedData = {}; - - for (TextBlock block in recognizedText.blocks) { - for (TextLine line in block.lines) { - final String lineText = line.text; - final Rect lineBoundingBox = line.boundingBox!; - - extractedTextWithCoordinates.add({ - 'text': lineText, - 'boundingBox': { - 'left': lineBoundingBox.left, - 'top': lineBoundingBox.top, - 'width': lineBoundingBox.width, - 'height': lineBoundingBox.height, - }, - }); - } - update(); - } - - print(jsonEncode(extractedTextWithCoordinates)); // Extract the scanned text line by line final List> lines = []; @@ -73,15 +83,20 @@ class CarRegistrationRecognizerController extends GetxController { i.toString(): recognizedText.blocks[i].text, }); } - // print(jsonEncode(lines)); - // Convert the list of lines to a JSON string - jsonOutput = jsonEncode(extractedData); - decode = jsonDecode(jsonOutput!); + 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); + // Assign the result to the extracted variable + extracted = result2; + + print('extracted is ' + extracted.toString()); update(); - print('jsonOutput------------------------------'); - print(decode); - // print(jsonEncode(lines)); } } diff --git a/lib/controller/auth/captin/register_captin_controller.dart b/lib/controller/auth/captin/register_captin_controller.dart index ef1f68d..ced9102 100644 --- a/lib/controller/auth/captin/register_captin_controller.dart +++ b/lib/controller/auth/captin/register_captin_controller.dart @@ -12,7 +12,7 @@ import 'package:ride/views/auth/captin/verify_email_captain.dart'; import '../../../views/auth/captin/ai_page.dart'; import '../../../views/auth/verify_email_page.dart'; -class RegisterCaptinController extends GetxController { +class RegisterCaptainController extends GetxController { final formKey = GlobalKey(); TextEditingController emailController = TextEditingController(); @@ -125,6 +125,27 @@ class RegisterCaptinController extends GetxController { } } + 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)); + isLoading = false; + update(); + if (jsonDecode(res)['status'] == 'success') { + // Get.to(() => AiPage()); //todo replace this + } + } + void register() async { getFromController(); if (formKey.currentState!.validate()) { diff --git a/lib/controller/firebase/firbase_messge.dart b/lib/controller/firebase/firbase_messge.dart index 0450c66..af50f6f 100644 --- a/lib/controller/firebase/firbase_messge.dart +++ b/lib/controller/firebase/firbase_messge.dart @@ -10,10 +10,9 @@ import '../../constant/box_name.dart'; import '../../constant/colors.dart'; import '../../constant/links.dart'; import '../../constant/style.dart'; -import '../../env/env.dart'; import '../../main.dart'; import '../../views/home/profile/promos_passenger_page.dart'; -import '../../views/orderCaptin/order_request_page.dart'; +import '../../views/home/Captin/orderCaptin/order_request_page.dart'; import '../../views/widgets/elevated_btn.dart'; import '../functions/crud.dart'; import '../functions/launch.dart'; @@ -413,7 +412,7 @@ class FirebaseMessagesController extends GetxController { 'notification': { 'title': title, 'body': body, - 'sound': 'true' + 'sound': 'assets/notify.mp3' }, 'priority': 'high', 'data': { @@ -471,7 +470,7 @@ class FirebaseMessagesController extends GetxController { 'notification': { 'title': title, 'body': body, - 'sound': 'true' + 'sound': 'assets/notify.mp3' }, 'data': { 'passengerList': map, @@ -508,7 +507,7 @@ class FirebaseMessagesController extends GetxController { 'notification': { 'title': title, 'body': body, - 'sound': 'true' + 'sound': 'assets/notify.mp3' }, 'data': { 'click_action': 'FLUTTER_NOTIFICATION_CLICK', @@ -547,7 +546,7 @@ class FirebaseMessagesController extends GetxController { 'notification': { 'title': title, 'body': body, - 'sound': 'true' + 'sound': 'assets/notify.mp3' }, 'data': { 'DriverList': data, diff --git a/lib/controller/functions/crud.dart b/lib/controller/functions/crud.dart index 1eaff59..afc2e9d 100644 --- a/lib/controller/functions/crud.dart +++ b/lib/controller/functions/crud.dart @@ -59,7 +59,42 @@ class CRUD { { "role": "user", "content": - "Extract the desired information from the following passage as json decoded like vin,make,made,color,owner and all you find in this:\n\n$payload" + "Extract the desired information from the following passage as json decoded like vin,make,made,year,expiration_date,color,owner,registration_date just in this:\n\n$payload" + } + ], + "temperature": 0.9 + }); + var response = await http.post( + url, + body: data, + headers: headers, + ); + + if (response.statusCode == 200) { + return response.body; + } + return response.statusCode; + } + + Future getChatGPT({ + required String link, + required String payload, + }) async { + var url = Uri.parse( + link, + ); + var headers = { + 'Content-Type': 'application/json', + 'Authorization': + 'Bearer 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' + }; + var data = json.encode({ + "model": "gpt-3.5-turbo", + "messages": [ + { + "role": "user", + "content": + "Extract the desired information from the following passage as json decoded like vin,make,made,year,expiration_date,color,owner,registration_date just in this:\n\n$payload" } ], "temperature": 0.9 diff --git a/lib/controller/functions/llama_ai.dart b/lib/controller/functions/llama_ai.dart index 48ea3d2..3179026 100644 --- a/lib/controller/functions/llama_ai.dart +++ b/lib/controller/functions/llama_ai.dart @@ -4,18 +4,21 @@ import 'package:ride/constant/links.dart'; import 'package:ride/controller/functions/crud.dart'; class LlamaAi { - Future getExractionData(String input) async { + Future getCarRegistrationData(String input) async { print(true); - + Map exrtatDataFinal = {}; String oneLine = input.replaceAll('\n', ' '); var res = await CRUD().getLlama(link: AppLink.llama, payload: oneLine); var decod = jsonDecode(res); - // print(decod['choices'][0]['message']['content']); - extractDataFromJsonString(decod['choices'][0]['message']['content']); + // print(decod); + exrtatDataFinal = jsonDecode( + extractDataFromJsonString(decod['choices'][0]['message']['content'])); + // print(jsonEncode(exrtatDataFinal)); print(false); + return exrtatDataFinal; } - Map extractDataFromJsonString(String jsonString) { + String extractDataFromJsonString(String jsonString) { // Remove any leading or trailing whitespace from the string jsonString = jsonString.trim(); @@ -25,10 +28,11 @@ class LlamaAi { final jsonSubstring = jsonString.substring(startIndex, endIndex + 1); // Parse the JSON substring into a Map - final jsonData = json.decode(jsonSubstring); + final jsonData = jsonDecode(jsonSubstring); // Return the extracted data - print(jsonData); - return jsonData; + + // print(jsonEncode(jsonData)); + return jsonEncode(jsonData); } } diff --git a/lib/controller/functions/ocr_controller.dart b/lib/controller/functions/ocr_controller.dart index c77859e..cd72bc2 100644 --- a/lib/controller/functions/ocr_controller.dart +++ b/lib/controller/functions/ocr_controller.dart @@ -8,12 +8,14 @@ import 'package:image_picker/image_picker.dart'; import 'package:http/http.dart' as http; import 'package:path/path.dart' as path; import 'package:path_provider/path_provider.dart' as path_provider; +import 'package:ride/constant/api_key.dart'; import 'package:ride/constant/box_name.dart'; import 'package:ride/constant/colors.dart'; import 'package:ride/constant/credential.dart'; import 'package:ride/constant/info.dart'; import 'package:ride/constant/style.dart'; import 'package:ride/constant/table_names.dart'; +import 'package:ride/env/env.dart'; import 'package:ride/main.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; @@ -284,9 +286,11 @@ class ScanDocumentsByApi extends GetxController { /// Future scanDocumentsByApi() async { - String? visionApi = await storage.read(key: BoxName.visionApi); + // String? visionApi = await storage.read(key: BoxName.visionApi); + // String? visionApi = AK.visionApi; // Pick an image from the camera or gallery - image = await imagePicker.pickImage(source: ImageSource.camera); + // print(visionApi); + image = await imagePicker.pickImage(source: ImageSource.camera); // // If no image was picked, return if (image == null) { @@ -295,7 +299,7 @@ class ScanDocumentsByApi extends GetxController { isLoading = true; update(); - var headers = {'X-BLOBR-KEY': visionApi.toString()}; + var headers = {'X-BLOBR-KEY': AK.visionApi}; var request = http.MultipartRequest('POST', Uri.parse('https://api.faceonlive.com/j2y3q25y1b6maif1/api/iddoc')); request.files.add(await http.MultipartFile.fromPath('image', image!.path)); @@ -399,7 +403,7 @@ class ScanDocumentsByApi extends GetxController { Map res = {}; Future matchFaceApi() async { - String? visionApi = await storage.read(key: BoxName.visionApi); + // String? visionApi = await storage.read(key: BoxName.visionApi); imageFace = await imagePicker.pickImage( source: ImageSource.camera, preferredCameraDevice: CameraDevice.front, @@ -411,13 +415,13 @@ class ScanDocumentsByApi extends GetxController { } final imageFile = File(imageFace!.path); // Uint8List imageBytes = await imageFile.readAsBytes(); - var headers = {'X-BLOBR-KEY': visionApi.toString()}; + var headers = {'X-BLOBR-KEY': AK.visionApi}; var request = http.MultipartRequest( 'POST', Uri.parse( 'https://api.faceonlive.com/sntzbspfsdupgid1/api/face_compare')); request.files - .add(await http.MultipartFile.fromPath('image1', imageFace!.path)); + .add(await http.MultipartFile.fromPath('image1', imageFile.path)); request.files.add(await http.MultipartFile.fromPath('image2', imagePath)); request.headers.addAll(headers); diff --git a/lib/controller/home/captin/home_captain_controller.dart b/lib/controller/home/captin/home_captain_controller.dart index 2194eef..3c593af 100644 --- a/lib/controller/home/captin/home_captain_controller.dart +++ b/lib/controller/home/captin/home_captain_controller.dart @@ -1,12 +1,17 @@ import 'dart:convert'; +import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:ride/constant/box_name.dart'; +import 'package:ride/controller/home/captin/order_request_controller.dart'; import 'dart:async'; import '../../../constant/links.dart'; +import '../../../constant/style.dart'; +import '../../../constant/table_names.dart'; import '../../../main.dart'; +import '../../../views/widgets/elevated_btn.dart'; import '../../functions/crud.dart'; import '../../functions/location_controller.dart'; @@ -21,6 +26,7 @@ class HomeCaptainController extends GetxController { String totalMoneyInSEFER = '0'; String totalDurationToday = '0'; Timer? timer; + String countRefuse = '0'; bool mapType = false; bool mapTrafficON = false; double widthMapTypeAndTraffic = 50; @@ -55,6 +61,52 @@ class HomeCaptainController extends GetxController { update(); } + void getRefusedOrderByCaptain() async { + DateTime today = DateTime.now(); + int todayDay = today.day; + + String driverId = box.read(BoxName.driverID).toString(); + + String customQuery = ''' + SELECT COUNT(*) AS count + FROM ${TableName.driverOrdersRefuse} + WHERE driver_id = '$driverId' + AND created_at LIKE '%$todayDay%' + '''; + + try { + List> results = + await sql.getCustomQuery(customQuery); + countRefuse = results[0]['count'].toString(); + update(); + if (int.parse(countRefuse) > 3) { + locationController.stopLocationUpdates(); + activeStartTime = null; + activeTimer?.cancel(); + savePeriod(activeDuration); + activeDuration = Duration.zero; + update(); + Get.defaultDialog( + // backgroundColor: CupertinoColors.destructiveRed, + barrierDismissible: false, + title: 'You Are Stopped For this Day !'.tr, + content: Text( + 'You Refused 3 Rides this Day that is the reason \nSee you Tomorrow!' + .tr, + style: AppStyle.title, + ), + confirm: MyElevatedButton( + title: 'Ok , See you Tomorrow'.tr, + onPressed: () { + Get.back(); + Get.back(); + })); + } + } catch (e) { + print('Error executing custom query: $e'); + } + } + void changeMapType() { mapType = !mapType; // heightButtomSheetShown = isButtomSheetShown == true ? 240 : 0; @@ -110,6 +162,7 @@ class HomeCaptainController extends GetxController { getPaymentToday(); getAllPayment(); startPeriodicExecution(); + getRefusedOrderByCaptain(); super.onInit(); } diff --git a/lib/controller/home/captin/map_driver_controller.dart b/lib/controller/home/captin/map_driver_controller.dart index 898e51d..14f2eb5 100644 --- a/lib/controller/home/captin/map_driver_controller.dart +++ b/lib/controller/home/captin/map_driver_controller.dart @@ -12,7 +12,7 @@ import '../../../constant/colors.dart'; import '../../../constant/links.dart'; import '../../../main.dart'; import '../../../views/Rate/rate_passenger.dart'; -import '../../../views/home/Captin/home_captin.dart'; +import '../../../views/home/Captin/home_captain/home_captin.dart'; import '../../firebase/firbase_messge.dart'; import '../../functions/crud.dart'; import '../../functions/location_controller.dart'; @@ -49,8 +49,8 @@ class MapDriverController extends GetxController { double progress = 0; double progressToPassenger = 0; bool isRideBegin = false; - int progressTimerToShowPassengerInfoWindowFromDriver = 15; - int remainingTimeToShowPassengerInfoWindowFromDriver = 15; + int progressTimerToShowPassengerInfoWindowFromDriver = 20; + int remainingTimeToShowPassengerInfoWindowFromDriver = 20; int remainingTimeToPassenger = 60; bool isDriverNearPassengerStart = false; GoogleMapController? mapController; @@ -60,7 +60,7 @@ class MapDriverController extends GetxController { double progressTimerRideBegin = 0; late Timer timer; String? mapAPIKEY; - + final zones = []; void onMapCreated(GoogleMapController controller) { LocationController locationController = Get.find(); myLocation = locationController.myLocation; diff --git a/lib/controller/home/captin/order_request_controller.dart b/lib/controller/home/captin/order_request_controller.dart index 62725dc..9993cd4 100644 --- a/lib/controller/home/captin/order_request_controller.dart +++ b/lib/controller/home/captin/order_request_controller.dart @@ -8,14 +8,15 @@ import 'package:ride/views/widgets/elevated_btn.dart'; import '../../../constant/box_name.dart'; import '../../../constant/table_names.dart'; import '../../functions/crud.dart'; +import '../../functions/location_controller.dart'; class OrderRequestController extends GetxController { double progress = 0; - int duration = 15; + int duration = 20; int remainingTime = 0; String countRefuse = '0'; bool applied = false; - + final locationController = Get.put(LocationController()); @override void onInit() { getRefusedOrderByCaptain(); @@ -47,6 +48,7 @@ class OrderRequestController extends GetxController { countRefuse = results[0]['count'].toString(); update(); if (int.parse(countRefuse) > 3) { + locationController.stopLocationUpdates(); Get.defaultDialog( // backgroundColor: CupertinoColors.destructiveRed, barrierDismissible: false, diff --git a/lib/controller/home/captin/widget/connect.dart b/lib/controller/home/captin/widget/connect.dart index 2d3f26d..71702dd 100644 --- a/lib/controller/home/captin/widget/connect.dart +++ b/lib/controller/home/captin/widget/connect.dart @@ -1,6 +1,8 @@ import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; +import '../../../../constant/style.dart'; +import '../../../../views/widgets/elevated_btn.dart'; import '../home_captain_controller.dart'; import '../order_request_controller.dart'; @@ -19,7 +21,23 @@ class ConnectWidget extends StatelessWidget { int.parse(orderRequestController.countRefuse) > 3 ? CupertinoButton( child: Text('You are Stopped'.tr), - onPressed: () {}, + onPressed: () { + Get.defaultDialog( + // backgroundColor: CupertinoColors.destructiveRed, + barrierDismissible: false, + title: 'You Are Stopped For this Day !'.tr, + content: Text( + 'You Refused 3 Rides this Day that is the reason \nSee you Tomorrow!' + .tr, + style: AppStyle.title, + ), + confirm: MyElevatedButton( + title: 'Ok , See you Tomorrow'.tr, + onPressed: () { + Get.back(); + Get.back(); + })); + }, color: CupertinoColors.destructiveRed, ) : CupertinoButton( diff --git a/lib/controller/home/captin/widget/left_menu_map_captain.dart b/lib/controller/home/captin/widget/left_menu_map_captain.dart index c780f26..a696c44 100644 --- a/lib/controller/home/captin/widget/left_menu_map_captain.dart +++ b/lib/controller/home/captin/widget/left_menu_map_captain.dart @@ -13,6 +13,24 @@ GetBuilder leftMainMenuCaptainIcons() { left: 6, child: Column( children: [ + AnimatedContainer( + duration: const Duration(microseconds: 200), + width: controller.widthMapTypeAndTraffic, + decoration: BoxDecoration( + border: Border.all(), + color: AppColor.secondaryColor, + borderRadius: BorderRadius.circular(15)), + child: IconButton( + onPressed: () {}, + icon: const Icon( + FontAwesome.map_signs, + size: 24, + color: Colors.black, + )), + ), + const SizedBox( + height: 5, + ), AnimatedContainer( duration: const Duration(microseconds: 200), width: controller.widthMapTypeAndTraffic, diff --git a/lib/controller/home/map_passenger_controller.dart b/lib/controller/home/map_passenger_controller.dart index 2d3c5c5..fbf57c9 100644 --- a/lib/controller/home/map_passenger_controller.dart +++ b/lib/controller/home/map_passenger_controller.dart @@ -6,6 +6,7 @@ import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_polyline_algorithm/google_polyline_algorithm.dart'; import 'package:location/location.dart'; +import 'package:ride/views/home/map_page_passenger.dart'; import '../../constant/api_key.dart'; import '../../constant/box_name.dart'; import '../../constant/info.dart'; @@ -359,9 +360,21 @@ class MapPassengerController extends GetxController { update(); startTimer(); } else if (decod['data'].toString() == 'Refused') { - carsOrder++; - update(); - changeConfirmRide(); + if (dataCarsLocationByPassenger.length > carsOrder) { + carsOrder++; + update(); + changeConfirmRide(); + } else { + Get.defaultDialog( + title: 'There no Captain Aplly your order sorry for that '.tr, + middleText: 'try next time .', + confirm: MyElevatedButton( + title: 'Back', + onPressed: () => Get.offAll(const MapPagePassenger()), + )); + + // cancelRide(); + } } else { delayAndFetchRideStatus( rideId); // Repeat the delay and fetch operation @@ -443,8 +456,11 @@ class MapPassengerController extends GetxController { noCarString = false; dataCarsLocationByPassenger = jsonDecode(res); // print(dataCarsLocationByPassenger); + // if (dataCarsLocationByPassenger.length > carsOrder) { driverId = dataCarsLocationByPassenger['message'][carsOrder]['driver_id'] .toString(); + // } + // print('driverId==============$driverId'); for (var i = 0; i < dataCarsLocationByPassenger['message'].length; i++) { carsLocationByPassenger.add(LatLng( diff --git a/lib/controller/home/splash_screen_controlle.dart b/lib/controller/home/splash_screen_controlle.dart index 0ac3a5f..e37e53b 100644 --- a/lib/controller/home/splash_screen_controlle.dart +++ b/lib/controller/home/splash_screen_controlle.dart @@ -8,7 +8,7 @@ import '../../constant/box_name.dart'; import '../../main.dart'; import '../../onbording_page.dart'; import '../../views/auth/captin/login_captin.dart'; -import '../../views/home/Captin/home_captin.dart'; +import '../../views/home/Captin/home_captain/home_captin.dart'; import '../../views/home/map_page_passenger.dart'; class SplashScreenController extends GetxController diff --git a/lib/controller/rate/rate_conroller.dart b/lib/controller/rate/rate_conroller.dart index 138acca..6b2c02e 100644 --- a/lib/controller/rate/rate_conroller.dart +++ b/lib/controller/rate/rate_conroller.dart @@ -6,7 +6,7 @@ import 'package:ride/constant/style.dart'; import 'package:ride/controller/functions/crud.dart'; import 'package:ride/controller/home/map_passenger_controller.dart'; import 'package:ride/main.dart'; -import 'package:ride/views/home/Captin/home_captin.dart'; +import 'package:ride/views/home/Captin/home_captain/home_captin.dart'; import 'package:ride/views/home/map_page_passenger.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; diff --git a/lib/views/auth/captin/ai_page.dart b/lib/views/auth/captin/ai_page.dart index 5da3254..2fdbd75 100644 --- a/lib/views/auth/captin/ai_page.dart +++ b/lib/views/auth/captin/ai_page.dart @@ -210,7 +210,7 @@ class AiPage extends StatelessWidget { title: 'get sql data', kolor: AppColor.yellowColor, onPressed: () { - // sql.deleteAllData(TableName.faceDetectTimes); + sql.deleteAllData(TableName.faceDetectTimes); sql .getAllData(TableName.faceDetectTimes) .then((value) => diff --git a/lib/views/auth/captin/car_license_page.dart b/lib/views/auth/captin/car_license_page.dart index 745d94e..77b8ae2 100644 --- a/lib/views/auth/captin/car_license_page.dart +++ b/lib/views/auth/captin/car_license_page.dart @@ -2,19 +2,23 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:ride/controller/auth/captin/ml_google_doc.dart'; -import 'package:ride/controller/auth/captin/register_captin_controller.dart'; -import 'package:ride/views/widgets/my_scafold.dart'; +import 'package:ride/constant/api_key.dart'; +import 'package:ride/env/env.dart'; -import '../../../controller/functions/ocr_controller.dart'; +import '../../../constant/box_name.dart'; +import '../../../constant/style.dart'; +import '../../../controller/auth/captin/ml_google_doc.dart'; +import '../../../controller/auth/captin/register_captin_controller.dart'; +import '../../../main.dart'; import '../../widgets/elevated_btn.dart'; +import '../../widgets/my_scafold.dart'; class CarLicensePage extends StatelessWidget { CarLicensePage({super.key}); CarRegistrationRecognizerController carRegistrationRecognizerController = Get.put(CarRegistrationRecognizerController()); - RegisterCaptinController registerCaptainController = - Get.put(RegisterCaptinController()); + RegisterCaptainController registerCaptainController = + Get.put(RegisterCaptainController()); @override Widget build(BuildContext context) { @@ -28,6 +32,11 @@ class CarLicensePage extends StatelessWidget { child: MyElevatedButton( title: 'Take Picture Of ID Card'.tr, onPressed: () async { + //0vQRyaYYDWpsv73A5CZOknseK7S2sgwE + //3vQRyaYYSWpmv69A58ZOkxmeK6M1mgwEDlXrXlBl + //0pALdqDDYHvzp73Q59SIgbzjG7Z2zkhJXr + // String? visionApi = AK.serverPHP; + // print(AK.visionApi); await carRegistrationRecognizerController.scanText(); }, )), @@ -47,6 +56,18 @@ class CarLicensePage extends StatelessWidget { title: 'Register'.tr, onPressed: () async { registerCaptainController.addLisence(); + registerCaptainController.addRegisrationCarForDriver( + carRegistrationRecognizerController.extracted['vin'], + carRegistrationRecognizerController.extracted['make'], + carRegistrationRecognizerController.extracted['model'], + carRegistrationRecognizerController.extracted['year'], + carRegistrationRecognizerController.extracted['color'], + carRegistrationRecognizerController.extracted['owner'], + carRegistrationRecognizerController + .extracted['expiration_date'], + carRegistrationRecognizerController + .extracted['registration_date'], + ); registerCaptainController.register(); }, )), @@ -56,36 +77,120 @@ class CarLicensePage extends StatelessWidget { } Widget buildImageWithBoundingBoxes() { - CarRegistrationRecognizerController carRegistrationRecognizerController = - Get.put(CarRegistrationRecognizerController()); - if (carRegistrationRecognizerController.image == null) { - return Text('No image selected'); - } else { - return Stack( - children: [ - Positioned( - // top: 50, - // right: 5, - // left: 5, - // bottom: 50, - child: Image.file( - File(carRegistrationRecognizerController.image!.path), - fit: BoxFit.fill, - )), - // for (var line - // in carRegistrationRecognizerController.extractedTextWithCoordinates) - // Positioned( - // left: line['boundingBox']['left'], - // top: line['boundingBox']['top'] - Get.width * 2, - // width: line['boundingBox']['width'], - // height: line['boundingBox']['height'], - // child: Container( - // decoration: BoxDecoration( - // border: Border.all(color: Colors.red, width: 2), - // ), - // ), - // ), - ], - ); - } + Get.put(CarRegistrationRecognizerController()); + return GetBuilder( + builder: (carRegistrationRecognizerController) => + carRegistrationRecognizerController.image == null || + carRegistrationRecognizerController.extracted.isEmpty + ? Center( + child: Text( + 'No image selected yet'.tr, + style: AppStyle.headtitle2, + )) + : Column( + children: [ + SizedBox( + width: Get.width * .8, + height: Get.width * .5, + child: Image.file( + File(carRegistrationRecognizerController + .croppedFile!.path), + // fit: BoxFit.fill, + )), + const SizedBox( + height: 20, + ), + Container( + decoration: AppStyle.boxDecoration, + height: Get.width * .5, + width: Get.width * .9, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Text( + 'Made :' + + carRegistrationRecognizerController + .extracted['make'] + .toString(), + style: AppStyle.title, + ), + Text( + 'model :' + + carRegistrationRecognizerController + .extracted['model'] + .toString(), + style: AppStyle.title, + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Text( + 'VIN :' + + carRegistrationRecognizerController + .extracted['vin'] + .toString(), + style: AppStyle.title, + ), + Text( + 'year :' + + carRegistrationRecognizerController + .extracted['year'] + .toString(), + style: AppStyle.title, + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + Text( + 'expiration date :' + + carRegistrationRecognizerController + .extracted['expiration_date'] + .toString(), + style: AppStyle.title, + ), + Text( + 'registration date :' + + carRegistrationRecognizerController + .extracted['registration_date'] + .toString(), + style: AppStyle.title, + ), + ], + ), + Text( + 'color :' + + carRegistrationRecognizerController + .extracted['color'] + .toString(), + style: AppStyle.title, + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Text( + 'owner :' + + carRegistrationRecognizerController + .extracted['owner'] + .toString(), + style: AppStyle.title, + ), + ], + ), + ], + ), + ) + ], + )); } diff --git a/lib/views/auth/captin/login_captin.dart b/lib/views/auth/captin/login_captin.dart index 1cb910d..219e0e1 100644 --- a/lib/views/auth/captin/login_captin.dart +++ b/lib/views/auth/captin/login_captin.dart @@ -200,7 +200,7 @@ class LoginCaptin extends StatelessWidget { // await storage.read(key: BoxName.serverAPI) ?? ''; // print(v); // sql.deleteAllData(TableName.faceDetectTimes); - // AC credentials = AC(); + AC credentials = AC(); // String apiKey = AK.secretKey; // // // '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'; // credentials.gAK(); @@ -215,13 +215,13 @@ class LoginCaptin extends StatelessWidget { // print('v: $v'); // 'AAAAinYllCo:APA91bF1shTpzSsSxqbfY6c60D8zs1ZsdIsl9ix6nl7GDdjCqWPRK0G0ub5SqFdb1jDpQDvQPxGg-697MWLo0sy3oYImBwBLObyhk0GjtNzyr0PbE3hI-pOvhf8Vp1xgUgBmofbZYXkH' // 'AAAAinYllCo:APA91bF1shTpzSsSxqbfY6c60D8zs1ZsdIsl9ix6nl7GDdjCqWPRK0G0ub5SqFdb1jDpQDvQPxGg-697MWLo0sy3oYImBwBLObyhk0GjtNzyr0PbE3hI-pOvhf8Vp1xgUgBmofbZYXkH' - // // String convertedStringN = credentials.c( - // credentials.c( - // credentials.c( - // 'QFx0qy456juj3839xuy2194q629q1fj0y7XrXlBl', cs), - // cC), - // // cn); - // print('Converted v: $convertedStringN'); + String convertedStringN = credentials.c( + credentials.c( + credentials.c( + '0vQRyaYYDWpsv73A5CZOknseK7S2sgwE', cs), + cC), + cn); + print('Converted v: $convertedStringN'); // // // String retrievedStringN = // credentials.r(convertedStringN, n); @@ -230,14 +230,11 @@ class LoginCaptin extends StatelessWidget { // credentials.r(retrievedStringN, c); // print('Retrieved String: $retrievedStringC'); - // String retrievedStringS = credentials.r( - // credentials.r( - // credentials.r( - // 'QFx0qy456juj3839xuy2194q629q1fj0y7XrXlBl', - // cn), - // cC), - // cs); - // print('Retrieved String: $retrievedStringS'); + String retrievedStringS = credentials.r( + credentials.r( + credentials.r(convertedStringN, cn), cC), + cs); + print('Retrieved String: $retrievedStringS'); // if (retrievedStringS == apiKey) { // print('same'); @@ -247,59 +244,6 @@ class LoginCaptin extends StatelessWidget { // print(' ENV is ' + Env.chatGPTkey); // // // print('storage is ' + v); // // print('storage is ' + apiKeyf!); // - String input = """ -[PAN -I/flutter (28718): wOYARMAN -I/flutter (28718): 2018 CHEV -I/flutter (28718): ASN AORESS -I/flutter (28718): rmv -I/flutter (28718): REGISTRY MOTOR VEHICL ES -I/flutter (28718): NEGIS TRATNWIYPE -I/flutter (28718): RSNTN AORLS( OrreRCNT THAN MALINO) -I/flutter (28718): Passenger Normal Red -I/flutter (28718): 274 -I/flutter (28718): SILVERADO -I/flutter (28718): ESSSENOSTOoN -I/flutter (28718): Neso WNRS) ANO MALING ADOSES -I/flutter (28718): 274 CHATTERTON AVE SOMERSET MA 02726-2939 -I/flutter (28718): CHRISTOPHER D WALL -I/flutter (28718): 74 CHATTERTON AVE -I/flutter (28718): SOMERSET NA -I/flutter (28718): A 02726-2939 -I/flutter (28718): OEL NUMICR -I/flutter (28718): RAIL NUMOER -I/flutter (28718): 4DGY18 -I/flutter (28718): oooY aYE -I/flutter (28718): PU -I/flutter (28718): M.G.L. Chapter 90 Section 24B makes it a crime to alter this Certificate -I/flutter (28718): MASSACHUSETTS DEPARTMENT OF TRANSPORTATION -I/flutter (28718): his vehicle is newty acquired, it must be inspected within 7 days -I/flutter (28718): of registration -I/flutter (28718): CERTIFICATE OF REGISTRATION -I/flutter (28718): rECVE DATE -I/flutter (28718): 21-Sep-2023 -I/flutter (28718): Cancel the registration plates if: -I/flutter (28718): COLoR -I/flutter (28718): BLACK -I/flutter (28718): CHANGE OF ADORESS -I/flutter (28718): TITLE NUMUER -I/flutter (28718): VEHICLE IDENTIFICATION NUMDCR -I/flutter (28718): EXPIRES ON -I/flutter (28718): 1GCVKREC7JZ169002 -I/flutter (28718): TOTAL RE GISTERED WEIGHT FOR A COMMERCIAL VEICLE CR TRALER -I/flutter (28718): US DOT LMBER FOR COMMERCAL, VEHICLE -I/flutter (28718): HSURWCE COMPi -I/flutter (28718): PLYMOUTH ROCK ASSURANCE -I/flutter (28718): CORPORATION -I/flutter (28718): MAMUM SEATVG CAPACIIYFHVEGES FOK HRE -I/flutter (28718): | RESIDENTIAL -I/flutter (28718): Important information for vehicle owners -I/flutter (28718): oun f9nia Rogistrar of Motor Vehicles -I/flutter (28718): 31-Aug-2025 -I/flutter (28718): MAILING -I/flutter (28718): Cert]"""; - - await LlamaAi().getExractionData(input); }, icon: const Icon( Icons.close, diff --git a/lib/views/auth/captin/logout_captain.dart b/lib/views/auth/captin/logout_captain.dart new file mode 100644 index 0000000..4988f06 --- /dev/null +++ b/lib/views/auth/captin/logout_captain.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:ride/views/widgets/my_scafold.dart'; + +class LogoutCaptain extends StatelessWidget { + const LogoutCaptain({super.key}); + + @override + Widget build(BuildContext context) { + return MyScafolld( + title: 'Log Out Page'.tr, + body: [], + isleading: true, + ); + } +} diff --git a/lib/views/auth/captin/register_captin.dart b/lib/views/auth/captin/register_captin.dart index bdc73e6..77ffcf6 100644 --- a/lib/views/auth/captin/register_captin.dart +++ b/lib/views/auth/captin/register_captin.dart @@ -12,11 +12,11 @@ class RegisterCaptin extends StatelessWidget { @override Widget build(BuildContext context) { - Get.put(RegisterCaptinController()); + Get.put(RegisterCaptainController()); return MyScafolld( title: 'Register Captain'.tr, body: [ - GetBuilder( + GetBuilder( builder: (controller) => Form( key: controller.formKey, child: Padding( diff --git a/lib/views/auth/captin/verify_email_captain.dart b/lib/views/auth/captin/verify_email_captain.dart index d3a7188..894553e 100644 --- a/lib/views/auth/captin/verify_email_captain.dart +++ b/lib/views/auth/captin/verify_email_captain.dart @@ -8,8 +8,8 @@ import 'package:ride/views/widgets/my_scafold.dart'; class VerifyEmailCaptainPage extends StatelessWidget { VerifyEmailCaptainPage({super.key}); - RegisterCaptinController registerCaptinController = - Get.put(RegisterCaptinController()); + RegisterCaptainController registerCaptinController = + Get.put(RegisterCaptainController()); @override Widget build(BuildContext context) { return MyScafolld( @@ -22,7 +22,7 @@ class VerifyEmailCaptainPage extends StatelessWidget { 'We sent 5 digit to your Email provided'.tr, style: AppStyle.title.copyWith(fontSize: 20), )), - GetBuilder( + GetBuilder( builder: (controller) => Positioned( top: 100, left: 80, diff --git a/lib/views/home/Captin/history_captain.dart b/lib/views/home/Captin/history_captain.dart new file mode 100644 index 0000000..93cc59f --- /dev/null +++ b/lib/views/home/Captin/history_captain.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:ride/views/widgets/my_scafold.dart'; + +class HistoryCaptain extends StatelessWidget { + const HistoryCaptain({super.key}); + + @override + Widget build(BuildContext context) { + return MyScafolld( + title: 'History Page'.tr, + body: [], + isleading: true, + ); + } +} diff --git a/lib/views/home/Captin/home_captain/drawer_captain.dart b/lib/views/home/Captin/home_captain/drawer_captain.dart new file mode 100644 index 0000000..2bac614 --- /dev/null +++ b/lib/views/home/Captin/home_captain/drawer_captain.dart @@ -0,0 +1,104 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:ride/constant/box_name.dart'; +import 'package:ride/constant/colors.dart'; +import 'package:ride/main.dart'; +import 'package:ride/views/auth/captin/logout_captain.dart'; +import 'package:ride/views/home/Captin/history_captain.dart'; +import 'package:ride/views/home/Captin/home_captain/help_captain.dart'; +import 'package:ride/views/home/Captin/settings_captain.dart'; +import 'package:ride/views/home/my_wallet/walet_captain.dart'; +import 'package:ride/views/home/profile/profile_captain.dart'; +import 'package:ride/views/notification/notification_captain.dart'; + +class DrawerCaptain extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Drawer( + child: Column( + children: [ + // Other drawer items + UserAccountsDrawerHeader( + decoration: const BoxDecoration( + color: AppColor.greenColor, + gradient: LinearGradient( + colors: [ + AppColor.greenColor, + AppColor.yellowColor + ], // Define your gradient colors + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + ), + accountName: Text(box.read(BoxName.nameDriver)), + accountEmail: Text(box.read(BoxName.emailDriver)), + currentAccountPicture: const CircleAvatar( + backgroundImage: AssetImage('path_to_profile_image'), + ), //todo image from server + ), + ListTile( + leading: const Icon(Icons.account_balance_wallet), + title: const Text('Wallet'), + onTap: () { + // Handle wallet item tap + Get.to(() => const WaletCaptain(), transition: Transition.native); + }, + ), + ListTile( + leading: const Icon(Icons.person), + title: const Text('Profile'), + onTap: () { + // Handle profile item tap + Get.to(() => const ProfileCaptain(), + transition: Transition.rightToLeftWithFade); + }, + ), + ListTile( + leading: const Icon(Icons.history), + title: const Text('History of Trip'), + onTap: () { + Get.to(() => const HistoryCaptain(), + transition: Transition.downToUp); + // Handle history of trip item tap + }, + ), + ListTile( + leading: const Icon(Icons.notifications), + title: const Text('Notifications'), + onTap: () { + // Handle notifications item tap + Get.to(() => const NotificationCaptain(), + transition: Transition.upToDown); + }, + ), + ListTile( + leading: const Icon(Icons.help), + title: const Text('Helping Center'), + onTap: () { + // Handle helping center item tap + Get.to(() => const HelpCaptain(), transition: Transition.size); + }, + ), + ListTile( + leading: const Icon(Icons.settings), + title: const Text('Settings'), + onTap: () { + // Handle settings item tap + Get.to(() => const SettingsCaptain(), + transition: Transition.cupertino); + }, + ), + ListTile( + leading: const Icon(Icons.exit_to_app), + title: const Text('Sign Out'), + onTap: () { + // Handle sign out item tap + Get.to(() => const LogoutCaptain(), + transition: Transition.cupertinoDialog); + }, + ), + ], + ), + ); + } +} diff --git a/lib/views/home/Captin/home_captain/help_captain.dart b/lib/views/home/Captin/home_captain/help_captain.dart new file mode 100644 index 0000000..1b29467 --- /dev/null +++ b/lib/views/home/Captin/home_captain/help_captain.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:ride/views/widgets/my_scafold.dart'; + +class HelpCaptain extends StatelessWidget { + const HelpCaptain({super.key}); + + @override + Widget build(BuildContext context) { + return MyScafolld( + title: 'Helping Page'.tr, + body: [], + isleading: true, + ); + } +} diff --git a/lib/views/home/Captin/home_captin.dart b/lib/views/home/Captin/home_captain/home_captin.dart similarity index 65% rename from lib/views/home/Captin/home_captin.dart rename to lib/views/home/Captin/home_captain/home_captin.dart index 920ce31..322d660 100644 --- a/lib/views/home/Captin/home_captin.dart +++ b/lib/views/home/Captin/home_captain/home_captin.dart @@ -1,27 +1,22 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; -import 'package:ride/constant/colors.dart'; -import 'package:ride/constant/info.dart'; -import 'package:ride/constant/style.dart'; -import 'package:ride/constant/table_names.dart'; -import 'package:ride/controller/home/captin/home_captain_controller.dart'; -import 'package:ride/controller/home/captin/order_request_controller.dart'; -import 'package:ride/controller/home/captin/widget/left_menu_map_captain.dart'; -import 'package:ride/controller/payment/payment_controller.dart'; -import 'package:ride/main.dart'; -import 'package:ride/views/Rate/ride_calculate_driver.dart'; -import 'package:ride/views/home/Captin/bottom_bar.dart'; -import 'package:ride/views/home/Captin/camer_widget.dart'; -import 'package:ride/views/home/Captin/text_scanner.dart'; -import 'package:ride/views/widgets/circle_container.dart'; -import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart'; +import 'package:ride/views/home/Captin/home_captain/drawer_captain.dart'; -import '../../../controller/functions/location_controller.dart'; -import '../../../controller/home/captin/widget/connect.dart'; -import '../../widgets/mycircular.dart'; -import 'passportimage.dart'; +import '../../../../constant/colors.dart'; +import '../../../../constant/info.dart'; +import '../../../../constant/style.dart'; +import '../../../../constant/table_names.dart'; +import '../../../../controller/functions/location_controller.dart'; +import '../../../../controller/home/captin/home_captain_controller.dart'; +import '../../../../controller/home/captin/order_request_controller.dart'; +import '../../../../controller/home/captin/widget/connect.dart'; +import '../../../../controller/home/captin/widget/left_menu_map_captain.dart'; +import '../../../../main.dart'; +import '../../../widgets/circle_container.dart'; +import '../../../widgets/elevated_btn.dart'; +import '../text_scanner.dart'; class HomeCaptain extends StatelessWidget { HomeCaptain({super.key}); @@ -65,15 +60,7 @@ class HomeCaptain extends StatelessWidget { ))) ], ), - drawer: Drawer( - child: Column( - children: [ - // Other drawer items - - MyElevatedButton(title: 'Sign Out'.tr, onPressed: () {}) - ], - ), - ), + drawer: DrawerCaptain(), body: Stack( children: [ GetBuilder( @@ -100,43 +87,11 @@ class HomeCaptain extends StatelessWidget { // liteModeEnabled: true, ), ), - - // GetBuilder( - // builder: (locationController) => Column( - // children: [ - // Padding( - // padding: const EdgeInsets.all(8.0), - // child: Row( - // mainAxisAlignment: MainAxisAlignment.spaceBetween, - // children: [ - // Text( - // '${locationController.myLocation}', - // style: AppStyle.subtitle, - // ), - // Text( - // '${DateTime.now()}', - // style: AppStyle.subtitle, - // ) - // ], - // ), - // ), - // // TextButton( - // // onPressed: () { - // // MyClass().exampleUsage(); - // // }, - // // child: Text( - // // "Text Button", - // // ), - // // ), - // ], - // )), - Positioned( bottom: 10, right: Get.width * .1, left: Get.width * .1, child: const ConnectWidget()), - Positioned( top: 5, right: Get.width * .17, @@ -226,55 +181,6 @@ class HomeCaptain extends StatelessWidget { ), ), ), - // TextButton( - // onPressed: () { - // Get.to( - // () => CameraWidgetCardId(), - // ); - // }, - // child: const Text( - // "Text IdCamera", - // ), - // ), - // TextButton( - // onPressed: () { - // Get.to( - // () => CameraWidgetPassPort(), - // ); - // }, - // child: const Text( - // " CameraWidgetPassPort", - // ), - // ), - // TextButton( - // onPressed: () { - // Get.to(() => HomeScreen()); - // }, - // child: const Text( - // "Home Screen", - // ), - // ), - TextButton( - onPressed: () { - Get.to(() => const TextRecognizerAPI()); - }, - child: const Text( - "scan licnse", - ), - ), - // TextButton( - // onPressed: () { - // PaymentController().makePayment( - // 14, - // 'USD', - // () => Get.snackbar('Yes you pay success', '', - // backgroundColor: Colors.greenAccent)); - // }, - // child: const Text( - // "Pay 18 dollar", - // ), - // ), - leftMainMenuCaptainIcons(), ], ), diff --git a/lib/views/home/Captin/mapDriverWidgets/sos_connect.dart b/lib/views/home/Captin/mapDriverWidgets/sos_connect.dart index 1e253d7..bfe3827 100644 --- a/lib/views/home/Captin/mapDriverWidgets/sos_connect.dart +++ b/lib/views/home/Captin/mapDriverWidgets/sos_connect.dart @@ -41,7 +41,9 @@ class SosConnect extends StatelessWidget { onTap: () { launchCommunication( 'whatsapp', - '0798583052', //todo add number from driver + '962' + + box.read(BoxName + .phoneDriver), //todo add number from driver 'Hello this is Captain'.tr + ' ${box.read(BoxName.nameDriver)}'); }, diff --git a/lib/views/orderCaptin/order_request_page.dart b/lib/views/home/Captin/orderCaptin/order_request_page.dart similarity index 96% rename from lib/views/orderCaptin/order_request_page.dart rename to lib/views/home/Captin/orderCaptin/order_request_page.dart index 6617361..01fbeeb 100644 --- a/lib/views/orderCaptin/order_request_page.dart +++ b/lib/views/home/Captin/orderCaptin/order_request_page.dart @@ -6,13 +6,13 @@ import 'package:ride/main.dart'; import 'package:ride/views/home/Captin/driver_map_page.dart'; import 'package:ride/views/widgets/my_scafold.dart'; -import '../../constant/colors.dart'; -import '../../constant/links.dart'; -import '../../constant/style.dart'; -import '../../controller/functions/crud.dart'; -import '../../controller/functions/launch.dart'; -import '../../controller/home/captin/order_request_controller.dart'; -import '../widgets/elevated_btn.dart'; +import '../../../../constant/colors.dart'; +import '../../../../constant/links.dart'; +import '../../../../constant/style.dart'; +import '../../../../controller/functions/crud.dart'; +import '../../../../controller/functions/launch.dart'; +import '../../../../controller/home/captin/order_request_controller.dart'; +import '../../../widgets/elevated_btn.dart'; class OrderRequestPage extends StatelessWidget { OrderRequestPage({super.key}); diff --git a/lib/views/home/Captin/settings_captain.dart b/lib/views/home/Captin/settings_captain.dart new file mode 100644 index 0000000..3634d14 --- /dev/null +++ b/lib/views/home/Captin/settings_captain.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:ride/views/widgets/my_scafold.dart'; + +class SettingsCaptain extends StatelessWidget { + const SettingsCaptain({super.key}); + + @override + Widget build(BuildContext context) { + return MyScafolld( + title: 'Settings'.tr, + body: [], + isleading: true, + ); + } +} diff --git a/lib/views/home/map_page_passenger.dart b/lib/views/home/map_page_passenger.dart index 18ac3c6..2263e4f 100644 --- a/lib/views/home/map_page_passenger.dart +++ b/lib/views/home/map_page_passenger.dart @@ -1,16 +1,16 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:ride/constant/colors.dart'; -import 'package:ride/controller/home/map_passenger_controller.dart'; -import 'package:ride/views/home/map_widget.dart/cancel_raide_page.dart'; -import 'package:ride/views/home/map_widget.dart/ride_begin_passenger.dart'; +import '../../constant/colors.dart'; +import '../../controller/home/map_passenger_controller.dart'; +import '../../views/home/map_widget.dart/cancel_raide_page.dart'; +import '../../views/home/map_widget.dart/ride_begin_passenger.dart'; import '../../controller/home/menu_controller.dart'; import 'map_widget.dart/buttom_sheet_map_show.dart'; import 'map_widget.dart/cash_confirm_bottom_page.dart'; import 'map_widget.dart/driver_card_from_passenger.dart'; import 'map_widget.dart/google_map_passenger_widget.dart'; -import 'map_widget.dart/left_main_menu_icons.dart'; +import 'map_widget.dart/left_main_menu_icons.dart'; //Ml@6Pt@11 import 'map_widget.dart/main_bottom_Menu_map.dart'; import 'map_widget.dart/map_menu_widget.dart'; import 'map_widget.dart/menu_map_page.dart'; diff --git a/lib/views/home/my_wallet/walet_captain.dart b/lib/views/home/my_wallet/walet_captain.dart new file mode 100644 index 0000000..e2b6c3b --- /dev/null +++ b/lib/views/home/my_wallet/walet_captain.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../widgets/my_scafold.dart'; + +class WaletCaptain extends StatelessWidget { + const WaletCaptain({super.key}); + + @override + Widget build(BuildContext context) { + return MyScafolld( + title: 'Wallet'.tr, + body: [], + isleading: true, + ); + } +} diff --git a/lib/views/home/profile/profile_captain.dart b/lib/views/home/profile/profile_captain.dart new file mode 100644 index 0000000..4b2d85a --- /dev/null +++ b/lib/views/home/profile/profile_captain.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:ride/views/widgets/my_scafold.dart'; + +class ProfileCaptain extends StatelessWidget { + const ProfileCaptain({super.key}); + + @override + Widget build(BuildContext context) { + return MyScafolld( + title: 'My Profile'.tr, + body: [], + isleading: true, + ); + } +} diff --git a/lib/views/notification/notification_captain.dart b/lib/views/notification/notification_captain.dart new file mode 100644 index 0000000..2c16a0c --- /dev/null +++ b/lib/views/notification/notification_captain.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:ride/views/widgets/my_scafold.dart'; + +class NotificationCaptain extends StatelessWidget { + const NotificationCaptain({super.key}); + + @override + Widget build(BuildContext context) { + return MyScafolld( + title: 'Notifications'.tr, + body: [], + isleading: true, + ); + } +}