This commit is contained in:
Hamza Aleghwairyeen
2024-04-10 05:02:03 +03:00
parent 88b671c112
commit 8fcc9e22e7
13 changed files with 239 additions and 175 deletions

4
.env
View File

@@ -9,7 +9,7 @@ transactionCloude=Qhcwilomqcoib:QVO_JNYED2XWA26YXKC2TP:YK1DVH6SJB31N3PE1UXrXlBl
visionApi=3pALsqSSYTvzp69Q5FMIgbzjG6Z1zktJXrXlBl visionApi=3pALsqSSYTvzp69Q5FMIgbzjG6Z1zktJXrXlBl
chatGPTkeySefer=zg-IiR34ooza3Yvhvb9rZk1C9XrxgUE0l8jRRZrHj3Qe5QXPlqVXrXlBl chatGPTkeySefer=zg-IiR34ooza3Yvhvb9rZk1C9XrxgUE0l8jRRZrHj3Qe5QXPlqVXrXlBl
chatGPTkeySeferNew=zg-Z4AJcAROgNXjgrEIU8fKC9XrxgUE4Qtrrlq1yiux0jL3dITSXrXlBl chatGPTkeySeferNew=zg-Z4AJcAROgNXjgrEIU8fKC9XrxgUE4Qtrrlq1yiux0jL3dITSXrXlBl
secretKey=mk_femf_56O3CFOSBEVrOUA5MDgaoMM14xXHRzhNy7Fl5OSmcZzjqLpu9RyDTC8ttuP80Fp20FN6PQoNo2eTHllRiQs8rBTPX99Lr4CS8x7DlDrXrXrXlBl secretKey=zg_ropj_57Iiv6MFCBFq3C2n6IXlmjykpxDmW93SW3vvXh68UA9T5FORTWgWsT37StKsOPdwDdsy8qR9srMUluahs3nPHvgBa33tGk90vV5XrXlBl
stripe_publishableKe=vg_ropj_57Iiv6MFCBFq3C2n6kNJnZByV6nuDtXe9IjEPOfhmpDtWmt3MLR0gQpiHcQmAFMUPrZc3QiCDjxBZLbxDC3efxWxz33bWH1ZgrsXrXlBl stripe_publishableKe=vg_ropj_57Iiv6MFCBFq3C2n6kNJnZByV6nuDtXe9IjEPOfhmpDtWmt3MLR0gQpiHcQmAFMUPrZc3QiCDjxBZLbxDC3efxWxz33bWH1ZgrsXrXlBl
llamaKey=RR-EuyoFDUvfRDBj46fZKAtKJ3voM8Mt768cPeJV7GNdAkPTKdY8Odm9n4ggGqI5GyoXrXlBl llamaKey=RR-EuyoFDUvfRDBj46fZKAtKJ3voM8Mt768cPeJV7GNdAkPTKdY8Odm9n4ggGqI5GyoXrXlBl
serverPHP=https://ride.mobile-app.store serverPHP=https://ride.mobile-app.store
@@ -23,5 +23,3 @@ geminiApi=QOmqZsQYm08vOqjI7klVJfvP4WBFEoemjgy396iXrXlBl
geminiApiMasa=QOmqZsQIdM4BRsKmaDJOP7dZp5-c6NWfch7PAlQXrXlBl geminiApiMasa=QOmqZsQIdM4BRsKmaDJOP7dZp5-c6NWfch7PAlQXrXlBl
agoraAppId=71880f2j636509j24y5294480y30u848XrXlBl agoraAppId=71880f2j636509j24y5294480y30u848XrXlBl
agoraAppCertificate=j17q944u49390q758u1649448q2y6xfuXrXlBl agoraAppCertificate=j17q944u49390q758u1649448q2y6xfuXrXlBl

View File

