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

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

View File

@@ -1,11 +1,11 @@
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/info.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/info.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:intl/intl.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:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/constant/table_names.dart';
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart';
import 'package:SEFER/controller/functions/ocr_controller.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/constant/table_names.dart';
import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
import 'package:sefer_driver/controller/functions/ocr_controller.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import '../../../constant/links.dart';
import '../../../controller/functions/gemeni.dart';

View File

@@ -1,7 +1,7 @@
import 'package:camera/camera.dart';
import 'package:flutter/material.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/style.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:io';
import 'package:flutter/material.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 '../../../controller/auth/captin/ml_google_doc.dart';

View File

@@ -1,8 +1,10 @@
import 'package:SEFER/controller/functions/gemeni.dart';
import 'package:SEFER/controller/functions/tts.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_circular_indicator_timer.dart';
import 'package:SEFER/views/widgets/my_textField.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/controller/functions/gemeni.dart';
import 'package:sefer_driver/controller/functions/tts.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.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:get/get.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -10,6 +12,7 @@ import '../../../../constant/colors.dart';
import '../../../../constant/links.dart';
import '../../../../constant/style.dart';
import '../../../../controller/functions/package_info.dart';
import '../../../../main.dart';
import '../../../widgets/my_scafold.dart';
class EgyptCardAI extends StatelessWidget {
@@ -36,6 +39,11 @@ class EgyptCardAI extends StatelessWidget {
}),
body: [
GetBuilder<AI>(builder: (controller) {
if (box.read(BoxName.isInstall) != null ||
box.read(BoxName.isInstall).toString() != '') {
controller.updateInvitationCodeFromRegister();
}
return controller.isLoading
? MyCircularProgressIndicatorWithTimer(
isLoading: controller.isLoading,
@@ -117,153 +125,134 @@ class EgyptCardAI extends StatelessWidget {
right: 30,
left: 30,
child: GetBuilder<AI>(builder: (controller) {
return controller.isInviteDriverFound == false
? Padding(
padding: const EdgeInsets.symmetric(vertical: 60),
child: Container(
decoration: AppStyle.boxDecoration1,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text(
"Do you have an invitation code from another driver?"
.tr,
style: AppStyle.title,
textAlign: TextAlign.center,
),
const SizedBox(
height: 30,
),
Form(
key: controller.formKey,
child: MyTextForm(
controller:
controller.invitationCodeController,
label: "Paste the code here".tr,
hint: "Paste the code here".tr,
type: TextInputType.name,
return controller.approved == false
? 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 {
controller.startTimer();
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,
),
MyElevatedButton(
title: 'Ok'.tr,
onPressed: () async {
controller
.updateInvitationCodeFromRegister();
}),
MyElevatedButton(
kolor: AppColor.yellowColor,
title: "No, I don't have a code".tr,
onPressed: () {
controller.isInviteDriverFound = true;
controller.update();
})
],
),
),
const SizedBox(height: 8),
// 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()
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
? 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();
: const SizedBox();
}),
)
],

View File

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

View File

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

View File

@@ -1,17 +1,17 @@
import 'dart:convert';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/links.dart';
import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:get/get.dart';
class DriverCarController extends GetxController {
bool isLoading = false;
List cars = [];
int? carId;
// int? carId;
fetchCatrsForDrivers() async {
isLoading = true;
update();
@@ -21,7 +21,7 @@ class DriverCarController extends GetxController {
if (res != 'failure') {
var d = jsonDecode(res)['message'];
cars = d;
carId = cars.isEmpty ? 1 : cars.length + 1;
// carId = cars.isEmpty ? 1 : cars.length + 1;
}
isLoading = false;
update();
@@ -29,35 +29,35 @@ class DriverCarController extends GetxController {
addCarsForDrivers(
String vin,
String car_plate,
String carPlate,
String make,
String model,
String year,
String expiration_date,
String expirationDate,
String color,
String color_hex,
String colorHex,
String address,
String owner,
String registration_date,
String registrationDate,
String displacement,
String fuel) async {
var res = await CRUD().post(
link: AppLink.addNewCarsDrivers,
link: AppLink.addRegisrationCar,
payload: {
"driverID": box.read(BoxName.driverID).toString(),
"vin": vin,
"car_plate": car_plate,
"make": make,
"model": model,
"year": year,
"expiration_date": expiration_date,
"color": color,
"owner": owner,
"color_hex": color_hex,
"address": address,
"displacement": displacement,
"fuel": fuel,
"registration_date": registration_date,
"vin": vin ?? 'unknown',
"car_plate": carPlate.toString(),
"make": make ?? 'unknown',
"model": model ?? 'unknown',
"year": year ?? 'unknown',
"expiration_date": expirationDate ?? 'unknown',
"color": color ?? 'unknown',
"owner": owner ?? 'unknown',
"color_hex": colorHex ?? '#000000',
"address": address ?? 'unknown',
"displacement": displacement ?? 'unknown',
"fuel": fuel ?? 'unknown',
"registration_date": registrationDate ?? 'unknown',
},
);
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
void onInit() {
fetchCatrsForDrivers();

View File

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

View File

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

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/controller/functions/log_out.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/controller/functions/log_out.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
class LogoutCaptain extends StatelessWidget {
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:get/get.dart';
import 'package:SEFER/controller/auth/captin/register_captin_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../../constant/colors.dart';
import '../../../controller/auth/google_sign.dart';

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.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:get/get.dart';
import 'package:video_player/video_player.dart';

View File

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

View File

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

View File

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

View File

@@ -1,9 +1,9 @@
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../../constant/colors.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: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:get/get.dart';
import 'package:SEFER/controller/auth/captin/history_captain.dart';
import 'package:SEFER/controller/functions/launch.dart';
import 'package:sefer_driver/controller/auth/captin/history_captain.dart';
import 'package:sefer_driver/controller/functions/launch.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:flutter/cupertino.dart';

View File

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

View File

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

View File

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

View File

@@ -1,15 +1,15 @@
import 'dart:io';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/notification/available_rides_page.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:sefer_driver/views/notification/available_rides_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:SEFER/views/home/Captin/home_captain/drawer_captain.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/views/home/Captin/home_captain/drawer_captain.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:bubble_head/bubble.dart';
import '../../../../constant/colors.dart';
@@ -100,93 +100,98 @@ class HomeCaptain extends StatelessWidget {
// liteModeEnabled: true,
);
}),
Positioned(
bottom: 10,
right: Get.width * .1,
left: Get.width * .1,
child: const ConnectWidget()),
Positioned(
top: 5,
right: Get.width * .05,
left: Get.width * .05,
child: Container(
decoration: AppStyle.boxDecoration,
width: Get.width * .8,
height: 104,
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
top: 5,
right: Get.width * .05,
left: Get.width * .05,
child: GetBuilder<HomeCaptainController>(
builder: (homeCaptainController) {
return Container(
decoration: AppStyle.boxDecoration,
width: Get.width * .8,
height: 104,
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Icon(
Entypo.wallet,
color: AppColor.greenColor,
),
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 +
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),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(
Entypo.wallet,
color: AppColor.greenColor,
),
),
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(
bottom: 65,
right: Get.width * .1,

View File

@@ -1,8 +1,8 @@
import 'package:SEFER/controller/functions/tts.dart';
import 'package:sefer_driver/controller/functions/tts.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart';
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
import '../../../../../constant/style.dart';
import '../../../../widgets/elevated_btn.dart';

View File

@@ -1,20 +1,18 @@
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/firebase/local_notification.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/home/Captin/orderCaptin/order_request_page.dart';
import 'package:SEFER/views/home/Captin/orderCaptin/order_speed_request.dart';
import 'package:SEFER/views/home/Captin/orderCaptin/vip_order_page.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/controller/firebase/local_notification.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/auth/captin/cards/egypt_card_a_i.dart';
import 'package:sefer_driver/views/home/Captin/orderCaptin/vip_order_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../../../../constant/colors.dart';
import '../../../../../controller/home/payment/captain_wallet_controller.dart';
import '../../../../../print.dart';
import '../../../../Rate/ride_calculate_driver.dart';
import '../../../../../controller/functions/location_controller.dart';
import '../../../../widgets/mydialoug.dart';
GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
return GetBuilder<HomeCaptainController>(
@@ -139,8 +137,8 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
borderRadius: BorderRadius.circular(15)),
child: IconButton(
onPressed: () {
NotificationController1()
.showNotification('Sefer Driver'.tr, ''.tr, '', '');
// NotificationController1()
// .showNotification('Sefer Driver'.tr, ''.tr, '', '');
final now = DateTime.now();
DateTime? lastRequestTime =
box.read(BoxName.lastTimeStaticThrottle);
@@ -191,7 +189,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
return IconButton(
onPressed: () async {
// mySnakeBarError('ad');
Get.to(() => VipOrderPage());
Get.to(() => const VipOrderPage());
},
icon: const Icon(
Octicons.watch,
@@ -213,84 +211,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
// child: Builder(builder: (context) {
// return IconButton(
// onPressed: () async {
// NotificationController()
// .showTimerNotification('title', 'message', 'tone1');
// // Get.to(() => OrderRequestPage(), arguments: {
// // 'myListString': [
// // "30.1068014,31.244621",
// // "30.0664345,31.2857709",
// // "68.56",
// // "25.92",
// // "1445",
// // "11.29",
// // "114243034311436865474",
// // "114243034311436865474",
// // "sefer app",
// // "cAVvCAywQvm6LUAqF2E3sU:APA91bHusGWWBwlaKQ6A4idNTVzvakCxtFxPPrHwVR2ycMZK5IP27Tf-RDnUypure0NVGxdFf6npAV7bi4_KWZP-UKJ0Pz3lUogWWbtzO9bIPJgBP3SPCvA",
// // "+201023248456",
// // "0",
// // "0",
// // "true",
// // "fbeWrFqeQMqorzVU9-2mIa:APA91bHWIcbxzsk3C-w7fiAZ0NRRpPuAmRgNjduS2oQ5lZ7jFEMhA7gfWQLyRWfnhcjmUA9GByyzoLxcfvb7VhcL9zSgo15hVG4DMyJ_k5di1I3oii5Pe9w",
// // "0",
// // "1087",
// // "false",
// // "114243034311436865474",
// // "1445",
// // "startEnd",
// // "30.08517654446625,31.27303797751665",
// // "",
// // "",
// // "",
// // "",
// // "13.98",
// // "0",
// // "sefertraveling@gmail.com",
// // "5 مصر اسكندريه، شبرا الخيمة، قسم أول شبرا الخيمة، محافظة القليوبية 6210011، مصر",
// // "12 مدرسة العباسية الميكانيكية، السرايات، الوايلى، محافظة القاهرة‬ 4391080، مصر",
// // "Speed",
// // "8",
// // "5.00"
// // ],
// // 'DriverList': [
// // "30.1068014,31.244621",
// // "30.0664345,31.2857709",
// // "68.56",
// // "25.92",
// // "1445",
// // "11.29",
// // "114243034311436865474",
// // "114243034311436865474",
// // "sefer app",
// // "cAVvCAywQvm6LUAqF2E3sU:APA91bHusGWWBwlaKQ6A4idNTVzvakCxtFxPPrHwVR2ycMZK5IP27Tf-RDnUypure0NVGxdFf6npAV7bi4_KWZP-UKJ0Pz3lUogWWbtzO9bIPJgBP3SPCvA",
// // "+201023248456",
// // "0",
// // "0",
// // "true",
// // "fbeWrFqeQMqorzVU9-2mIa:APA91bHWIcbxzsk3C-w7fiAZ0NRRpPuAmRgNjduS2oQ5lZ7jFEMhA7gfWQLyRWfnhcjmUA9GByyzoLxcfvb7VhcL9zSgo15hVG4DMyJ_k5di1I3oii5Pe9w",
// // "0",
// // "1087",
// // "false",
// // "114243034311436865474",
// // "1445",
// // "startEnd",
// // "30.08517654446625,31.27303797751665",
// // "",
// // "",
// // "",
// // "",
// // "13.98",
// // "0",
// // "sefertraveling@gmail.com",
// // "5 مصر اسكندريه، شبرا الخيمة، قسم أول شبرا الخيمة، محافظة القليوبية 6210011، مصر",
// // "12 مدرسة العباسية الميكانيكية، السرايات، الوايلى، محافظة القاهرة‬ 4391080، مصر",
// // "Speed",
// // "8",
// // "5.00"
// // ],
// // // 'PolylineJson': myPoints,
// // // 'body': message.notification!.body
// // });
// Get.to(EgyptCardAI());
// },
// icon: const Icon(
// FontAwesome5.grin_tears,

View File

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

View File

@@ -1,6 +1,6 @@
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';

View File

@@ -1,17 +1,17 @@
import 'dart:io';
import 'package:SEFER/views/widgets/my_textField.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:sefer_driver/views/widgets/my_textField.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:bubble_head/bubble.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/info.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/info.dart';
import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import 'package:sefer_driver/controller/home/captin/map_driver_controller.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../../../constant/style.dart';
import '../../../../controller/functions/launch.dart';

View File

@@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/info.dart';
import 'package:SEFER/controller/functions/location_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_textField.dart';
import 'package:sefer_driver/constant/info.dart';
import 'package:sefer_driver/controller/functions/location_controller.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/my_textField.dart';
import '../../../../constant/box_name.dart';
import '../../../../constant/colors.dart';

View File

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

View File

@@ -1,13 +1,13 @@
import 'dart:convert';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/home/Captin/driver_map_page.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/home/Captin/driver_map_page.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'dart:math' as math;
import '../../../../constant/colors.dart';
@@ -44,10 +44,33 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
var cords = myList[0].split(',');
var cordDestination = myList[1].split(',');
double latPassengerLocation = double.parse(cords[0]);
double lngPassengerLocation = double.parse(cords[1]);
double latPassengerDestination = double.parse(cordDestination[0]);
double lngPassengerDestination = double.parse(cordDestination[1]);
double? parseDouble(String value) {
try {
return double.parse(value);
} catch (e) {
print("Error parsing value: $value");
return null; // or handle the error appropriately
}
}
double? latPassengerLocation = parseDouble(cords[0]);
double? lngPassengerLocation = parseDouble(cords[1]);
double? latPassengerDestination = parseDouble(cordDestination[0]);
double? lngPassengerDestination = parseDouble(cordDestination[1]);
if (latPassengerLocation == null ||
lngPassengerLocation == null ||
latPassengerDestination == null ||
lngPassengerDestination == null) {
// Handle invalid coordinates gracefully
print("Invalid coordinates found.");
return Container(); // or any fallback UI
}
// double latPassengerLocation = double.parse(cords[0]);
// double lngPassengerLocation = double.parse(cords[1]);
// double latPassengerDestination = double.parse(cordDestination[0]);
// double lngPassengerDestination = double.parse(cordDestination[1]);
// Create points for route
List<LatLng> pointsDirection = [
@@ -414,25 +437,17 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
'order_id': myList[16].toString(),
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferAlexandriaServer}/driver_order/add.php',
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': myList[16].toString(),
'status': 'Apply'
});
CRUD().postFromDialogue(
link:
'${AppLink.seferGizaServer}/driver_order/add.php',
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': myList[16].toString(),
'status': 'Apply'
});
if (AppLink.endPoint != AppLink.seferCairoServer) {
CRUD().postFromDialogue(
link:
'${AppLink.endPoint}/rides/driver_order/add.php',
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': myList[16].toString(),
'status': 'Apply'
});
}
///
var res = await CRUD().post(

View File

@@ -1,13 +1,13 @@
import 'dart:convert';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/home/Captin/driver_map_page.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/home/Captin/driver_map_page.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../../../constant/colors.dart';
import '../../../../constant/links.dart';

View File

@@ -0,0 +1,230 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'dart:math' as math;
import '../../../../constant/colors.dart';
import '../../../../controller/home/captin/home_captain_controller.dart';
class OrderRequestPageTest extends StatefulWidget {
const OrderRequestPageTest({super.key});
@override
State<OrderRequestPageTest> createState() => _OrderRequestPageTestState();
}
class _OrderRequestPageTestState extends State<OrderRequestPageTest> {
late OrderRequestController _orderRequestController;
@override
void initState() {
super.initState();
// Initialize the controller and process arguments
_initializeController();
}
void _initializeController() {
// Get the controller or create a new one if not exists
_orderRequestController = Get.put(OrderRequestController());
// Process arguments passed to the page
final arguments = Get.arguments;
final myListString = arguments['myListString'];
var myList =
arguments['DriverList'] == null || arguments['DriverList'].isEmpty
? jsonDecode(myListString)
: arguments['DriverList'];
// Parse coordinates and prepare map data
_orderRequestController.parseCoordinates(myList);
// Start timer and calculate fuel consumption
_orderRequestController.startTimer(
myList[6].toString(),
myList[16].toString(),
);
_orderRequestController.calculateConsumptionFuel();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 6),
child: Container(
color: const Color.fromARGB(255, 241, 238, 238),
child: ListView(
children: [
SizedBox(
height: Get.height * .33,
child: Obx(() => GoogleMap(
initialCameraPosition: CameraPosition(
zoom: 12,
target:
Get.find<HomeCaptainController>().myLocation,
),
cameraTargetBounds: CameraTargetBounds(
_orderRequestController.mapBounds.value),
myLocationButtonEnabled: true,
trafficEnabled: false,
buildingsEnabled: false,
mapToolbarEnabled: true,
myLocationEnabled: true,
markers: _orderRequestController.markers.value,
polylines: _orderRequestController.polylines.value,
onMapCreated: (GoogleMapController controller) {
_orderRequestController.mapController.value =
controller;
},
onCameraMove: (CameraPosition position) {
_orderRequestController
.updateCameraPosition(position);
},
)),
),
// Rest of your UI components
],
),
),
),
],
),
);
}
}
class OrderRequestController extends GetxController {
// Reactive variables for map-related data
Rx<LatLngBounds> mapBounds = Rx<LatLngBounds>(LatLngBounds(
southwest: const LatLng(0, 0), northeast: const LatLng(0, 0)));
Rx<Set<Marker>> markers = Rx<Set<Marker>>({});
Rx<Set<Polyline>> polylines = Rx<Set<Polyline>>({});
Rx<GoogleMapController?> mapController = Rx<GoogleMapController?>(null);
// Icons for start and end markers
late BitmapDescriptor startIcon;
late BitmapDescriptor endIcon;
// Coordinates for passenger location and destination
Rx<LatLng?> passengerLocation = Rx<LatLng?>(null);
Rx<LatLng?> passengerDestination = Rx<LatLng?>(null);
@override
void onInit() {
super.onInit();
// Initialize marker icons
_initializeMarkerIcons();
}
void _initializeMarkerIcons() async {
// Load custom marker icons
startIcon = await BitmapDescriptor.fromAssetImage(
const ImageConfiguration(size: Size(48, 48)),
'assets/start_marker.png');
endIcon = await BitmapDescriptor.fromAssetImage(
const ImageConfiguration(size: Size(48, 48)), 'assets/end_marker.png');
}
void parseCoordinates(List myList) {
// Parse coordinates from the input list
var cords = myList[0].split(',');
var cordDestination = myList[1].split(',');
double latPassengerLocation = double.parse(cords[0]);
double lngPassengerLocation = double.parse(cords[1]);
double latPassengerDestination = double.parse(cordDestination[0]);
double lngPassengerDestination = double.parse(cordDestination[1]);
// Update passenger location and destination
passengerLocation.value =
LatLng(latPassengerLocation, lngPassengerLocation);
passengerDestination.value =
LatLng(latPassengerDestination, lngPassengerDestination);
// Create markers
_createMarkers();
// Create polyline
_createPolyline();
// Calculate map bounds
_calculateMapBounds();
}
void _createMarkers() {
if (passengerLocation.value == null || passengerDestination.value == null)
return;
markers.value = {
Marker(
markerId: MarkerId('MyLocation'.tr),
position: passengerLocation.value!,
draggable: true,
icon: startIcon,
),
Marker(
markerId: MarkerId('Destination'.tr),
position: passengerDestination.value!,
draggable: true,
icon: endIcon,
),
};
}
void _createPolyline() {
if (passengerLocation.value == null || passengerDestination.value == null)
return;
polylines.value = {
Polyline(
zIndex: 1,
consumeTapEvents: true,
geodesic: true,
endCap: Cap.buttCap,
startCap: Cap.buttCap,
visible: true,
polylineId: const PolylineId('routeOrder'),
points: [passengerLocation.value!, passengerDestination.value!],
color: AppColor.primaryColor,
width: 2,
),
};
}
void _calculateMapBounds() {
if (passengerLocation.value == null || passengerDestination.value == null)
return;
double minLatitude = math.min(passengerLocation.value!.latitude,
passengerDestination.value!.latitude);
double maxLatitude = math.max(passengerLocation.value!.latitude,
passengerDestination.value!.latitude);
double minLongitude = math.min(passengerLocation.value!.longitude,
passengerDestination.value!.longitude);
double maxLongitude = math.max(passengerLocation.value!.longitude,
passengerDestination.value!.longitude);
mapBounds.value = LatLngBounds(
southwest: LatLng(minLatitude, minLongitude),
northeast: LatLng(maxLatitude, maxLongitude),
);
}
void updateCameraPosition(CameraPosition position) {
// Implement any specific logic for camera position updates
}
void startTimer(String param1, String param2) {
// Implement timer start logic
}
void calculateConsumptionFuel() {
// Implement fuel consumption calculation
}
}

View File

@@ -1,9 +1,9 @@
import 'dart:convert';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/constant/links.dart';
import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import '../../../controller/functions/ocr_controller.dart';

View File

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

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart';
import 'package:SEFER/controller/payment/payment_controller.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
import 'package:sefer_driver/controller/payment/payment_controller.dart';
import '../../../constant/box_name.dart';
import '../../../main.dart';

View File

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

View File

@@ -1,23 +1,23 @@
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart';
import 'package:SEFER/controller/functions/tts.dart';
import 'package:SEFER/controller/home/payment/paymob_payout.dart';
import 'package:SEFER/views/home/my_wallet/bank_account_egypt.dart';
import 'package:SEFER/views/home/my_wallet/payment_history_driver_page.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:sefer_driver/constant/links.dart';
import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:sefer_driver/controller/functions/tts.dart';
import 'package:sefer_driver/controller/home/payment/paymob_payout.dart';
import 'package:sefer_driver/views/home/my_wallet/bank_account_egypt.dart';
import 'package:sefer_driver/views/home/my_wallet/payment_history_driver_page.dart';
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/info.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_textField.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/info.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/my_textField.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import '../../../controller/payment/driver_payment_controller.dart';
import '../../widgets/my_scafold.dart';

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:intl/intl.dart';
import '../../../controller/payment/driver_payment_controller.dart';

View File

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

View File

@@ -1,7 +1,10 @@
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
@@ -39,6 +42,9 @@ class CaptainsCars extends StatelessWidget {
return Padding(
padding: const EdgeInsets.all(4.0),
child: Card(
color: car['isDefault'].toString() == '0'
? AppColor.accentColor
: AppColor.blueColor,
elevation: 2,
child: ListTile(
leading: Icon(
@@ -78,15 +84,33 @@ class CaptainsCars extends StatelessWidget {
),
],
), // Assuming `model` is a field in each car item
trailing: IconButton(
icon: const Icon(Icons.delete),
onPressed: () {
// Add logic here to remove a car
controller
.removeCar(car['id'].toString());
},
),
// trailing: IconButton(
// icon: const Icon(
// Icons.delete,
// color: AppColor.redColor,
// ),
// onPressed: () {
// // Add logic here to remove a car
// MyDialog()
// .getDialog('Are you sure to delete this car', '', () {
// controller
// .removeCar(car['id'].toString());
// });
// },
// ),
onTap: () {
MyDialog().getDialog(
'Are you sure to make this car as default'
.tr,
'', () {
Get.back();
//make it default
controller.updateCarRegistration(
car['id'].toString(),
box.read(BoxName.driverID).toString(),
);
});
// Add logic to view or edit the car details
},
),

View File

@@ -1,5 +1,5 @@
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -22,8 +22,8 @@ class CarsInsertingPage extends StatelessWidget {
color: AppColor.accentColor.withOpacity(.2),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
child: ListView(
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
egyptCarLicenceFront(),
egyptCarLicenceBack(),
@@ -41,18 +41,18 @@ class CarsInsertingPage extends StatelessWidget {
final aiBack =
Get.find<AI>().responseIdCardDriverEgyptBack;
driverCarController.addCarsForDrivers(
aiBack['vin'].toString(),
aiBack['chassis'].toString(),
aiBack['car_plate'].toString(),
aiBack['make'].toString(),
aiBack['model'].toString(),
aiBack['year'].toString(),
aiFront['expiration_date'].toString(),
aiFront['LicenseExpirationDate'].toString(),
aiBack['color'].toString(),
aiBack['color_hex'].toString(),
aiFront['address'].toString(),
aiFront['owner'].toString(),
aiBack['registration_date'].toString(),
aiBack['displacement'].toString(),
aiBack['inspection_date'].toString(),
aiBack['engine'].toString(),
aiBack['fuel'].toString(),
);
})
@@ -139,7 +139,7 @@ GetBuilder<AI> egyptCarLicenceFront() {
child: InkWell(
onTap: () async {
ai.allMethodForAINewCar(ai.prompts[3]['prompt'].toString(),
AppLink.uploadEgypt, 'car_front', 'carId'); //todo
AppLink.uploadEgypt1, 'car_front', 'carId'); //todo
},
child: Column(
children: [

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/home/profile/feed_back_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/controller/home/profile/feed_back_controller.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import '../../widgets/elevated_btn.dart';

View File

@@ -1,15 +1,15 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/profile/profile_controller.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/my_textField.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/profile/profile_controller.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/my_textField.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import '../../../controller/functions/log_out.dart';

View File

@@ -1,12 +1,12 @@
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart';
import 'package:SEFER/views/auth/captin/criminal_documents_page.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
import 'package:sefer_driver/views/auth/captin/criminal_documents_page.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/profile/captain_profile_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/controller/profile/captain_profile_controller.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../my_wallet/walet_captain.dart';
import 'captains_cars.dart';
@@ -29,14 +29,17 @@ class ProfileCaptain extends StatelessWidget {
? const MyCircularProgressIndicator()
: Column(
children: [
Container(
decoration: AppStyle.boxDecoration1,
Material(
elevation: 2,
borderRadius: BorderRadius.circular(8),
child: InkWell(
onTap: () async {
addBankCodeEgypt(captainWalletController);
},
borderRadius: BorderRadius.circular(8),
child: Padding(
padding: const EdgeInsets.all(8.0),
padding: const EdgeInsets.symmetric(
vertical: 16, horizontal: 16),
child: Text(
'Add bank Account'.tr,
style: AppStyle.title,
@@ -44,23 +47,24 @@ class ProfileCaptain extends StatelessWidget {
),
),
),
const SizedBox(
height: 5,
),
MyElevatedButton(
title: 'Show my Cars'.tr,
onPressed: () async {
Get.to(() => CaptainsCars());
},
),
const SizedBox(
height: 5,
),
MyElevatedButton(
title: 'Add criminal page'.tr,
onPressed: () async {
Get.to(() => CriminalDocumemtPage());
},
const SizedBox(height: 15),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
MyElevatedButton(
title: 'Show my Cars'.tr,
onPressed: () async {
Get.to(() => CaptainsCars());
},
),
// const SizedBox(height: 15),
MyElevatedButton(
title: 'Add criminal page'.tr,
onPressed: () async {
Get.to(() => CriminalDocumemtPage());
},
),
],
),
SizedBox(
height: Get.height * .7,

View File

@@ -1,8 +1,8 @@
import 'package:animated_text_kit/animated_text_kit.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/home/profile/promos_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/controller/home/profile/promos_controller.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import '../../../constant/colors.dart';
import '../../../constant/style.dart';

View File

@@ -1,9 +1,9 @@
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/main.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/main.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
class TaarifPage extends StatelessWidget {
const TaarifPage({super.key});

View File

@@ -1,8 +1,8 @@
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
import '../../controller/local/local_controller.dart';

View File

@@ -1,10 +1,10 @@
import 'dart:convert';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/notification/ride_available_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/notification/ride_available_controller.dart';
import 'package:sefer_driver/views/widgets/my_scafold.dart';
import 'package:sefer_driver/views/widgets/mycircular.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -25,19 +25,115 @@ class AvailableRidesPage extends StatelessWidget {
Get.put(RideAvailableController());
return GetBuilder<RideAvailableController>(
builder: (rideAvailableController) {
// rideAvailableController.sortRidesByDistance();
return MyScafolld(
title: 'Available for rides'.tr,
body: [
rideAvailableController.isLoading
? const MyCircularProgressIndicator()
: ListView.builder(
:
// : ListView.builder(
// itemCount: rideAvailableController
// .rideAvailableMap['message']
// .where((rideInfo) {
// var driverType =
// box.read(BoxName.carTypeOfDriver).toString();
// return (driverType == 'Comfort' &&
// ['Speed', 'Comfort']
// .contains(rideInfo['carType'])) ||
// (driverType == 'Speed' &&
// rideInfo['carType'] == 'Speed') ||
// (driverType == 'Scooter' &&
// rideInfo['carType'] == 'Scooter') ||
// (driverType == 'Awfar Car' &&
// rideInfo['carType'] == 'Awfar Car') ||
// (driverType == 'Lady' &&
// ['Comfort', 'Speed', 'Lady']
// .contains(rideInfo['carType']));
// }).length,
// itemBuilder: (context, index) {
// var filteredRides = rideAvailableController
// .rideAvailableMap['message']
// .where((rideInfo) {
// var driverType =
// box.read(BoxName.carTypeOfDriver).toString();
// return (driverType == 'Comfort' &&
// ['Speed', 'Comfort']
// .contains(rideInfo['carType'])) ||
// (driverType == 'Speed' &&
// rideInfo['carType'] == 'Speed') ||
// (driverType == 'Awfar Car' &&
// rideInfo['carType'] == 'Awfar Car') ||
// (driverType == 'Scooter' &&
// rideInfo['carType'] == 'Scooter') ||
// (driverType == 'Lady' &&
// ['Comfort', 'Speed', 'Lady']
// .contains(rideInfo['carType']));
// }).toList();
// return RideAvailableCard(
// rideInfo: filteredRides[index],
// );
// },
// )
ListView.builder(
itemCount: rideAvailableController
.rideAvailableMap['message'].length,
itemBuilder: (context, index) => RideAvailableCard(
rideInfo: rideAvailableController
.rideAvailableMap['message'][index],
),
.rideAvailableMap['message']
.where((rideInfo) {
var driverType =
box.read(BoxName.carTypeOfDriver).toString();
switch (driverType) {
case 'Comfort':
return ['Speed', 'Comfort']
.contains(rideInfo['carType']);
case 'Speed':
case 'Scooter':
case 'Awfar Car':
return rideInfo['carType'] == driverType;
case 'Lady':
return ['Comfort', 'Speed', 'Lady']
.contains(rideInfo['carType']);
default:
return false;
}
}).length,
itemBuilder: (context, index) {
var filteredRides = rideAvailableController
.rideAvailableMap['message']
.where((rideInfo) {
var driverType =
box.read(BoxName.carTypeOfDriver).toString();
switch (driverType) {
case 'Comfort':
return ['Speed', 'Comfort']
.contains(rideInfo['carType']);
case 'Speed':
case 'Scooter':
case 'Awfar Car':
return rideInfo['carType'] == driverType;
case 'Lady':
return ['Comfort', 'Speed', 'Lady']
.contains(rideInfo['carType']);
default:
return false;
}
}).toList();
return RideAvailableCard(
rideInfo: filteredRides[index],
);
},
)
// rideAvailableController.isLoading
// ? const MyCircularProgressIndicator()
// : ListView.builder(
// itemCount: rideAvailableController
// .rideAvailableMap['message'].length,
// itemBuilder: (context, index) => RideAvailableCard(
// rideInfo: rideAvailableController
// .rideAvailableMap['message'][index],
// ),
// )
],
isleading: true);
});
@@ -181,6 +277,14 @@ class RideAvailableCard extends StatelessWidget {
'order_id': rideInfo['id'],
'status': 'Apply'
});
await CRUD().post(link: AppLink.updateRides, payload: {
'id': rideInfo['id'],
'DriverIsGoingToPassenger': DateTime.now().toString(),
'status': 'Applied'
});
await CRUD().post(
link: AppLink.updateWaitingRide,
payload: {'id': rideInfo['id'], 'status': 'Applied'});
if (AppLink.endPoint.toString() != AppLink.seferCairoServer) {
CRUD().postFromDialogue(
link: '${AppLink.endPoint}/driver_order/add.php',
@@ -190,29 +294,17 @@ class RideAvailableCard extends StatelessWidget {
'order_id': rideInfo['id'],
'status': 'Apply'
});
}
await CRUD().post(link: AppLink.updateRides, payload: {
'id': rideInfo['id'],
'DriverIsGoingToPassenger': DateTime.now().toString(),
'status': 'Applied'
});
if (AppLink.endPoint.toString() != AppLink.seferCairoServer) {
CRUD().post(link: '${AppLink.endPoint}/rides/update.php', payload: {
'id': rideInfo['id'],
'DriverIsGoingToPassenger': DateTime.now().toString(),
'status': 'Applied'
});
}
await CRUD().post(
link: AppLink.updateWaitingRide,
payload: {'id': rideInfo['id'], 'status': 'Applied'});
if (AppLink.endPoint.toString() != AppLink.seferCairoServer) {
CRUD().post(
link:
"${AppLink.endPoint}/ride/notificationCaptain/updateWaitingTrip.php",
payload: {'id': rideInfo['id'], 'status': 'Applied'});
}
FirebaseMessagesController().sendNotificationToPassengerToken(
'Apply Ride',
'your ride is applied'.tr,

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/notification/notification_captain_controller.dart';
import 'package:sefer_driver/controller/notification/notification_captain_controller.dart';
import 'package:flutter/cupertino.dart';
class NotificationCaptain extends StatelessWidget {

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:SEFER/constant/style.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:flutter/services.dart';
import 'package:vibration/vibration.dart';

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:sefer_driver/constant/box_name.dart';
class MyTextForm extends StatelessWidget {
const MyTextForm({

View File

@@ -1,9 +1,9 @@
import 'dart:ui';
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/functions/tts.dart';
import 'package:sefer_driver/constant/colors.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/functions/tts.dart';
class MyDialog extends GetxController {
void getDialog(String title, String? midTitle, VoidCallback onPressed) {
@@ -24,9 +24,10 @@ class MyDialog extends GetxController {
children: [
CupertinoButton(
onPressed: () async {
await textToSpeechController.speakText(title ?? midTitle!);
await textToSpeechController.speakText(title);
await textToSpeechController.speakText(midTitle!);
},
child: const Icon(CupertinoIcons.headphones,
child: const Icon(CupertinoIcons.speaker_2,
color: AppColor.primaryColor),
),
Text(