This commit is contained in:
Hamza-Ayed
2024-12-18 16:39:57 +03:00
parent 0129162309
commit 90d4ca39bf
138 changed files with 1581 additions and 1162 deletions

View File

@@ -54,8 +54,8 @@ android {
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdk = 23 minSdk = 23
targetSdk = flutter.targetSdkVersion targetSdk = flutter.targetSdkVersion
versionCode = 124 versionCode = 126
versionName = '1.5.24' versionName = '1.5.26'
multiDexEnabled =true multiDexEnabled =true
} }

View File

@@ -35,7 +35,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>81</string> <string>84</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleURLTypes</key> <key>CFBundleURLTypes</key>
@@ -50,7 +50,7 @@
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>4.0.81</string> <string>4.0.84</string>
<key>FirebaseAppDelegateProxyEnabled</key> <key>FirebaseAppDelegateProxyEnabled</key>
<string>NO</string> <string>NO</string>
<key>GMSApiKey</key> <key>GMSApiKey</key>

View File

@@ -46,6 +46,8 @@ class BoxName {
static const String phone = "phone"; static const String phone = "phone";
static const String phoneDriver = "phoneDriver"; static const String phoneDriver = "phoneDriver";
static const String is_claimed = "is_claimed"; static const String is_claimed = "is_claimed";
static const String isInstall = "isInstall";
static const String isGiftToken = "isGiftToken";
static const String lastOtpTime = "lastOtpTime"; static const String lastOtpTime = "lastOtpTime";
static const String bankCodeDriver = "bankCodeDriver"; static const String bankCodeDriver = "bankCodeDriver";
static const String accountBankNumberDriver = "accountBankNumberDriver"; static const String accountBankNumberDriver = "accountBankNumberDriver";

View File

@@ -1,4 +1,4 @@
import 'package:SEFER/env/env.dart'; import 'package:sefer_driver/env/env.dart';
import '../main.dart'; import '../main.dart';
import 'box_name.dart'; import 'box_name.dart';
@@ -183,8 +183,8 @@ class AppLink {
//-----------------RegisrationCar------------------ //-----------------RegisrationCar------------------
static String addRegisrationCar = "$ride/RegisrationCar/add.php"; static String addRegisrationCar = "$ride/RegisrationCar/add.php";
static String getRegisrationCar = "$endPoint/ride/RegisrationCar/get.php"; static String getRegisrationCar = "$endPoint/ride/RegisrationCar/get.php";
static String updateRegisrationCar = static String updateRegisrationCar = "$ride/RegisrationCar/update.php";
"$endPoint/ride/RegisrationCar/update.php"; static String makeDefaultCar = "$ride/RegisrationCar/makeDefaultCar.php";
//-----------------DriverOrder------------------ //-----------------DriverOrder------------------
@@ -220,6 +220,7 @@ class AppLink {
static String uploadEgyptidFront = static String uploadEgyptidFront =
"$server/EgyptDocuments/uploadEgyptidFront.php"; "$server/EgyptDocuments/uploadEgyptidFront.php";
static String uploadEgypt = "$server/uploadEgypt.php"; static String uploadEgypt = "$server/uploadEgypt.php";
static String uploadEgypt1 = "$server/uploadEgypt1.php";
//==================certifcate========== //==================certifcate==========
static String location = '$endPoint/ride/location'; static String location = '$endPoint/ride/location';
@@ -245,6 +246,7 @@ class AppLink {
//==================cars new drivers============= //==================cars new drivers=============
static String addNewCarsDrivers = '$server/ride/carDrivers/add.php'; static String addNewCarsDrivers = '$server/ride/carDrivers/add.php';
static String getNewCarsDrivers = '$server/ride/carDrivers/get.php'; static String getNewCarsDrivers = '$server/ride/carDrivers/get.php';
static String deleteNewCarsDrivers = '$server/ride/carDrivers/delete.php';
//==================Blog============= //==================Blog=============
static String profile = '$server/ride/profile'; static String profile = '$server/ride/profile';
@@ -267,6 +269,8 @@ class AppLink {
"$server/ride/invitor/updatePassengerGift.php"; "$server/ride/invitor/updatePassengerGift.php";
static String updateInvitationCodeFromRegister = static String updateInvitationCodeFromRegister =
"$server/ride/invitor/updateInvitationCodeFromRegister.php"; "$server/ride/invitor/updateInvitationCodeFromRegister.php";
static String updateDriverInvitationDirectly =
"$server/ride/invitor/updateDriverInvitationDirectly.php";
static String updatePassengersInvitation = static String updatePassengersInvitation =
"$server/ride/invitor/updatePassengersInvitation.php"; "$server/ride/invitor/updatePassengersInvitation.php";

View File

@@ -1,5 +1,5 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'colors.dart'; import 'colors.dart';

View File

@@ -1,6 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../../constant/box_name.dart'; import '../../../constant/box_name.dart';

View File

@@ -1,12 +1,12 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/firebase/local_notification.dart'; import 'package:sefer_driver/controller/firebase/local_notification.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart'; import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_contacts/contact.dart'; import 'package:flutter_contacts/contact.dart';
import 'package:flutter_contacts/flutter_contacts.dart'; import 'package:flutter_contacts/flutter_contacts.dart';

View File

@@ -1,18 +1,18 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:SEFER/controller/functions/location_background_controller.dart'; import 'package:sefer_driver/controller/functions/location_background_controller.dart';
import 'package:SEFER/views/auth/captin/cards/sms_signup.dart'; import 'package:sefer_driver/views/auth/captin/cards/sms_signup.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart'; import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:location/location.dart'; import 'package:location/location.dart';
import '../../../constant/info.dart'; import '../../../constant/info.dart';
@@ -113,7 +113,7 @@ class LoginDriverController extends GetxController {
.join(''); .join('');
} }
loginUsingCredentials(String driverID, email) async { loginWithGoogleCredential(String driverID, email) async {
isloading = true; isloading = true;
update(); update();
var res = await CRUD().get(link: AppLink.loginFromGoogleCaptin, payload: { var res = await CRUD().get(link: AppLink.loginFromGoogleCaptin, payload: {
@@ -146,6 +146,9 @@ class LoginDriverController extends GetxController {
jsonDecoeded['data'][0]['is_verified'].toString()); jsonDecoeded['data'][0]['is_verified'].toString());
box.write(BoxName.phoneDriver, jsonDecoeded['data'][0]['phone']); box.write(BoxName.phoneDriver, jsonDecoeded['data'][0]['phone']);
box.write(BoxName.is_claimed, jsonDecoeded['data'][0]['is_claimed']); box.write(BoxName.is_claimed, jsonDecoeded['data'][0]['is_claimed']);
box.write(BoxName.isInstall, jsonDecoeded['data'][0]['isInstall']);
// box.write(
// BoxName.isGiftToken, jsonDecoeded['data'][0]['isGiftToken']);
box.write(BoxName.nameArabic, jsonDecoeded['data'][0]['name_arabic']); box.write(BoxName.nameArabic, jsonDecoeded['data'][0]['name_arabic']);
box.write(BoxName.carYear, jsonDecoeded['data'][0]['year']); box.write(BoxName.carYear, jsonDecoeded['data'][0]['year']);
box.write( box.write(

View File

@@ -4,8 +4,8 @@ import 'package:get/get.dart';
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart'; import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';
import 'package:image_cropper/image_cropper.dart'; import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/controller/functions/llama_ai.dart'; import 'package:sefer_driver/controller/functions/llama_ai.dart';
class CarRegistrationRecognizerController extends GetxController { class CarRegistrationRecognizerController extends GetxController {
@override @override

View File

@@ -1,19 +1,19 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:SEFER/controller/auth/captin/login_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
import 'package:SEFER/views/auth/captin/cards/egypt_card_a_i.dart'; import 'package:sefer_driver/views/auth/captin/cards/egypt_card_a_i.dart';
import 'package:SEFER/views/auth/captin/register_captin.dart'; import 'package:sefer_driver/views/auth/captin/register_captin.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/controller/functions/ocr_controller.dart'; import 'package:sefer_driver/controller/functions/ocr_controller.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/auth/captin/login_captin.dart'; import 'package:sefer_driver/views/auth/captin/login_captin.dart';
import 'package:SEFER/views/auth/captin/verify_email_captain.dart'; import 'package:sefer_driver/views/auth/captin/verify_email_captain.dart';
import '../../../constant/colors.dart'; import '../../../constant/colors.dart';
import '../../../views/auth/captin/ai_page.dart'; import '../../../views/auth/captin/ai_page.dart';
@@ -116,7 +116,7 @@ class RegisterCaptainController extends GetxController {
backgroundColor: AppColor.greenColor); backgroundColor: AppColor.greenColor);
box.write(BoxName.phoneVerified, '1'); box.write(BoxName.phoneVerified, '1');
box.write(BoxName.phone, '+2${phoneController.text}'); box.write(BoxName.phone, '+2${phoneController.text}');
await Get.put(LoginDriverController()).loginUsingCredentials( await Get.put(LoginDriverController()).loginWithGoogleCredential(
box.read(BoxName.driverID).toString(), box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(), box.read(BoxName.emailDriver).toString(),
); );
@@ -240,7 +240,7 @@ class RegisterCaptainController extends GetxController {
mySnackbarSuccess('Phone number is already verified'.tr); mySnackbarSuccess('Phone number is already verified'.tr);
box.write(BoxName.phoneVerified, '1'); box.write(BoxName.phoneVerified, '1');
box.write(BoxName.phone, '+2${phoneController.text}'); box.write(BoxName.phone, '+2${phoneController.text}');
Get.put(LoginDriverController()).loginUsingCredentials( Get.put(LoginDriverController()).loginWithGoogleCredential(
box.read(BoxName.driverID).toString(), box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(), box.read(BoxName.emailDriver).toString(),
); );

View File

@@ -1,12 +1,12 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/auth/captin/login_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/auth/captin/cards/sms_signup.dart'; import 'package:sefer_driver/views/auth/captin/cards/sms_signup.dart';
import 'package:SEFER/views/home/on_boarding_page.dart'; import 'package:sefer_driver/views/home/on_boarding_page.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_sign_in/google_sign_in.dart'; import 'package:google_sign_in/google_sign_in.dart';
@@ -106,7 +106,7 @@ class GoogleSignInHelper {
// Check if driverID is a valid numeric string // Check if driverID is a valid numeric string
// if (driverID != 'Unknown ID' && int.tryParse(driverID) != null) { // if (driverID != 'Unknown ID' && int.tryParse(driverID) != null) {
await Get.find<LoginDriverController>() await Get.find<LoginDriverController>()
.loginUsingCredentials(driverID, emailDriver); .loginWithGoogleCredential(driverID, emailDriver);
// } // }
// else { // else {
// print('Invalid driverID format: $driverID'); // print('Invalid driverID format: $driverID');

View File

@@ -1,16 +1,16 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/controller/functions/secure_storage.dart'; import 'package:sefer_driver/controller/functions/secure_storage.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/auth/verify_email_page.dart'; import 'package:sefer_driver/views/auth/verify_email_page.dart';
class LoginController extends GetxController { class LoginController extends GetxController {
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/auth/login_page.dart'; import 'package:sefer_driver/views/auth/login_page.dart';
import '../../models/model/onboarding_model.dart'; import '../../models/model/onboarding_model.dart';
import '../../views/auth/captin/login_captin.dart'; import '../../views/auth/captin/login_captin.dart';

View File

@@ -3,11 +3,11 @@ import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/views/auth/login_page.dart'; import 'package:sefer_driver/views/auth/login_page.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../views/auth/captin/login_captin.dart'; import '../../views/auth/captin/login_captin.dart';
import '../../views/auth/verify_email_page.dart'; import '../../views/auth/verify_email_page.dart';

View File

@@ -1,6 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
class VerifyEmailController extends GetxController { class VerifyEmailController extends GetxController {
TextEditingController verfyCode = TextEditingController(); TextEditingController verfyCode = TextEditingController();

View File

@@ -1,13 +1,13 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../constant/box_name.dart'; import '../../constant/box_name.dart';
import '../../constant/colors.dart'; import '../../constant/colors.dart';
@@ -100,7 +100,7 @@ class FirebaseMessagesController extends GetxController {
notificationController.showNotification( notificationController.showNotification(
message.notification!.title.toString(), message.notification!.title.toString(),
message.notification!.body.toString(), message.notification!.body.toString(),
'order', 'tone1',
''); '');
} }
// await FirebaseMessagesController().showOverlayNotification(message); // await FirebaseMessagesController().showOverlayNotification(message);
@@ -114,6 +114,7 @@ class FirebaseMessagesController extends GetxController {
Get.put(HomeCaptainController()).changeRideId(); Get.put(HomeCaptainController()).changeRideId();
update(); update();
Get.to(() => OrderRequestPage(), arguments: { Get.to(() => OrderRequestPage(), arguments: {
// Get.to(() => OrderRequestPage(), arguments: {
'myListString': myListString, 'myListString': myListString,
'DriverList': myList, 'DriverList': myList,
// 'PolylineJson': myPoints, // 'PolylineJson': myPoints,

View File

@@ -3,9 +3,9 @@ import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/views/home/Captin/orderCaptin/order_request_page.dart'; import 'package:sefer_driver/views/home/Captin/orderCaptin/order_request_page.dart';
import 'package:SEFER/views/home/Captin/orderCaptin/order_speed_request.dart'; import 'package:sefer_driver/views/home/Captin/orderCaptin/order_speed_request.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
@@ -66,38 +66,46 @@ class NotificationController extends GetxController {
htmlFormatContent: true, htmlFormatContent: true,
htmlFormatContentTitle: true, htmlFormatContentTitle: true,
); );
AndroidNotificationDetails android = AndroidNotificationDetails( AndroidNotificationDetails android = AndroidNotificationDetails(
'high_importance_channel', // Use the same ID as before 'high_importance_channel',
'High Importance Notifications', 'High Importance Notifications',
importance: Importance.high, importance: Importance.max,
priority: Priority.high, priority: Priority.high,
styleInformation: bigTextStyleInformation,
playSound: true,
sound: RawResourceAndroidNotificationSound(tone), sound: RawResourceAndroidNotificationSound(tone),
// audioAttributesUsage: AudioAttributesUsage.alarm,
visibility: NotificationVisibility.public,
autoCancel: false,
color: AppColor.primaryColor,
showProgress: true,
showWhen: true,
ongoing: true,
enableVibration: true,
vibrationPattern: Int64List.fromList([0, 1000, 500, 1000]),
timeoutAfter: 14500,
setAsGroupSummary: true,
subText: message, fullScreenIntent: true,
actions: [
AndroidNotificationAction(
allowGeneratedReplies: true,
'id',
title.tr,
titleColor: AppColor.bronze,
showsUserInterface: true,
)
],
category: AndroidNotificationCategory.progress,
); );
// AndroidNotificationDetails android = AndroidNotificationDetails(
// 'high_importance_channel', // Use the same ID as before
// 'High Importance Notifications',
// importance: Importance.high,
// priority: Priority.high,
// styleInformation: bigTextStyleInformation,
// playSound: true,
// sound: RawResourceAndroidNotificationSound(tone),
// // audioAttributesUsage: AudioAttributesUsage.alarm,
// visibility: NotificationVisibility.public,
// autoCancel: false,
// color: AppColor.primaryColor,
// showProgress: true,
// showWhen: true,
// ongoing: true,
// enableVibration: true,
// vibrationPattern: Int64List.fromList([0, 1000, 500, 1000]),
// timeoutAfter: 14500,
// setAsGroupSummary: true,
// subText: message, fullScreenIntent: true,
// actions: [
// AndroidNotificationAction(
// allowGeneratedReplies: true,
// 'id',
// title.tr,
// titleColor: AppColor.blueColor,
// showsUserInterface: true,
// )
// ],
// category: AndroidNotificationCategory.message,
// );
DarwinNotificationDetails ios = const DarwinNotificationDetails( DarwinNotificationDetails ios = const DarwinNotificationDetails(
sound: 'default', sound: 'default',
presentAlert: true, presentAlert: true,
@@ -221,7 +229,6 @@ class NotificationController extends GetxController {
message, message,
scheduledTime, scheduledTime,
details, details,
androidAllowWhileIdle: true,
uiLocalNotificationDateInterpretation: uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime, UILocalNotificationDateInterpretation.absoluteTime,
matchDateTimeComponents: DateTimeComponents.time, matchDateTimeComponents: DateTimeComponents.time,
@@ -264,20 +271,37 @@ class NotificationController extends GetxController {
// Schedule notifications for the next 7 days // Schedule notifications for the next 7 days
for (int day = 0; day < 7; day++) { for (int day = 0; day < 7; day++) {
// Schedule for 8:00 AM // List of notification times
await _scheduleNotificationForTime( final notificationTimes = [
day, 7, 0, title, message, details, day * 1000 + 1); // Unique ID {'hour': 8, 'minute': 0, 'id': day * 1000 + 1}, // 8:00 AM
{'hour': 15, 'minute': 0, 'id': day * 1000 + 2}, // 3:00 PM
{'hour': 20, 'minute': 0, 'id': day * 1000 + 3}, // 8:00 PM
];
await _scheduleNotificationForTime( for (var time in notificationTimes) {
day, 10, 14, title, message, details, day * 1000 + 2); // Unique ID final notificationId = time['id'] as int;
// Schedule for 3:00 PM // Check if this notification ID is already stored
await _scheduleNotificationForTime( bool isScheduled = box.read('notification_$notificationId') ?? false;
day, 13, 0, title, message, details, day * 1000 + 3); // Unique ID
// Schedule for 8:00 PM if (!isScheduled) {
await _scheduleNotificationForTime( // Schedule the notification if not already scheduled
day, 20, 0, title, message, details, day * 1000 + 4); // Unique ID await _scheduleNotificationForTime(
day,
time['hour'] as int,
time['minute'] as int,
title,
message,
details,
notificationId,
);
// Mark this notification ID as scheduled in GetStorage
box.write('notification_$notificationId', true);
} else {
print('Notification with ID $notificationId is already scheduled.');
}
}
} }
print('Notifications scheduled successfully for the next 7 days'); print('Notifications scheduled successfully for the next 7 days');

View File

@@ -1,7 +1,7 @@
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart'; import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class OverlayContent1 extends StatelessWidget { class OverlayContent1 extends StatelessWidget {

View File

@@ -4,9 +4,9 @@ import 'dart:io';
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart'; import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:path_provider/path_provider.dart' as path_provider; import 'package:path_provider/path_provider.dart' as path_provider;
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;

View File

@@ -1,10 +1,10 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:SEFER/env/env.dart'; import 'package:sefer_driver/env/env.dart';
import '../../constant/api_key.dart'; import '../../constant/api_key.dart';
import '../../print.dart'; import '../../print.dart';
@@ -28,10 +28,9 @@ class CRUD {
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}', 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}',
}, },
); );
// if (response.statusCode == 200) { Log.print('request: ${response.request}');
Log.print('response: ${response.request}');
Log.print('response: ${response.body}'); Log.print('response: ${response.body}');
Log.print('response: ${payload}'); // if (response.statusCode == 200) {
var jsonData = jsonDecode(response.body); var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') { if (jsonData['status'] == 'success') {
return response.body; return response.body;
@@ -103,7 +102,6 @@ class CRUD {
var json = jsonDecode(extractedString); var json = jsonDecode(extractedString);
var textValues = extractTextFromLines(json); var textValues = extractTextFromLines(json);
Log.print('textValues: ${textValues}');
// await Get.put(AI()).geminiAiExtraction(prompt, textValues); // await Get.put(AI()).geminiAiExtraction(prompt, textValues);
await Get.put(AI()).anthropicAI(textValues, prompt, imagePath); await Get.put(AI()).anthropicAI(textValues, prompt, imagePath);
} }
@@ -147,7 +145,6 @@ class CRUD {
http.StreamedResponse response = await request.send(); http.StreamedResponse response = await request.send();
if (response.statusCode == 200) { if (response.statusCode == 200) {
// Log.print(
// 'response.stream.bytesToString(): ${await response.stream.bytesToString()}'); // 'response.stream.bytesToString(): ${await response.stream.bytesToString()}');
return await response.stream.bytesToString(); return await response.stream.bytesToString();
} else {} } else {}
@@ -203,9 +200,6 @@ class CRUD {
'Authorization': 'Bearer ${AK.secretKeyStripe}', 'Authorization': 'Bearer ${AK.secretKeyStripe}',
}, },
); );
// Log.print('response: ${response.request}');
// Log.print('response: ${response.body}');
// Log.print('response: ${payload}');
if (response.statusCode == 200) { if (response.statusCode == 200) {
return response.body; return response.body;
} else {} } else {}
@@ -229,11 +223,6 @@ class CRUD {
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}', 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
}, },
); );
Log.print('response: ${response.request}');
Log.print('response: ${response.body}');
// Log.print('response: ${response.statusCode}');
// Log.print('response: ${response.reasonPhrase}');
Log.print('response: ${payload}');
var jsonData = jsonDecode(response.body); var jsonData = jsonDecode(response.body);
if (response.statusCode == 200) { if (response.statusCode == 200) {
if (jsonData['status'] == 'success') { if (jsonData['status'] == 'success') {

View File

@@ -1,7 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/api_key.dart'; import 'package:sefer_driver/constant/api_key.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import '../../constant/links.dart'; import '../../constant/links.dart';

View File

@@ -1,17 +1,21 @@
import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'dart:math'; import 'dart:math';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/info.dart'; import 'package:sefer_driver/constant/info.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/auth/captin/login_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/functions/device_info.dart'; import 'package:sefer_driver/controller/firebase/local_notification.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart'; import 'package:sefer_driver/controller/functions/device_info.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/controller/notification/notification_captain_controller.dart';
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:image_cropper/image_cropper.dart'; import 'package:image_cropper/image_cropper.dart';
@@ -50,6 +54,31 @@ class AI extends GetxController {
bool isInviteDriverFound = false; bool isInviteDriverFound = false;
final invitationCodeController = TextEditingController(); final invitationCodeController = TextEditingController();
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
bool isTimerComplete = false;
double progressValue = 1.0;
int remainingSeconds = 30;
void startTimer() {
Timer.periodic(const Duration(seconds: 1), (timer) {
if (remainingSeconds == 0) {
timer.cancel();
isTimerComplete = true;
update(); // Notify the UI
} else {
remainingSeconds--;
progressValue = remainingSeconds / 30.0; // Update progress
update(); // Notify the UI
}
});
}
void resetTimer() {
isTimerComplete = false;
progressValue = 1.0;
remainingSeconds = 40;
update(); // Notify the UI
startTimer(); // Restart the timer
}
void setApproved() { void setApproved() {
approved = true; approved = true;
@@ -57,17 +86,32 @@ class AI extends GetxController {
} }
Future updateInvitationCodeFromRegister() async { Future updateInvitationCodeFromRegister() async {
if (formKey.currentState!.validate()) { var res = await CRUD().post(
var res = await CRUD().post( link: AppLink.updateDriverInvitationDirectly,
link: AppLink.updateInvitationCodeFromRegister, payload: {
payload: {"inviteCode": invitationCodeController.text}); "inviterDriverPhone": '+2${box.read(BoxName.phoneDriver).toString()}',
if (res != 'failure') { "driverId": box.read(BoxName.driverID).toString(),
isInviteDriverFound = true; },
update(); );
mySnackbarSuccess("Code approved".tr);
} else { if (res != 'failure') {
mySnackeBarError("Code not approved".tr); isInviteDriverFound = true;
} update();
// mySnackbarSuccess("Code approved".tr); // Localized success message
box.write(BoxName.isInstall, '1');
NotificationController().showNotification(
"Code approved".tr, "Code approved".tr, 'tone2', '');
// Notification text with dynamic token
FirebaseMessagesController().sendNotificationToDriverMAP(
'You have received a gift token!'.tr,
'for '.tr + box.read(BoxName.phoneDriver).toString(),
jsonDecode(res)['message'][0]['token'].toString(),
[],
'tone2', // Type of notification
);
} else {
// mySnackeBarError(
// "You dont have invitation code".tr); // Localized error message
} }
} }
@@ -397,7 +441,7 @@ class AI extends GetxController {
} }
} }
addCriminalDeocuments() async { addCriminalDocuments() async {
var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: { var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: {
"driverId": box.read(BoxName.driverID), "driverId": box.read(BoxName.driverID),
"IssueDate": responseCriminalRecordEgypt['IssueDate'], "IssueDate": responseCriminalRecordEgypt['IssueDate'],

View File

@@ -1,8 +1,8 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/controller/functions/gemeni.dart'; import 'package:sefer_driver/controller/functions/gemeni.dart';
class LlamaAi { class LlamaAi {
Future<Map> getCarRegistrationData(String input, prompt) async { Future<Map> getCarRegistrationData(String input, prompt) async {

View File

@@ -1,14 +1,14 @@
import 'dart:async'; import 'dart:async';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:location/location.dart'; import 'package:location/location.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart'; import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import '../../print.dart'; import '../../print.dart';

View File

@@ -1,17 +1,17 @@
import 'dart:io'; import 'dart:io';
import 'package:SEFER/views/home/on_boarding_page.dart'; import 'package:sefer_driver/views/home/on_boarding_page.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/onbording_page.dart'; import 'package:sefer_driver/onbording_page.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:sefer_driver/views/widgets/my_textField.dart';
import '../../constant/style.dart'; import '../../constant/style.dart';

View File

@@ -5,13 +5,13 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:SEFER/constant/api_key.dart'; import 'package:sefer_driver/constant/api_key.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/info.dart'; import 'package:sefer_driver/constant/info.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/constant/table_names.dart'; import 'package:sefer_driver/constant/table_names.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../constant/box_name.dart'; import '../../constant/box_name.dart';
import '../../constant/links.dart'; import '../../constant/links.dart';

View File

@@ -1,8 +1,8 @@
import 'dart:io'; import 'dart:io';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_confetti/flutter_confetti.dart'; import 'package:flutter_confetti/flutter_confetti.dart';
import 'package:flutter_overlay_window/flutter_overlay_window.dart'; import 'package:flutter_overlay_window/flutter_overlay_window.dart';
@@ -34,7 +34,8 @@ Future<void> getPermissionOverlay() async {
Future<void> showDriverGiftClaim(BuildContext context) async { Future<void> showDriverGiftClaim(BuildContext context) async {
if (box.read(BoxName.is_claimed).toString() == '0' || if (box.read(BoxName.is_claimed).toString() == '0' ||
box.read(BoxName.is_claimed) == null) { box.read(BoxName.is_claimed) == null) {
MyDialog().getDialog('You have gift 300 L.E'.tr, 'text', () async { MyDialog().getDialog(
'You have gift 300 L.E'.tr, 'This for new registration'.tr, () async {
var res = await CRUD().post(link: AppLink.updateDriverClaim, payload: { var res = await CRUD().post(link: AppLink.updateDriverClaim, payload: {
'driverId': box.read(BoxName.driverID), 'driverId': box.read(BoxName.driverID),
}); });
@@ -46,6 +47,7 @@ Future<void> showDriverGiftClaim(BuildContext context) async {
options: options:
const ConfettiOptions(particleCount: 100, spread: 70, y: 0.6), const ConfettiOptions(particleCount: 100, spread: 70, y: 0.6),
); );
box.write(BoxName.is_claimed, '1');
} }
Get.back(); Get.back();
}); });

View File

@@ -1,8 +1,8 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,13 +1,13 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/api_key.dart'; import 'package:sefer_driver/constant/api_key.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/info.dart'; import 'package:sefer_driver/constant/info.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
@@ -53,7 +53,7 @@ class SmsEgyptController extends GetxController {
'+2${Get.find<RegisterCaptainController>().phoneController.text}'); '+2${Get.find<RegisterCaptainController>().phoneController.text}');
box.write(BoxName.phoneVerified, '1'); box.write(BoxName.phoneVerified, '1');
await Get.put(LoginDriverController()).loginUsingCredentials( await Get.put(LoginDriverController()).loginWithGoogleCredential(
box.read(BoxName.driverID).toString(), box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(), box.read(BoxName.emailDriver).toString(),
); );

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
class Toast { class Toast {
static void show(BuildContext context, String message, Color color) { static void show(BuildContext context, String message, Color color) {

View File

@@ -1,6 +1,6 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart'; import 'package:flutter_tts/flutter_tts.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,7 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:SEFER/constant/api_key.dart'; import 'package:sefer_driver/constant/api_key.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:image_cropper/image_cropper.dart'; import 'package:image_cropper/image_cropper.dart';
@@ -205,8 +205,9 @@ class ImageController extends GetxController {
await uploadNewCar( await uploadNewCar(
compressedImage, compressedImage,
{ {
'driverID': 'driverID': box.read(BoxName.driverID) +
box.read(BoxName.driverID) ?? box.read(BoxName.passengerID), '_' +
DateTime.now().toIso8601String(),
'imageType': imageType, 'imageType': imageType,
}, },
link, link,

View File

@@ -1,13 +1,13 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:fl_chart/fl_chart.dart'; import 'package:fl_chart/fl_chart.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/models/model/driver/rides_summary_model.dart'; import 'package:sefer_driver/models/model/driver/rides_summary_model.dart';
class DurationController extends GetxController { class DurationController extends GetxController {
final data = DurationData; final data = DurationData;

View File

@@ -1,10 +1,10 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../../../constant/colors.dart'; import '../../../../constant/colors.dart';

View File

@@ -1,9 +1,9 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
class MaintainCenterController extends GetxController { class MaintainCenterController extends GetxController {

View File

@@ -1,9 +1,9 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/print.dart'; import 'package:sefer_driver/print.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:video_player/video_player.dart'; import 'package:video_player/video_player.dart';

View File

@@ -3,8 +3,8 @@ import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'dart:async'; import 'dart:async';
import '../../../constant/links.dart'; import '../../../constant/links.dart';
@@ -237,6 +237,30 @@ class HomeCaptainController extends GetxController {
update(); update();
} }
Map walletDriverPointsDate = {};
Future getCaptainWalletFromBuyPoints() async {
// isLoading = true;
update();
var res = await CRUD().get(
link: AppLink.getDriverPaymentPoints,
payload: {'driverID': box.read(BoxName.driverID).toString()},
);
isLoading = false;
// update();
if (res != 'failure') {
walletDriverPointsDate = jsonDecode(res);
double totalPointsDouble = double.parse(
walletDriverPointsDate['message'][0]['total_amount'].toString());
totalPoints = totalPointsDouble.toStringAsFixed(0);
update();
} else {
totalPoints = '0';
}
}
@override @override
void onInit() async { void onInit() async {
// await locationBackController.requestLocationPermission(); // await locationBackController.requestLocationPermission();
@@ -251,8 +275,9 @@ class HomeCaptainController extends GetxController {
getCountRideToday(); getCountRideToday();
getAllPayment(); getAllPayment();
startPeriodicExecution(); startPeriodicExecution();
await getCaptainWalletFromBuyPoints();
onMapCreated(mapHomeCaptainController!); onMapCreated(mapHomeCaptainController!);
totalPoints = Get.find<CaptainWalletController>().totalPoints.toString(); // totalPoints = Get.find<CaptainWalletController>().totalPoints.toString();
getRefusedOrderByCaptain(); getRefusedOrderByCaptain();
// LocationController().getLocation(); // LocationController().getLocation();
super.onInit(); super.onInit();
@@ -324,7 +349,7 @@ class HomeCaptainController extends GetxController {
payload: {'driverID': box.read(BoxName.driverID).toString()}); payload: {'driverID': box.read(BoxName.driverID).toString()});
if (res != 'failure') { if (res != 'failure') {
data = jsonDecode(res); data = jsonDecode(res);
totalMoneyToday = data['message'][0]['todayAmount']; totalMoneyToday = data['message'][0]['todayAmount'].toString();
update(); update();
} else {} } else {}

View File

@@ -1,17 +1,14 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
import 'package:SEFER/controller/home/captin/order_request_controller.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:bubble_head/bubble.dart'; import 'package:bubble_head/bubble.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_polyline_algorithm/google_polyline_algorithm.dart'; import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import '../../../constant/api_key.dart'; import '../../../constant/api_key.dart';
@@ -20,6 +17,7 @@ import '../../../constant/colors.dart';
import '../../../constant/links.dart'; import '../../../constant/links.dart';
import '../../../constant/table_names.dart'; import '../../../constant/table_names.dart';
import '../../../main.dart'; import '../../../main.dart';
import '../../../print.dart';
import '../../../views/Rate/rate_passenger.dart'; import '../../../views/Rate/rate_passenger.dart';
import '../../../views/home/Captin/home_captain/home_captin.dart'; import '../../../views/home/Captin/home_captain/home_captin.dart';
import '../../firebase/firbase_messge.dart'; import '../../firebase/firbase_messge.dart';
@@ -187,6 +185,14 @@ class MapDriverController extends GetxController {
"id": rideId.toString(), // Convert to String "id": rideId.toString(), // Convert to String
"status": 'CancelFromDriverAfterApply' "status": 'CancelFromDriverAfterApply'
}); });
CRUD().postFromDialogue(
link: '${AppLink.seferCairoServer}/driver_order/add.php',
payload: {
'driver_id': box.read(BoxName.driverID).toString(),
// box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'CancelFromDriverAfterApply'
});
await CRUD().post( await CRUD().post(
link: link:
"${AppLink.seferCairoServer}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php", "${AppLink.seferCairoServer}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
@@ -202,6 +208,14 @@ class MapDriverController extends GetxController {
"id": rideId.toString(), // Convert to String "id": rideId.toString(), // Convert to String
"status": 'CancelFromDriverAfterApply' "status": 'CancelFromDriverAfterApply'
}); });
CRUD().postFromDialogue(
link: '${AppLink.endPoint}/driver_order/add.php',
payload: {
'driver_id': box.read(BoxName.driverID).toString(),
// box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'CancelFromDriverAfterApply'
});
CRUD().post( CRUD().post(
link: link:
"${AppLink.endPoint}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php", "${AppLink.endPoint}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
@@ -382,12 +396,24 @@ class MapDriverController extends GetxController {
'rideTimeStart': DateTime.now().toString(), 'rideTimeStart': DateTime.now().toString(),
'status': 'Begin', 'status': 'Begin',
}); });
CRUD().post(link: AppLink.addDriverOrder, payload: {
'driver_id': box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'Begin'
});
if (AppLink.endPoint != AppLink.seferCairoServer) { if (AppLink.endPoint != AppLink.seferCairoServer) {
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: { CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
'id': rideId, 'id': rideId,
'rideTimeStart': DateTime.now().toString(), 'rideTimeStart': DateTime.now().toString(),
'status': 'Begin', 'status': 'Begin',
}); });
CRUD().post(
link: '${AppLink.endPoint}/rides/driver_order/add.php',
payload: {
'driver_id': box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'Begin'
});
} }
FirebaseMessagesController().sendNotificationToDriverMAP('RideIsBegin', FirebaseMessagesController().sendNotificationToDriverMAP('RideIsBegin',
box.read(BoxName.name).toString(), tokenPassenger, [], 'start.wav'); box.read(BoxName.name).toString(), tokenPassenger, [], 'start.wav');
@@ -493,6 +519,11 @@ class MapDriverController extends GetxController {
'rideTimeStart': DateTime.now().toString(), 'rideTimeStart': DateTime.now().toString(),
'status': 'CancelAfterWait', 'status': 'CancelAfterWait',
}); });
CRUD().post(link: AppLink.addDriverOrder, payload: {
'driver_id': box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'CancelAfterWait'
});
if (AppLink.endPoint != AppLink.seferCairoServer) { if (AppLink.endPoint != AppLink.seferCairoServer) {
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: { CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
@@ -500,6 +531,11 @@ class MapDriverController extends GetxController {
'rideTimeStart': DateTime.now().toString(), 'rideTimeStart': DateTime.now().toString(),
'status': 'CancelAfterWait', 'status': 'CancelAfterWait',
}); });
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
'driver_id': box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'CancelAfterWait'
});
} }
var paymentTokenWait = var paymentTokenWait =
await generateTokenDriver(costOfWaiting5Minute.toString()); await generateTokenDriver(costOfWaiting5Minute.toString());
@@ -547,23 +583,25 @@ class MapDriverController extends GetxController {
Get.find<LocationController>().myLocation.latitude, Get.find<LocationController>().myLocation.latitude,
Get.find<LocationController>().myLocation.longitude, Get.find<LocationController>().myLocation.longitude,
); );
MyDialog().getDialog('Are you sure to exit ride ?'.tr, '', () {
// if (distanceToDestination > 900 || if (distanceToDestination > double.parse(distance.toString()) / 3) {
// (double.parse(distance.toString()) < 1000 && Log.print('distanceToDestination: ${distanceToDestination}');
// distanceToDestination > 150)) {
Get.back(); MyDialog().getDialog(
finishRideFromDriver1(); 'Are you sure to exit ride?'.tr,
// } else { '',
// Get.back(); () {
// if (distanceToDestination <= 150) { Get.back();
// // todo add scam from start point and dont move finishRideFromDriver1();
// // finishRideFromDriver1(); },
// } );
// MyDialog().getDialog('you are not moved yet !'.tr, '', () { } else {
// Get.back(); MyDialog().getDialog(
// }); "You haven't moved sufficiently!".tr,
// } '',
}); () => Get.back(),
);
}
} }
String paymentToken = ''; String paymentToken = '';
@@ -618,6 +656,13 @@ class MapDriverController extends GetxController {
'status': 'Finished', 'status': 'Finished',
'price': totalCost, 'price': totalCost,
}); });
CRUD().post(
link: "${AppLink.seferCairoServer}/ride/driver_order/update.php",
payload: {
// 'driver_id': box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'Finished'
});
if (AppLink.endPoint != AppLink.seferCairoServer) { if (AppLink.endPoint != AppLink.seferCairoServer) {
CRUD().post( CRUD().post(
link: "${AppLink.endPoint}/ride/rides/update.php", link: "${AppLink.endPoint}/ride/rides/update.php",
@@ -628,6 +673,13 @@ class MapDriverController extends GetxController {
'price': totalCost, 'price': totalCost,
}, },
); );
CRUD().post(
link: "${AppLink.endPoint}/ride/driver_order/update.php",
payload: {
// 'driver_id': box.read(BoxName.driverID).toString(),
'order_id': rideId.toString(),
'status': 'Finished'
});
} }
if (walletChecked == 'true') { if (walletChecked == 'true') {
paymentToken = await generateTokenPassenger( paymentToken = await generateTokenPassenger(

View File

@@ -3,8 +3,8 @@ import 'dart:convert';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter_overlay_window/flutter_overlay_window.dart'; import 'package:flutter_overlay_window/flutter_overlay_window.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'dart:math' as math; import 'dart:math' as math;
import '../../../constant/box_name.dart'; import '../../../constant/box_name.dart';

View File

@@ -1,16 +1,16 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/firebase/local_notification.dart'; import 'package:sefer_driver/controller/firebase/local_notification.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
class CaptainWalletController extends GetxController { class CaptainWalletController extends GetxController {
bool isLoading = false; bool isLoading = false;
@@ -348,7 +348,7 @@ class CaptainWalletController extends GetxController {
@override @override
void onInit() async { void onInit() async {
getKazanPercent(); // getKazanPercent();
await refreshCaptainWallet(); await refreshCaptainWallet();
super.onInit(); super.onInit();

View File

@@ -1,11 +1,11 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/api_key.dart'; import 'package:sefer_driver/constant/api_key.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/print.dart'; import 'package:sefer_driver/print.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:secure_string_operations/secure_string_operations.dart'; import 'package:secure_string_operations/secure_string_operations.dart';

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import '../../constant/api_key.dart'; import '../../constant/api_key.dart';
import '../../constant/links.dart'; import '../../constant/links.dart';

View File

@@ -2,13 +2,13 @@ import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
class FeedBackController extends GetxController { class FeedBackController extends GetxController {
bool isLoading = false; bool isLoading = false;

View File

@@ -1,10 +1,10 @@
import 'dart:convert'; import 'dart:convert';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
class OrderHistoryController extends GetxController { class OrderHistoryController extends GetxController {
List<dynamic> orderHistoryListPassenger = []; List<dynamic> orderHistoryListPassenger = [];

View File

@@ -1,10 +1,10 @@
import 'dart:convert'; import 'dart:convert';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
class PromosController extends GetxController { class PromosController extends GetxController {
List<dynamic> promoList = []; List<dynamic> promoList = [];

View File

@@ -1,7 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'package:SEFER/controller/auth/captin/login_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
import 'package:SEFER/views/home/on_boarding_page.dart'; import 'package:sefer_driver/views/home/on_boarding_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:package_info_plus/package_info_plus.dart'; import 'package:package_info_plus/package_info_plus.dart';
@@ -66,9 +66,10 @@ class SplashScreenController extends GetxController
: box.read(BoxName.emailDriver) != null && : box.read(BoxName.emailDriver) != null &&
box.read(BoxName.phoneDriver) != null && box.read(BoxName.phoneDriver) != null &&
box.read(BoxName.phoneVerified) == '1' box.read(BoxName.phoneVerified) == '1'
? await Get.put(LoginDriverController()).loginUsingCredentials( ? await Get.put(LoginDriverController())
box.read(BoxName.driverID).toString(), .loginWithGoogleCredential(
box.read(BoxName.emailDriver)) box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver))
: Get.off(() => LoginCaptin()); : Get.off(() => LoginCaptin());
}); });
} }

View File

@@ -94,61 +94,14 @@ class LocaleController extends GetxController {
@override @override
void onInit() { void onInit() {
String storedLang = box.read(BoxName.lang) ?? ""; String? storedLang = box.read(BoxName.lang);
switch (storedLang) { if (storedLang == null) {
case "ar": // Use device language if no language is stored
language = const Locale("ar"); storedLang = Get.deviceLocale!.languageCode;
appTheme = themeArabic; box.write(BoxName.lang, storedLang);
break;
case "en":
language = const Locale("en");
appTheme = themeEnglish;
break;
case "tr":
language = const Locale("tr");
appTheme = themeEnglish;
break;
case "fr":
language = const Locale("fr");
appTheme = themeEnglish;
break;
case "it":
language = const Locale("it");
appTheme = themeEnglish;
break;
case "de":
language = const Locale("de");
appTheme = themeEnglish;
break;
case "el":
language = const Locale("el");
appTheme = themeEnglish;
break;
case "es":
language = const Locale("es");
appTheme = themeEnglish;
break;
case "fa":
language = const Locale("fa");
appTheme = themeArabic;
break;
case "zh":
language = const Locale("zh");
appTheme = themeEnglish;
break;
case "ru":
language = const Locale("ru");
appTheme = themeEnglish;
break;
case "hi":
language = const Locale("hi");
appTheme = themeEnglish;
break;
default:
language = Locale(Get.deviceLocale!.languageCode);
appTheme = themeEnglish;
break;
} }
changeLang(storedLang);
super.onInit(); super.onInit();
} }
} }

View File

@@ -153,14 +153,33 @@ class MyTranslation extends Translations {
"National Bank of Greece": "البنك الوطني اليوناني", "National Bank of Greece": "البنك الوطني اليوناني",
"Central Bank Of Egypt": "البنك المركزي المصري", "Central Bank Of Egypt": "البنك المركزي المصري",
"ATTIJARIWAFA BANK Egypt": "البنك التجاري وفا مصر", "ATTIJARIWAFA BANK Egypt": "البنك التجاري وفا مصر",
"Morning Promo": "بونص الصباح", "Morning Promo": "بونص الصباح", "Show my Cars": "عرض سياراتي",
"Add criminal page": "إضافة الفيش الجنائي",
"Add new car": "إضافة سيارة جديدة",
'You have gift 300 L.E': "لديك هدية بقيمة 300 جنيه.", 'You have gift 300 L.E': "لديك هدية بقيمة 300 جنيه.",
"VIP Order": "طلب VIP", "VIP Order Accepted": "تم قبول طلب VIP.", "VIP Order": "طلب VIP", "VIP Order Accepted": "تم قبول طلب VIP.",
"The driver accepted your trip": "السائق قبل رحلتك.", "The driver accepted your trip": "السائق قبل رحلتك.",
"this is count of your all trips in the morning promo today from 7:00am-10:00am": "this is count of your all trips in the morning promo today from 7:00am-10:00am":
"هذا عدد جميع رحلاتك في بونص الصباح اليوم من الساعة 7:00 صباحًا حتى 10:00 صباحًا", "هذا عدد جميع رحلاتك في بونص الصباح اليوم من الساعة 7:00 صباحًا حتى 10:00 صباحًا",
"Morning Promo Rides": "رحلات عرض الصباح", "Morning Promo Rides": "رحلات عرض الصباح",
'Are you sure to make this car as default':
'هل أنت متأكد من تعيين هذه السيارة كافتراضية؟',
"Sign In by Google": "تسجيل الدخول باستخدام جوجل",
'Not updated': 'لم يتم التحديث',
'Updated': 'تم التحديث',
'Remaining time': 'الوقت المتبقي',
'Add bank Account': 'إضافة حساب بنكي',
'Are you sure to exit ride?': 'هل أنت متأكد من إنهاء الرحلة؟',
"seconds": "ثواني",
'You will cancel registration': 'ستقوم بإلغاء التسجيل',
"Create new Account": "إنشاء حساب جديد",
"You haven't moved sufficiently!": "أنت لم تتحرك بما فيه الكفاية!",
'This for new registration': ' للتسجيل الجديد',
'You have received a gift token!': 'لقد حصلت على رمز هدية!',
"Afternoon Promo": "بونص الظهر", "Afternoon Promo": "بونص الظهر",
'for ': 'ل ',
"You dont have invitation code": "ليس لديك رمز دعوة.",
"this is count of your all trips in the Afternoon promo today from 3:00pm-6:00 pm": "this is count of your all trips in the Afternoon promo today from 3:00pm-6:00 pm":
"هذا عدد جميع رحلاتك في بونص بعد الظهر اليوم من الساعة 3:00 مساءً حتى 6:00 مساءً", "هذا عدد جميع رحلاتك في بونص بعد الظهر اليوم من الساعة 3:00 مساءً حتى 6:00 مساءً",
"Afternoon Promo Rides": "رحلات بونص بعد الظهر", "Afternoon Promo Rides": "رحلات بونص بعد الظهر",

View File

@@ -1,8 +1,8 @@
import 'dart:convert'; import 'dart:convert';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../constant/box_name.dart'; import '../../constant/box_name.dart';
import '../../constant/links.dart'; import '../../constant/links.dart';

View File

@@ -1,7 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import '../../constant/box_name.dart'; import '../../constant/box_name.dart';
import '../../constant/links.dart'; import '../../constant/links.dart';

View File

@@ -1,13 +1,15 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/controller/functions/location_controller.dart'; import 'package:sefer_driver/controller/functions/location_controller.dart';
import 'package:geolocator/geolocator.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../constant/links.dart'; import '../../constant/links.dart';
import '../../main.dart'; import '../../main.dart';
import '../../print.dart';
import '../../views/widgets/mydialoug.dart'; import '../../views/widgets/mydialoug.dart';
import '../functions/crud.dart'; import '../functions/crud.dart';
@@ -16,22 +18,6 @@ class RideAvailableController extends GetxController {
Map rideAvailableMap = {}; Map rideAvailableMap = {};
late LatLng southwest; late LatLng southwest;
late LatLng northeast; late LatLng northeast;
// LatLngBounds calculateBounds(
// double centerLat, double centerLng, double radius) {
// // double radius = 4000; // 10 km in meters
// southwest = LatLng(
// centerLat - (radius / 111000),
// centerLng - (radius / (111000 * cos(centerLat))),
// );
// northeast = LatLng(
// centerLat + (radius / 111000),
// centerLng + (radius / (111000 * cos(centerLat))),
// );
// return LatLngBounds(southwest: southwest, northeast: northeast);
// }
LatLngBounds calculateBounds(double lat, double lng, double radiusInMeters) { LatLngBounds calculateBounds(double lat, double lng, double radiusInMeters) {
const double earthRadius = 6378137.0; // Earth's radius in meters const double earthRadius = 6378137.0; // Earth's radius in meters
@@ -67,22 +53,48 @@ class RideAvailableController extends GetxController {
); );
} }
double calculateDistance(String startLocation) {
List<String> startLocationParts = startLocation.split(',');
double startLatitude = double.parse(startLocationParts[0]);
double startLongitude = double.parse(startLocationParts[1]);
// Assuming currentLocation is the driver's location
double currentLatitude = Get.find<LocationController>().latitude;
double currentLongitude = Get.find<LocationController>().longitude;
return Geolocator.distanceBetween(
currentLatitude,
currentLongitude,
startLatitude,
startLongitude,
);
}
// void sortRidesByDistance() {
// rideAvailableMap['message'].sort((a, b) {
// double distanceA = calculateDistance(a['start_location']);
// double distanceB = calculateDistance(b['start_location']);
// return distanceA.compareTo(distanceB);
// });
// }
getRideAvailable() async { getRideAvailable() async {
isLoading = true; isLoading = true;
LatLngBounds bounds = calculateBounds( LatLngBounds bounds = calculateBounds(
Get.find<LocationController>().myLocation.latitude, Get.find<LocationController>().myLocation.latitude,
Get.find<LocationController>().myLocation.longitude, Get.find<LocationController>().myLocation.longitude,
4000); 4000);
var res = await CRUD().get( var payload = {
link: AppLink.getRideWaiting, // "carType": box.read(BoxName.carTypeOfDriver).toString(),
payload: { 'southwestLat': bounds.southwest.latitude.toString(),
"carType": box.read(BoxName.carTypeOfDriver).toString(), 'southwestLon': bounds.southwest.longitude.toString(),
'southwestLat': bounds.southwest.latitude.toString(), 'northeastLat': bounds.northeast.latitude.toString(),
'southwestLon': bounds.southwest.longitude.toString(), 'northeastLon': bounds.northeast.longitude.toString(),
'northeastLat': bounds.northeast.latitude.toString(), };
'northeastLon': bounds.northeast.longitude.toString(), Log.print('payload: ${payload}');
}, var res = await CRUD().get(link: AppLink.getRideWaiting, payload: payload);
); Log.print('res: ${res}');
if (res != 'failure') { if (res != 'failure') {
rideAvailableMap = jsonDecode(res); rideAvailableMap = jsonDecode(res);
isLoading = false; isLoading = false;
@@ -92,16 +104,6 @@ class RideAvailableController extends GetxController {
Get.back(); Get.back();
Get.back(); Get.back();
}); });
// Get.defaultDialog(
// title: "No Rides Available".tr,
// middleText: '',
// titleStyle: AppStyle.title,
// confirm: MyElevatedButton(
// title: 'Ok'.tr,
// onPressed: () {
// Get.back();
// Get.back();
// }));
} }
} }

View File

@@ -1,11 +1,11 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
class DriverWalletHistoryController extends GetxController { class DriverWalletHistoryController extends GetxController {
bool isLoading = false; bool isLoading = false;

View File

@@ -1,10 +1,10 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/api_key.dart'; import 'package:sefer_driver/constant/api_key.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/functions/tts.dart'; import 'package:sefer_driver/controller/functions/tts.dart';
import 'package:SEFER/controller/payment/paymob/paymob_response.dart'; import 'package:sefer_driver/controller/payment/paymob/paymob_response.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_paypal/flutter_paypal.dart'; import 'package:flutter_paypal/flutter_paypal.dart';

View File

@@ -1,4 +1,4 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:dio/dio.dart' as dio; import 'package:dio/dio.dart' as dio;
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';

View File

@@ -1,5 +1,5 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart'; import 'package:webview_flutter/webview_flutter.dart';

View File

@@ -1,5 +1,5 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart'; import 'package:webview_flutter/webview_flutter.dart';

View File

@@ -2,10 +2,10 @@ import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
class CaptainProfileController extends GetxController { class CaptainProfileController extends GetxController {
bool isLoading = false; bool isLoading = false;

View File

@@ -2,11 +2,11 @@ import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:sefer_driver/views/widgets/my_textField.dart';
import '../../views/widgets/elevated_btn.dart'; import '../../views/widgets/elevated_btn.dart';

View File

@@ -1,5 +1,5 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
class SettingController extends GetxController { class SettingController extends GetxController {

View File

@@ -1,12 +1,12 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
// Import url_launcher to open the app store // Import url_launcher to open the app store

View File

@@ -1,17 +1,17 @@
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/controller/payment/payment_controller.dart'; import 'package:sefer_driver/controller/payment/payment_controller.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart'; import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../home/payment/captain_wallet_controller.dart'; import '../home/payment/captain_wallet_controller.dart';
@@ -70,23 +70,7 @@ class RateController extends GetxController {
'token': paymentToken3, 'token': paymentToken3,
'driverID': box.read(BoxName.driverID).toString(), 'driverID': box.read(BoxName.driverID).toString(),
}); });
// }
// else {
// double pointsSubtraction = 0;
// pointsSubtraction = remainingFee *
// (-1) /
// double.parse(
// Get.find<MapDriverController>().kazan); // for egypt /100
// var paymentToken4 = await Get.find<MapDriverController>()
// .generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
// var res = await CRUD()
// .post(link: AppLink.addDriversWalletPoints, payload: {
// 'paymentID': 'rideId$rideId',
// 'amount': (pointsSubtraction).toStringAsFixed(0),
// 'paymentMethod': 'Remainder',
// 'token': paymentToken4,
// 'driverID': box.read(BoxName.driverID).toString(),
// });
FirebaseMessagesController().sendNotificationToDriverMAP( FirebaseMessagesController().sendNotificationToDriverMAP(
'Wallet Added'.tr, 'Wallet Added'.tr,
'Wallet Added${(remainingFee).toStringAsFixed(0)}'.tr, 'Wallet Added${(remainingFee).toStringAsFixed(0)}'.tr,
@@ -101,7 +85,7 @@ class RateController extends GetxController {
}); });
} else { } else {
Get.defaultDialog( Get.defaultDialog(
title: '${'The price must be over than '.tr}$priceOfTrip', title: '${'The price must be over than '.tr} $priceOfTrip',
middleText: '', middleText: '',
confirm: MyElevatedButton( confirm: MyElevatedButton(
title: 'Ok'.tr, title: 'Ok'.tr,

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import '../../constant/colors.dart'; import '../../constant/colors.dart';

View File

@@ -2,9 +2,9 @@ import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'dart:math'; import 'dart:math';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/controller/payment/paymob/paymob_response.dart'; import 'package:sefer_driver/controller/payment/paymob/paymob_response.dart';
import 'package:SEFER/views/home/Captin/orderCaptin/order_request_page.dart'; import 'package:sefer_driver/views/home/Captin/orderCaptin/order_request_page.dart';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';

View File

@@ -1,4 +1,4 @@
import 'package:SEFER/constant/table_names.dart'; import 'package:sefer_driver/constant/table_names.dart';
import 'package:sqflite/sqflite.dart'; import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart'; import 'package:path/path.dart';

View File

@@ -1,10 +1,10 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:animated_text_kit/animated_text_kit.dart'; import 'package:animated_text_kit/animated_text_kit.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/info.dart'; import 'package:sefer_driver/constant/info.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'controller/home/splash_screen_controlle.dart'; import 'controller/home/splash_screen_controlle.dart';
import 'main.dart'; import 'main.dart';

View File

@@ -1,5 +1,5 @@
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:sefer_driver/views/widgets/my_textField.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../controller/rate/rate_app_controller.dart'; import '../../controller/rate/rate_app_controller.dart';

View File

@@ -1,12 +1,12 @@
import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:sefer_driver/views/widgets/my_textField.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_rating_bar/flutter_rating_bar.dart'; import 'package:flutter_rating_bar/flutter_rating_bar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../constant/style.dart'; import '../../constant/style.dart';
import '../../controller/rate/rate_conroller.dart'; import '../../controller/rate/rate_conroller.dart';
@@ -51,10 +51,10 @@ class RatePassenger extends StatelessWidget {
child: Padding( child: Padding(
padding: const EdgeInsets.all(4), padding: const EdgeInsets.all(4),
child: Text( child: Text(
(double.parse(controller.price.toString()) * (double.parse(controller.price.toString()) -
.12 + double.parse(controller.price
double.parse( .toString()) *
controller.price.toString())) .12)
.toStringAsFixed(2), .toStringAsFixed(2),
style: AppStyle.number.copyWith( style: AppStyle.number.copyWith(
color: AppColor.redColor, color: AppColor.redColor,

View File

@@ -1,11 +1,11 @@
import 'package:fl_chart/fl_chart.dart'; import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/info.dart'; import 'package:sefer_driver/constant/info.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart'; import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import '../../controller/home/captin/duration_controller .dart'; import '../../controller/home/captin/duration_controller .dart';

View File

@@ -1,15 +1,15 @@
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/constant/table_names.dart'; import 'package:sefer_driver/constant/table_names.dart';
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
import 'package:SEFER/controller/functions/ocr_controller.dart'; import 'package:sefer_driver/controller/functions/ocr_controller.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart'; import 'package:sefer_driver/views/widgets/mycircular.dart';
import '../../../constant/links.dart'; import '../../../constant/links.dart';
import '../../../controller/functions/gemeni.dart'; import '../../../controller/functions/gemeni.dart';

View File

@@ -1,7 +1,7 @@
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../../../constant/colors.dart'; import '../../../../constant/colors.dart';
import '../../../../constant/style.dart'; import '../../../../constant/style.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/functions/ocr_controller.dart'; import 'package:sefer_driver/controller/functions/ocr_controller.dart';
import '../../../constant/style.dart'; import '../../../constant/style.dart';
import '../../../controller/auth/captin/ml_google_doc.dart'; import '../../../controller/auth/captin/ml_google_doc.dart';

View File

@@ -1,8 +1,10 @@
import 'package:SEFER/controller/functions/gemeni.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/controller/functions/tts.dart'; import 'package:sefer_driver/controller/functions/gemeni.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/controller/functions/tts.dart';
import 'package:SEFER/views/widgets/my_circular_indicator_timer.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:sefer_driver/views/widgets/my_circular_indicator_timer.dart';
import 'package:sefer_driver/views/widgets/my_textField.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@@ -10,6 +12,7 @@ import '../../../../constant/colors.dart';
import '../../../../constant/links.dart'; import '../../../../constant/links.dart';
import '../../../../constant/style.dart'; import '../../../../constant/style.dart';
import '../../../../controller/functions/package_info.dart'; import '../../../../controller/functions/package_info.dart';
import '../../../../main.dart';
import '../../../widgets/my_scafold.dart'; import '../../../widgets/my_scafold.dart';
class EgyptCardAI extends StatelessWidget { class EgyptCardAI extends StatelessWidget {
@@ -36,6 +39,11 @@ class EgyptCardAI extends StatelessWidget {
}), }),
body: [ body: [
GetBuilder<AI>(builder: (controller) { GetBuilder<AI>(builder: (controller) {
if (box.read(BoxName.isInstall) != null ||
box.read(BoxName.isInstall).toString() != '') {
controller.updateInvitationCodeFromRegister();
}
return controller.isLoading return controller.isLoading
? MyCircularProgressIndicatorWithTimer( ? MyCircularProgressIndicatorWithTimer(
isLoading: controller.isLoading, isLoading: controller.isLoading,
@@ -117,153 +125,134 @@ class EgyptCardAI extends StatelessWidget {
right: 30, right: 30,
left: 30, left: 30,
child: GetBuilder<AI>(builder: (controller) { child: GetBuilder<AI>(builder: (controller) {
return controller.isInviteDriverFound == false return controller.approved == false
? Padding( ? Container(
padding: const EdgeInsets.symmetric(vertical: 60), decoration: AppStyle.boxDecoration1,
child: Container( child: Padding(
decoration: AppStyle.boxDecoration1, padding: const EdgeInsets.all(8.0),
child: Padding( child: Column(
padding: const EdgeInsets.all(8.0), crossAxisAlignment: CrossAxisAlignment.center,
child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround,
mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
children: [ Text(
Text( 'Approve Driver Documents'.tr,
"Do you have an invitation code from another driver?" style: AppStyle.title,
.tr, ),
style: AppStyle.title, const SizedBox(height: 8),
textAlign: TextAlign.center, Text(
), 'To become a ride-sharing driver on the Sefer app, you need to upload your driver\'s license, ID document, and car registration document. Our AI system will instantly review and verify their authenticity in just 2-3 minutes. If your documents are approved, you can start working as a driver on the Sefer app. Please note, submitting fraudulent documents is a serious offense and may result in immediate termination and legal consequences.'
const SizedBox( .tr,
height: 30, style: AppStyle.title,
), textAlign: TextAlign.center,
Form( ),
key: controller.formKey, const SizedBox(height: 8),
child: MyTextForm( Container(
controller: decoration: AppStyle.boxDecoration1,
controller.invitationCodeController, child: TextButton.icon(
label: "Paste the code here".tr, onPressed: () async {
hint: "Paste the code here".tr, controller.startTimer();
type: TextInputType.name, await textToSpeechController.speakText(
'To become a ride-sharing driver on the Sefer app, you need to upload your driver\'s license, ID document, and car registration document. Our AI system will instantly review and verify their authenticity in just 2-3 minutes. If your documents are approved, you can start working as a driver on the Sefer app. Please note, submitting fraudulent documents is a serious offense and may result in immediate termination and legal consequences.'
.tr);
},
icon: const Icon(
Icons.headphones,
size: 50,
),
label: Text(
'Press to hear'.tr,
style: AppStyle.title,
), ),
), ),
const SizedBox( ),
height: 30, const SizedBox(height: 8),
), // textToSpeechController.isComplete
MyElevatedButton( // ? Row(
title: 'Ok'.tr, // mainAxisAlignment:
onPressed: () async { // MainAxisAlignment.spaceAround,
controller // children: [
.updateInvitationCodeFromRegister(); // MyElevatedButton(
}), // title: 'OK'.tr,
MyElevatedButton( // kolor: AppColor.greenColor,
kolor: AppColor.yellowColor, // onPressed: () {
title: "No, I don't have a code".tr, // controller.setApproved();
onPressed: () { // }),
controller.isInviteDriverFound = true; // MyElevatedButton(
controller.update(); // title: 'cancel'.tr,
}) // kolor: AppColor.redColor,
], // onPressed: () {
), // Get.defaultDialog(
// title:
// 'You will cancel registeration'
// .tr,
// middleText: '',
// content: IconButton(
// onPressed: () async {
// await textToSpeechController
// .speakText(
// 'You will cancel registeration'
// .tr);
// },
// icon: const Icon(
// Icons.headphones),
// ),
// confirm: MyElevatedButton(
// title: 'OK'.tr,
// kolor: AppColor.redColor,
// onPressed: () {
// Get.back();
// Get.back();
// }),
// cancel: MyElevatedButton(
// title: 'Cancel'.tr,
// kolor: AppColor.greenColor,
// onPressed: () {
// Get.back();
// }));
// }),
// ],
// )
// : const SizedBox()
controller.isTimerComplete
? Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: [
MyElevatedButton(
title: 'Ok'.tr,
kolor: AppColor.greenColor,
onPressed: () {
controller.setApproved();
}),
MyElevatedButton(
title: 'Cancel'.tr,
kolor: AppColor.redColor,
onPressed: () {
MyDialog().getDialog(
'You will cancel registration'
.tr,
'', () async {
Get.back();
Get.back();
});
}),
],
)
: Column(
children: [
CircularProgressIndicator(
value: controller.progressValue,
),
Text(
'${'Remaining time'.tr}: ${controller.remainingSeconds} ${"seconds".tr}',
),
],
),
],
), ),
), ),
) )
: controller.approved == false : const SizedBox();
? Container(
decoration: AppStyle.boxDecoration1,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text(
'Approve Driver Documents'.tr,
style: AppStyle.title,
),
const SizedBox(height: 8),
Text(
'To become a ride-sharing driver on the Sefer app, you need to upload your driver\'s license, ID document, and car registration document. Our AI system will instantly review and verify their authenticity in just 2-3 minutes. If your documents are approved, you can start working as a driver on the Sefer app. Please note, submitting fraudulent documents is a serious offense and may result in immediate termination and legal consequences.'
.tr,
style: AppStyle.title,
textAlign: TextAlign.center,
),
const SizedBox(height: 8),
Container(
decoration: AppStyle.boxDecoration1,
child: TextButton.icon(
onPressed: () async {
await textToSpeechController.speakText(
'To become a ride-sharing driver on the Sefer app, you need to upload your driver\'s license, ID document, and car registration document. Our AI system will instantly review and verify their authenticity in just 2-3 minutes. If your documents are approved, you can start working as a driver on the Sefer app. Please note, submitting fraudulent documents is a serious offense and may result in immediate termination and legal consequences.'
.tr);
},
icon: const Icon(
Icons.headphones,
size: 50,
),
label: Text(
'Press to hear'.tr,
style: AppStyle.title,
),
),
),
const SizedBox(height: 8),
GetBuilder<TextToSpeechController>(
builder: (textToSpeechController) {
return textToSpeechController.isComplete
? Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: [
MyElevatedButton(
title: 'OK'.tr,
kolor: AppColor.greenColor,
onPressed: () {
controller.setApproved();
}),
MyElevatedButton(
title: 'cancel'.tr,
kolor: AppColor.redColor,
onPressed: () {
Get.defaultDialog(
title:
'You will cancel registeration'
.tr,
middleText: '',
content: IconButton(
onPressed: () async {
await textToSpeechController
.speakText(
'You will cancel registeration'
.tr);
},
icon: const Icon(
Icons.headphones),
),
confirm: MyElevatedButton(
title: 'OK'.tr,
kolor:
AppColor.redColor,
onPressed: () {
Get.back();
Get.back();
}),
cancel: MyElevatedButton(
title: 'Cancel'.tr,
kolor: AppColor
.greenColor,
onPressed: () {
Get.back();
}));
}),
],
)
: const SizedBox();
})
],
),
),
)
: const SizedBox();
}), }),
) )
], ],

View File

@@ -1,10 +1,10 @@
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:sefer_driver/views/widgets/my_textField.dart';
import 'package:SEFER/views/widgets/mycircular.dart'; import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,6 +1,6 @@
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart';

View File

@@ -1,7 +1,7 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -77,7 +77,7 @@ class CriminalDocumemtPage extends StatelessWidget {
], ],
); );
} else { } else {
await controller.addCriminalDeocuments(); await controller.addCriminalDocuments();
} }
}) })
: const SizedBox(), : const SizedBox(),

View File

@@ -1,17 +1,17 @@
import 'dart:convert'; import 'dart:convert';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart'; import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
class DriverCarController extends GetxController { class DriverCarController extends GetxController {
bool isLoading = false; bool isLoading = false;
List cars = []; List cars = [];
int? carId; // int? carId;
fetchCatrsForDrivers() async { fetchCatrsForDrivers() async {
isLoading = true; isLoading = true;
update(); update();
@@ -21,7 +21,7 @@ class DriverCarController extends GetxController {
if (res != 'failure') { if (res != 'failure') {
var d = jsonDecode(res)['message']; var d = jsonDecode(res)['message'];
cars = d; cars = d;
carId = cars.isEmpty ? 1 : cars.length + 1; // carId = cars.isEmpty ? 1 : cars.length + 1;
} }
isLoading = false; isLoading = false;
update(); update();
@@ -29,35 +29,35 @@ class DriverCarController extends GetxController {
addCarsForDrivers( addCarsForDrivers(
String vin, String vin,
String car_plate, String carPlate,
String make, String make,
String model, String model,
String year, String year,
String expiration_date, String expirationDate,
String color, String color,
String color_hex, String colorHex,
String address, String address,
String owner, String owner,
String registration_date, String registrationDate,
String displacement, String displacement,
String fuel) async { String fuel) async {
var res = await CRUD().post( var res = await CRUD().post(
link: AppLink.addNewCarsDrivers, link: AppLink.addRegisrationCar,
payload: { payload: {
"driverID": box.read(BoxName.driverID).toString(), "driverID": box.read(BoxName.driverID).toString(),
"vin": vin, "vin": vin ?? 'unknown',
"car_plate": car_plate, "car_plate": carPlate.toString(),
"make": make, "make": make ?? 'unknown',
"model": model, "model": model ?? 'unknown',
"year": year, "year": year ?? 'unknown',
"expiration_date": expiration_date, "expiration_date": expirationDate ?? 'unknown',
"color": color, "color": color ?? 'unknown',
"owner": owner, "owner": owner ?? 'unknown',
"color_hex": color_hex, "color_hex": colorHex ?? '#000000',
"address": address, "address": address ?? 'unknown',
"displacement": displacement, "displacement": displacement ?? 'unknown',
"fuel": fuel, "fuel": fuel ?? 'unknown',
"registration_date": registration_date, "registration_date": registrationDate ?? 'unknown',
}, },
); );
if (res != 'failure') { if (res != 'failure') {
@@ -69,7 +69,39 @@ class DriverCarController extends GetxController {
} }
} }
removeCar(String car) async {} // update carRegistration only and insert on it without tow column
Future<void> updateCarRegistration(String id, String driverID) async {
final body = {
'id': id,
'driverID': driverID,
};
// remove default before update
var response = await CRUD().post(
link: AppLink.makeDefaultCar,
payload: body,
);
if (response != 'failure') {
mySnackbarSuccess('Updated'.tr);
} else {
mySnackeBarError('Not updated'.tr);
}
}
//todo need review
removeCar(String carId) async {
isLoading = true;
update();
var res = await CRUD().post(link: AppLink.deleteNewCarsDrivers, payload: {
"id": carId.toString(),
});
if (res != 'failure') {
mySnackbarSuccess('deleted'.tr);
}
isLoading = false;
update();
}
@override @override
void onInit() { void onInit() {
fetchCatrsForDrivers(); fetchCatrsForDrivers();

View File

@@ -1,6 +1,6 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,6 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:SEFER/views/auth/captin/contact_us_page.dart'; import 'package:sefer_driver/views/auth/captin/contact_us_page.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -197,7 +197,7 @@ class LoginCaptin extends StatelessWidget {
.currentState! .currentState!
.validate()) { .validate()) {
await Get.find<LoginDriverController>() await Get.find<LoginDriverController>()
.loginUsingCredentials( .loginWithGoogleCredential(
controller controller
.passwordController .passwordController
.text, .text,
@@ -329,7 +329,7 @@ class LoginCaptin extends StatelessWidget {
box.write(BoxName.emailDriver, box.write(BoxName.emailDriver,
user.email); user.email);
Get.find<LoginDriverController>() Get.find<LoginDriverController>()
.loginUsingCredentials( .loginWithGoogleCredential(
box box
.read(BoxName.driverID) .read(BoxName.driverID)
.toString(), .toString(),

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/controller/functions/log_out.dart'; import 'package:sefer_driver/controller/functions/log_out.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
class LogoutCaptain extends StatelessWidget { class LogoutCaptain extends StatelessWidget {
const LogoutCaptain({super.key}); const LogoutCaptain({super.key});

View File

@@ -1,9 +1,9 @@
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../../constant/colors.dart'; import '../../../constant/colors.dart';
import '../../../controller/auth/google_sign.dart'; import '../../../controller/auth/google_sign.dart';

View File

@@ -1,10 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart'; import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
class VerifyEmailCaptainPage extends StatelessWidget { class VerifyEmailCaptainPage extends StatelessWidget {
VerifyEmailCaptainPage({super.key}); VerifyEmailCaptainPage({super.key});

View File

@@ -3,13 +3,13 @@ import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/auth/captin/login_captin.dart'; import 'package:sefer_driver/views/auth/captin/login_captin.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../constant/info.dart'; import '../../constant/info.dart';
import '../../controller/auth/login_controller.dart'; import '../../controller/auth/login_controller.dart';

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/auth/register_controller.dart'; import 'package:sefer_driver/controller/auth/register_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../constant/colors.dart'; import '../../constant/colors.dart';

View File

@@ -1,10 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/auth/register_controller.dart'; import 'package:sefer_driver/controller/auth/register_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
class VerifyEmailPage extends StatelessWidget { class VerifyEmailPage extends StatelessWidget {
const VerifyEmailPage({super.key}); const VerifyEmailPage({super.key});

View File

@@ -1,7 +1,7 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,5 +1,5 @@
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,12 +1,12 @@
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/controller/profile/setting_controller.dart'; import 'package:sefer_driver/controller/profile/setting_controller.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/views/lang/languages.dart'; import 'package:sefer_driver/views/lang/languages.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../../../controller/functions/vibrate.dart'; import '../../../../controller/functions/vibrate.dart';
import '../../../auth/country_widget.dart'; import '../../../auth/country_widget.dart';

View File

@@ -1,6 +1,6 @@
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,4 +1,4 @@
import 'package:SEFER/constant/info.dart'; import 'package:sefer_driver/constant/info.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:video_player/video_player.dart'; import 'package:video_player/video_player.dart';

View File

@@ -1,6 +1,6 @@
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart'; import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
class BottomBarController extends GetxController { class BottomBarController extends GetxController {
var currentIndex = 0.obs; var currentIndex = 0.obs;

View File

@@ -1,11 +1,11 @@
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart'; import 'package:sefer_driver/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/controller/functions/camer_controller.dart'; import 'package:sefer_driver/controller/functions/camer_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
class CameraWidgetCardId extends StatelessWidget { class CameraWidgetCardId extends StatelessWidget {
final CameraClassController cameraClassController = final CameraClassController cameraClassController =

View File

@@ -1,9 +1,9 @@
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../../constant/colors.dart'; import '../../../constant/colors.dart';
import '../../../controller/functions/location_controller.dart'; import '../../../controller/functions/location_controller.dart';

View File

@@ -1,4 +1,4 @@
import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,8 +1,8 @@
import 'package:SEFER/controller/functions/location_controller.dart'; import 'package:sefer_driver/controller/functions/location_controller.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/auth/captin/history_captain.dart'; import 'package:sefer_driver/controller/auth/captin/history_captain.dart';
import 'package:SEFER/controller/functions/launch.dart'; import 'package:sefer_driver/controller/functions/launch.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';

View File

@@ -1,22 +1,22 @@
import 'package:SEFER/constant/api_key.dart'; import 'package:sefer_driver/constant/api_key.dart';
import 'package:SEFER/constant/links.dart'; import 'package:sefer_driver/constant/links.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
import 'package:SEFER/views/Rate/rate_app_page.dart'; import 'package:sefer_driver/views/Rate/rate_app_page.dart';
import 'package:SEFER/views/auth/captin/contact_us_page.dart'; import 'package:sefer_driver/views/auth/captin/contact_us_page.dart';
import 'package:SEFER/views/auth/captin/invite_driver_screen.dart'; import 'package:sefer_driver/views/auth/captin/invite_driver_screen.dart';
import 'package:SEFER/views/notification/available_rides_page.dart'; import 'package:sefer_driver/views/notification/available_rides_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_rating_bar/flutter_rating_bar.dart'; import 'package:flutter_rating_bar/flutter_rating_bar.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/main.dart'; import 'package:sefer_driver/main.dart';
import 'package:SEFER/views/auth/captin/logout_captain.dart'; import 'package:sefer_driver/views/auth/captin/logout_captain.dart';
import 'package:SEFER/views/home/Captin/history/history_captain.dart'; import 'package:sefer_driver/views/home/Captin/history/history_captain.dart';
import 'package:SEFER/views/home/Captin/home_captain/help_captain.dart'; import 'package:sefer_driver/views/home/Captin/home_captain/help_captain.dart';
import 'package:SEFER/views/home/Captin/About%20Us/settings_captain.dart'; import 'package:sefer_driver/views/home/Captin/About%20Us/settings_captain.dart';
import 'package:SEFER/views/home/my_wallet/walet_captain.dart'; import 'package:sefer_driver/views/home/my_wallet/walet_captain.dart';
import 'package:SEFER/views/home/profile/profile_captain.dart'; import 'package:sefer_driver/views/home/profile/profile_captain.dart';
import 'package:SEFER/views/notification/notification_captain.dart'; import 'package:sefer_driver/views/notification/notification_captain.dart';
import '../../../../constant/colors.dart'; import '../../../../constant/colors.dart';
import '../../../../controller/functions/upload_image.dart'; import '../../../../controller/functions/upload_image.dart';
@@ -218,7 +218,7 @@ class UserAccountHeader extends StatelessWidget {
), ),
const SizedBox(height: 10), const SizedBox(height: 10),
Text( Text(
box.read(BoxName.nameDriver).toString(), '${box.read(BoxName.nameDriver).toString().split(' ')[0]} ${box.read(BoxName.nameDriver).toString().split(' ')[1]}',
style: const TextStyle( style: const TextStyle(
color: CupertinoColors.white, color: CupertinoColors.white,
fontSize: 18, fontSize: 18,

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/home/captin/help/help_controller.dart'; import 'package:sefer_driver/controller/home/captin/help/help_controller.dart';
import 'package:SEFER/views/home/Captin/home_captain/help_details_replay_page.dart'; import 'package:sefer_driver/views/home/Captin/home_captain/help_details_replay_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/style.dart'; import 'package:sefer_driver/constant/style.dart';
import 'package:SEFER/views/widgets/mycircular.dart'; import 'package:sefer_driver/views/widgets/mycircular.dart';
import '../../../../controller/home/captin/help/help_controller.dart'; import '../../../../controller/home/captin/help/help_controller.dart';
import '../../../widgets/my_scafold.dart'; import '../../../widgets/my_scafold.dart';

View File

@@ -1,15 +1,15 @@
import 'dart:io'; import 'dart:io';
import 'package:SEFER/constant/box_name.dart'; import 'package:sefer_driver/constant/box_name.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/notification/available_rides_page.dart'; import 'package:sefer_driver/views/notification/available_rides_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:SEFER/views/home/Captin/home_captain/drawer_captain.dart'; import 'package:sefer_driver/views/home/Captin/home_captain/drawer_captain.dart';
import 'package:SEFER/views/widgets/mycircular.dart'; import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:bubble_head/bubble.dart'; import 'package:bubble_head/bubble.dart';
import '../../../../constant/colors.dart'; import '../../../../constant/colors.dart';
@@ -100,93 +100,98 @@ class HomeCaptain extends StatelessWidget {
// liteModeEnabled: true, // liteModeEnabled: true,
); );
}), }),
Positioned( Positioned(
bottom: 10, bottom: 10,
right: Get.width * .1, right: Get.width * .1,
left: Get.width * .1, left: Get.width * .1,
child: const ConnectWidget()), child: const ConnectWidget()),
Positioned( Positioned(
top: 5, top: 5,
right: Get.width * .05, right: Get.width * .05,
left: Get.width * .05, left: Get.width * .05,
child: Container( child: GetBuilder<HomeCaptainController>(
decoration: AppStyle.boxDecoration, builder: (homeCaptainController) {
width: Get.width * .8, return Container(
height: 104, decoration: AppStyle.boxDecoration,
child: Center( width: Get.width * .8,
child: Column( height: 104,
crossAxisAlignment: CrossAxisAlignment.center, child: Center(
mainAxisAlignment: MainAxisAlignment.spaceBetween, child: Column(
children: [ crossAxisAlignment: CrossAxisAlignment.center,
Row( mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
const Icon( Row(
Entypo.wallet, mainAxisAlignment: MainAxisAlignment.center,
color: AppColor.greenColor, children: [
), const Icon(
Text( Entypo.wallet,
' You Earn today is '.tr + color: AppColor.greenColor,
homeCaptainController.totalMoneyToday,
style: AppStyle.title,
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(
Entypo.wallet,
color: AppColor.yellowColor,
),
Text(
'${' You Have in'.tr} ${AppInformation.appName} ${homeCaptainController.totalMoneyInSEFER} ',
style: AppStyle.title,
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text(
'Total Budget is '.tr +
Get.find<CaptainWalletController>().totalPoints,
style: AppStyle.title,
),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6),
color: int.parse(Get.find<HomeCaptainController>()
.countRideToday) <
5
? AppColor.accentColor
: int.parse(Get.find<HomeCaptainController>()
.countRideToday) >
5 &&
int.parse(Get.find<
HomeCaptainController>()
.countRideToday) <
10
? AppColor.yellowColor
: AppColor.greenColor,
),
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8, vertical: 2),
child: Text(
'Ride Today : '.tr +
Get.find<HomeCaptainController>()
.countRideToday,
style: AppStyle.title
.copyWith(color: AppColor.secondaryColor),
), ),
), Text(
' You Earn today is '.tr +
homeCaptainController.totalMoneyToday,
style: AppStyle.title,
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(
Entypo.wallet,
color: AppColor.yellowColor,
),
Text(
'${' You Have in'.tr} ${AppInformation.appName} ${homeCaptainController.totalMoneyInSEFER} ',
style: AppStyle.title,
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text(
'Total Budget is '.tr +
homeCaptainController.totalPoints,
style: AppStyle.title,
),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6),
color: int.parse(
Get.find<HomeCaptainController>()
.countRideToday) <
5
? AppColor.accentColor
: int.parse(Get.find<
HomeCaptainController>()
.countRideToday) >
5 &&
int.parse(Get.find<
HomeCaptainController>()
.countRideToday) <
10
? AppColor.yellowColor
: AppColor.greenColor,
),
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8, vertical: 2),
child: Text(
'Ride Today : '.tr +
Get.find<HomeCaptainController>()
.countRideToday,
style: AppStyle.title
.copyWith(color: AppColor.secondaryColor),
),
),
),
],
), ),
], ],
), )));
], })),
))),
),
Positioned( Positioned(
bottom: 65, bottom: 65,
right: Get.width * .1, right: Get.width * .1,

Some files were not shown because too many files have changed in this diff Show More