@@ -348,6 +348,8 @@ class FirebaseMessagesController extends GetxController {
return Get.defaultDialog( return Get.defaultDialog(
barrierDismissible: false, barrierDismissible: false,
title: 'message From passenger'.tr, title: 'message From passenger'.tr,
titleStyle: AppStyle.title,
middleTextStyle: AppStyle.title,
middleText: message.tr, middleText: message.tr,
confirm: MyElevatedButton( confirm: MyElevatedButton(
title: 'Ok'.tr, title: 'Ok'.tr,

View File

@@ -264,6 +264,11 @@ class HomeCaptainController extends GetxController {
} }
} }
double mpg = 0;
calculateConsumptionFuel() {
mpg = fuelPrice / 12; //todo in register car add mpg in box
}
getCountRideToday() async { getCountRideToday() async {
var res = await CRUD().get( var res = await CRUD().get(
link: AppLink.getCountRide, link: AppLink.getCountRide,

View File

@@ -535,6 +535,11 @@ class MapDriverController extends GetxController {
// print(durationOfRideValue); // print(durationOfRideValue);
int durationOfRide = int.parse(durationOfRideValue); int durationOfRide = int.parse(durationOfRideValue);
update(); update();
int infinity = 40000;
if (carType == 'Comfort' || carType == 'Mashwari') {
durationOfRide = infinity;
update();
}
for (int i = 0; i <= durationOfRide; i++) { for (int i = 0; i <= durationOfRide; i++) {
await Future.delayed(const Duration(seconds: 1)); await Future.delayed(const Duration(seconds: 1));
recentDistanceToDash = Get.find<LocationController>().totalDistance; recentDistanceToDash = Get.find<LocationController>().totalDistance;
@@ -547,7 +552,7 @@ class MapDriverController extends GetxController {
? (i ~/ 60) + ? (i ~/ 60) +
(recentDistanceToDash * (recentDistanceToDash *
Get.find<HomeCaptainController>().speedPrice) Get.find<HomeCaptainController>().speedPrice)
: carType == 'Delivery' : carType == 'Mashwari'
? (i ~/ 60) + ? (i ~/ 60) +
(recentDistanceToDash * (recentDistanceToDash *
Get.find<HomeCaptainController>().deliveryPrice) Get.find<HomeCaptainController>().deliveryPrice)
@@ -569,8 +574,8 @@ class MapDriverController extends GetxController {
int seconds = remainingTimeTimerRideBegin % 60; int seconds = remainingTimeTimerRideBegin % 60;
stringRemainingTimeRideBegin = stringRemainingTimeRideBegin =
'$minutes:${seconds.toString().padLeft(2, '0')}'; '$minutes:${seconds.toString().padLeft(2, '0')}';
int minutes1 = (rideTimerFromBegin / 60).floor(); int minutes1 = (i / 60).floor();
int seconds1 = rideTimerFromBegin % 60; int seconds1 = i % 60;
stringRemainingTimeRideBegin1 = stringRemainingTimeRideBegin1 =
'$minutes1:${seconds1.toString().padLeft(2, '0')}'; '$minutes1:${seconds1.toString().padLeft(2, '0')}';
update(); update();

View File

@@ -9,6 +9,7 @@ import '../../../constant/box_name.dart';
import '../../../constant/table_names.dart'; import '../../../constant/table_names.dart';
import '../../functions/crud.dart'; import '../../functions/crud.dart';
import '../../functions/location_controller.dart'; import '../../functions/location_controller.dart';
import 'home_captain_controller.dart';
class OrderRequestController extends GetxController { class OrderRequestController extends GetxController {
double progress = 0; double progress = 0;
@@ -24,7 +25,7 @@ class OrderRequestController extends GetxController {
@override @override
void onInit() { void onInit() {
getRefusedOrderByCaptain(); getRefusedOrderByCaptain();
// calculateConsumptionFuel();
update(); update();
super.onInit(); super.onInit();
} }
@@ -34,6 +35,12 @@ class OrderRequestController extends GetxController {
update(); update();
} }
double mpg = 0;
calculateConsumptionFuel() {
mpg = Get.find<HomeCaptainController>().fuelPrice /
12; //todo in register car add mpg in box
}
void getRefusedOrderByCaptain() async { void getRefusedOrderByCaptain() async {
DateTime today = DateTime.now(); DateTime today = DateTime.now();
int todayDay = today.day; int todayDay = today.day;

View File

@@ -478,11 +478,15 @@ class MyTranslation extends Translations {
'Distance from Passenger to destination is ': 'Distance from Passenger to destination is ':
"المسافة من الراكب إلى الوجهة هي ", "المسافة من الراكب إلى الوجهة هي ",
'price is': '‏التكلفة', 'price is': '‏التكلفة',
'This ride type does not allow changes to the destination or additional stops':
'ده نوع الرحلات مش بيسمح بتغيير نقطة الوصول أو الوقوف الإضافي',
'This price may be changed': 'خلي بالك السعر ممكن يتغي',
'No SIM card, no problem! Call your driver directly through our app. We use advanced technology to ensure your privacy.': 'No SIM card, no problem! Call your driver directly through our app. We use advanced technology to ensure your privacy.':
'حتا لو مفيش كارت SIM, متخفش! تقدر تكلم سواقك بمنتهى البساطة عن طريق التطبيق بتاعنا. احنا بنستخدم تكنولوجيا حديثة عشان نحافظ على خصوصيتك.', 'حتا لو مفيش كارت SIM, متخفش! تقدر تكلم سواقك بمنتهى البساطة عن طريق التطبيق بتاعنا. احنا بنستخدم تكنولوجيا حديثة عشان نحافظ على خصوصيتك.',
'Driver Finish Trip' 'This ride type allows changes, but the price may increase':
'distance is' 'ده نوع الرحلات بيسمح بالتغيير بس السعر ممكن يزيد ',
'Cost Of Trip IS ': "تكلفة الرحلة هي ", 'Cost Of Trip IS ': "تكلفة الرحلة هي ",
'message From passenger': '‏رسالة من الراكب',
'Select one message': "‏اختر رسالة", 'Select one message': "‏اختر رسالة",
'My location is correct. You can search for me using the navigation app': 'My location is correct. You can search for me using the navigation app':
'المكان اللي أنا فيه صح، ممكن تدور عليّا من خلال تطبيق الملاحة', 'المكان اللي أنا فيه صح، ممكن تدور عليّا من خلال تطبيق الملاحة',

View File

@@ -196,8 +196,8 @@ class LoginCaptin extends StatelessWidget {
displayFullTextOnTap: true, displayFullTextOnTap: true,
stopPauseOnTap: true, stopPauseOnTap: true,
), ),
// IconButton( IconButton(
// onPressed: () async { onPressed: () async {
// // String v = // // String v =
// // await storage.read(key: BoxName.serverAPI) ?? ''; // // await storage.read(key: BoxName.serverAPI) ?? '';
// // print(v); // // print(v);
@@ -248,12 +248,12 @@ class LoginCaptin extends StatelessWidget {
// print(' ENV is ' + Env.chatGPTkey); // // print(' ENV is ' + Env.chatGPTkey); //
// // print('storage is ' + v); // // // print('storage is ' + v); //
// print('storage is ' + apiKeyf!); // // print('storage is ' + apiKeyf!); //
// }, },
// icon: const Icon( icon: const Icon(
// Icons.close, Icons.close,
// color: AppColor.blueColor, color: AppColor.blueColor,
// ), ),
// ), ),
], ],
), ),
) )

View File

@@ -21,11 +21,14 @@ GetBuilder<MapDriverController> driverEndRideBar() {
decoration: AppStyle.boxDecoration1, decoration: AppStyle.boxDecoration1,
height: mapDriverController.remainingTimeTimerRideBegin < 60 height: mapDriverController.remainingTimeTimerRideBegin < 60
? mapDriverController.driverEndPage = 190 ? mapDriverController.driverEndPage = 190
: mapDriverController.carType == 'Mashwari'
? 150
: 170, : 170,
// width: 240, // width: 240,
child: Column( child: Column(
children: [ children: [
Row( mapDriverController.carType != 'Mashwari'
? Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [
Column( Column(
@@ -56,7 +59,8 @@ GetBuilder<MapDriverController> driverEndRideBar() {
], ],
), ),
], ],
), )
: const SizedBox(),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
@@ -99,28 +103,40 @@ GetBuilder<MapDriverController> driverEndRideBar() {
], ],
) )
: const SizedBox(), : const SizedBox(),
Stack( mapDriverController.carType != 'Comfort' ||
mapDriverController.carType != 'Mashwari'
? Stack(
children: [ children: [
LinearProgressIndicator( LinearProgressIndicator(
backgroundColor: AppColor.accentColor, backgroundColor: AppColor.accentColor,
color: color: mapDriverController
mapDriverController.remainingTimeTimerRideBegin < .remainingTimeTimerRideBegin <
60 60
? AppColor.redColor ? AppColor.redColor
: AppColor.greenColor, : AppColor.greenColor,
minHeight: 25, minHeight: 25,
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(15),
value: mapDriverController.progressTimerRideBegin value: mapDriverController
.progressTimerRideBegin
.toDouble(), .toDouble(),
), ),
Center( Center(
child: Text( child: Text(
mapDriverController.stringRemainingTimeRideBegin, mapDriverController
.stringRemainingTimeRideBegin,
style: AppStyle.title, style: AppStyle.title,
), ),
) )
], ],
)
: const SizedBox(),
Container(
decoration: AppStyle.boxDecoration1,
child: Text(
mapDriverController.carType,
style: AppStyle.title,
), ),
)
], ],
), ),
)) ))

View File

@@ -1,6 +1,5 @@
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:SEFER/controller/firebase/firbase_messge.dart';
@@ -63,6 +62,7 @@ class OrderRequestPage extends StatelessWidget {
); );
// void addCustomStartIcon() async { // void addCustomStartIcon() async {
// Create the marker with the resized image // Create the marker with the resized image
orderRequestController.calculateConsumptionFuel();
ImageConfiguration config = ImageConfiguration( ImageConfiguration config = ImageConfiguration(
size: const Size(25, 25), devicePixelRatio: Get.pixelRatio); size: const Size(25, 25), devicePixelRatio: Get.pixelRatio);
@@ -79,13 +79,8 @@ class OrderRequestPage extends StatelessWidget {
endIcon = value; endIcon = value;
}); });
// } // }
double mpg = 0; // orderRequestController.calculateConsumptionFuel();
calculateConsumptionFuel() {
mpg = Get.find<HomeCaptainController>().fuelPrice /
12; //todo in register car add mpg in box
}
calculateConsumptionFuel();
return MyScafolld( return MyScafolld(
title: 'Order Details'.tr, title: 'Order Details'.tr,
body: [ body: [
@@ -284,11 +279,8 @@ class OrderRequestPage extends StatelessWidget {
style: AppStyle.title, style: AppStyle.title,
children: [ children: [
TextSpan( TextSpan(
text: ((Get.find<HomeCaptainController>() text:
.fuelPrice / orderRequestController.mpg.toStringAsFixed(0),
12) *
double.parse(myList[5]))
.toStringAsFixed(2),
style: AppStyle.headTitle2), style: AppStyle.headTitle2),
], ],
), ),

View File

@@ -65,6 +65,7 @@ class OrderSpeedRequest extends StatelessWidget {
); );
// void addCustomStartIcon() async { // void addCustomStartIcon() async {
// Create the marker with the resized image // Create the marker with the resized image
orderRequestController.calculateConsumptionFuel();
ImageConfiguration config = ImageConfiguration( ImageConfiguration config = ImageConfiguration(
size: const Size(25, 25), devicePixelRatio: Get.pixelRatio); size: const Size(25, 25), devicePixelRatio: Get.pixelRatio);
@@ -292,11 +293,7 @@ class OrderSpeedRequest extends StatelessWidget {
style: AppStyle.title, style: AppStyle.title,
children: [ children: [
TextSpan( TextSpan(
text: text: orderRequestController.mpg.toStringAsFixed(0),
((Get.find<HomeCaptainController>().fuelPrice /
12) *
double.parse(myList[5]))
.toStringAsFixed(2),
style: AppStyle.headTitle2), style: AppStyle.headTitle2),
], ],
), ),

View File

@@ -26,10 +26,34 @@ class ApplyOrderWidget extends StatelessWidget {
right: 0, right: 0,
child: Container( child: Container(
decoration: AppStyle.boxDecoration1, decoration: AppStyle.boxDecoration1,
height: Get.height * .2, height: Get.height * .3,
child: ListView( child: ListView(
children: [ children: [
Text.rich( InkWell(
onTap: () {
if (box.read(BoxName.carType) == 'Speed' ||
box.read(BoxName.carType) == 'Delivery') {
Get.snackbar(
'This price is ${controller.totalPassenger.toStringAsFixed(2)}'
.tr,
'This ride type does not allow changes to the destination or additional stops'
.tr,
snackPosition: SnackPosition.BOTTOM,
duration: const Duration(seconds: 2),
backgroundColor: AppColor.yellowColor,
);
} else {
Get.snackbar(
'This price may be changed'.tr,
'This ride type allows changes, but the price may increase'
.tr,
snackPosition: SnackPosition.BOTTOM,
duration: const Duration(seconds: 2),
backgroundColor: AppColor.yellowColor,
);
}
},
child: Text.rich(
TextSpan( TextSpan(
children: [ children: [
TextSpan( TextSpan(
@@ -52,6 +76,7 @@ class ApplyOrderWidget extends StatelessWidget {
), ),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
@@ -154,7 +179,10 @@ class ApplyOrderWidget extends StatelessWidget {
}, },
child: Padding( child: Padding(
padding: padding:
const EdgeInsets.all(4), const EdgeInsets.all(10),
child: Container(
decoration:
AppStyle.boxDecoration1,
child: Text( child: Text(
'Hello, I\'m at the agreed-upon location' 'Hello, I\'m at the agreed-upon location'
.tr, .tr,
@@ -162,6 +190,7 @@ class ApplyOrderWidget extends StatelessWidget {
), ),
), ),
), ),
),
InkWell( InkWell(
onTap: () { onTap: () {
FirebaseMessagesController() FirebaseMessagesController()
@@ -174,7 +203,10 @@ class ApplyOrderWidget extends StatelessWidget {
}, },
child: Padding( child: Padding(
padding: padding:
const EdgeInsets.all(4), const EdgeInsets.all(10),
child: Container(
decoration:
AppStyle.boxDecoration1,
child: Text( child: Text(
'My location is correct. You can search for me using the navigation app' 'My location is correct. You can search for me using the navigation app'
.tr, .tr,
@@ -182,6 +214,7 @@ class ApplyOrderWidget extends StatelessWidget {
), ),
), ),
), ),
),
InkWell( InkWell(
onTap: () { onTap: () {
FirebaseMessagesController() FirebaseMessagesController()
@@ -194,13 +227,17 @@ class ApplyOrderWidget extends StatelessWidget {
}, },
child: Padding( child: Padding(
padding: padding:
const EdgeInsets.all(4), const EdgeInsets.all(10),
child: Container(
decoration:
AppStyle.boxDecoration1,
child: Text( child: Text(
'I\'m waiting for you'.tr, 'I\'m waiting for you'.tr,
style: AppStyle.title, style: AppStyle.title,
), ),
), ),
), ),
),
], ],
)); ));
}, },

View File

@@ -176,6 +176,7 @@ class CashConfirmPageShown extends StatelessWidget {
title: 'Next'.tr, title: 'Next'.tr,
onPressed: () { onPressed: () {
controller.changeCashConfirmPageShown(); controller.changeCashConfirmPageShown();
controller.isSearchingWindow = true;
controller.confirmRideForFirstDriver(); controller.confirmRideForFirstDriver();
controller.update(); controller.update();
}, },

View File

@@ -22,7 +22,7 @@ class RideBeginPassenger extends StatelessWidget {
AudioController audioController = Get.put(AudioController()); AudioController audioController = Get.put(AudioController());
return GetBuilder<MapPassengerController>(builder: (controller) { return GetBuilder<MapPassengerController>(builder: (controller) {
if ( //controller.rideTimerBegin || if ( //controller.rideTimerBegin ||
controller.statusRide == 'Begin' && !controller.statusRideFromStart) { controller.statusRide == 'Begin' || !controller.statusRideFromStart) {
return Positioned( return Positioned(
left: 10, left: 10,
right: 10, right: 10,