4/10/5
This commit is contained in:
4
.env
4
.env
@@ -9,7 +9,7 @@ transactionCloude=Qhcwilomqcoib:QVO_JNYED2XWA26YXKC2TP:YK1DVH6SJB31N3PE1UXrXlBl
|
||||
visionApi=3pALsqSSYTvzp69Q5FMIgbzjG6Z1zktJXrXlBl
|
||||
chatGPTkeySefer=zg-IiR34ooza3Yvhvb9rZk1C9XrxgUE0l8jRRZrHj3Qe5QXPlqVXrXlBl
|
||||
chatGPTkeySeferNew=zg-Z4AJcAROgNXjgrEIU8fKC9XrxgUE4Qtrrlq1yiux0jL3dITSXrXlBl
|
||||
secretKey=mk_femf_56O3CFOSBEVrOUA5MDgaoMM14xXHRzhNy7Fl5OSmcZzjqLpu9RyDTC8ttuP80Fp20FN6PQoNo2eTHllRiQs8rBTPX99Lr4CS8x7DlDrXrXrXlBl
|
||||
secretKey=zg_ropj_57Iiv6MFCBFq3C2n6IXlmjykpxDmW93SW3vvXh68UA9T5FORTWgWsT37StKsOPdwDdsy8qR9srMUluahs3nPHvgBa33tGk90vV5XrXlBl
|
||||
stripe_publishableKe=vg_ropj_57Iiv6MFCBFq3C2n6kNJnZByV6nuDtXe9IjEPOfhmpDtWmt3MLR0gQpiHcQmAFMUPrZc3QiCDjxBZLbxDC3efxWxz33bWH1ZgrsXrXlBl
|
||||
llamaKey=RR-EuyoFDUvfRDBj46fZKAtKJ3voM8Mt768cPeJV7GNdAkPTKdY8Odm9n4ggGqI5GyoXrXlBl
|
||||
serverPHP=https://ride.mobile-app.store
|
||||
@@ -23,5 +23,3 @@ geminiApi=QOmqZsQYm08vOqjI7klVJfvP4WBFEoemjgy396iXrXlBl
|
||||
geminiApiMasa=QOmqZsQIdM4BRsKmaDJOP7dZp5-c6NWfch7PAlQXrXlBl
|
||||
agoraAppId=71880f2j636509j24y5294480y30u848XrXlBl
|
||||
agoraAppCertificate=j17q944u49390q758u1649448q2y6xfuXrXlBl
|
||||
|
||||
|
||||
|
||||
@@ -348,6 +348,8 @@ class FirebaseMessagesController extends GetxController {
|
||||
return Get.defaultDialog(
|
||||
barrierDismissible: false,
|
||||
title: 'message From passenger'.tr,
|
||||
titleStyle: AppStyle.title,
|
||||
middleTextStyle: AppStyle.title,
|
||||
middleText: message.tr,
|
||||
confirm: MyElevatedButton(
|
||||
title: 'Ok'.tr,
|
||||
|
||||
@@ -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 {
|
||||
var res = await CRUD().get(
|
||||
link: AppLink.getCountRide,
|
||||
|
||||
@@ -535,6 +535,11 @@ class MapDriverController extends GetxController {
|
||||
// print(durationOfRideValue);
|
||||
int durationOfRide = int.parse(durationOfRideValue);
|
||||
update();
|
||||
int infinity = 40000;
|
||||
if (carType == 'Comfort' || carType == 'Mashwari') {
|
||||
durationOfRide = infinity;
|
||||
update();
|
||||
}
|
||||
for (int i = 0; i <= durationOfRide; i++) {
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
recentDistanceToDash = Get.find<LocationController>().totalDistance;
|
||||
@@ -547,7 +552,7 @@ class MapDriverController extends GetxController {
|
||||
? (i ~/ 60) +
|
||||
(recentDistanceToDash *
|
||||
Get.find<HomeCaptainController>().speedPrice)
|
||||
: carType == 'Delivery'
|
||||
: carType == 'Mashwari'
|
||||
? (i ~/ 60) +
|
||||
(recentDistanceToDash *
|
||||
Get.find<HomeCaptainController>().deliveryPrice)
|
||||
@@ -569,8 +574,8 @@ class MapDriverController extends GetxController {
|
||||
int seconds = remainingTimeTimerRideBegin % 60;
|
||||
stringRemainingTimeRideBegin =
|
||||
'$minutes:${seconds.toString().padLeft(2, '0')}';
|
||||
int minutes1 = (rideTimerFromBegin / 60).floor();
|
||||
int seconds1 = rideTimerFromBegin % 60;
|
||||
int minutes1 = (i / 60).floor();
|
||||
int seconds1 = i % 60;
|
||||
stringRemainingTimeRideBegin1 =
|
||||
'$minutes1:${seconds1.toString().padLeft(2, '0')}';
|
||||
update();
|
||||
|
||||
@@ -9,6 +9,7 @@ import '../../../constant/box_name.dart';
|
||||
import '../../../constant/table_names.dart';
|
||||
import '../../functions/crud.dart';
|
||||
import '../../functions/location_controller.dart';
|
||||
import 'home_captain_controller.dart';
|
||||
|
||||
class OrderRequestController extends GetxController {
|
||||
double progress = 0;
|
||||
@@ -24,7 +25,7 @@ class OrderRequestController extends GetxController {
|
||||
@override
|
||||
void onInit() {
|
||||
getRefusedOrderByCaptain();
|
||||
|
||||
// calculateConsumptionFuel();
|
||||
update();
|
||||
super.onInit();
|
||||
}
|
||||
@@ -34,6 +35,12 @@ class OrderRequestController extends GetxController {
|
||||
update();
|
||||
}
|
||||
|
||||
double mpg = 0;
|
||||
calculateConsumptionFuel() {
|
||||
mpg = Get.find<HomeCaptainController>().fuelPrice /
|
||||
12; //todo in register car add mpg in box
|
||||
}
|
||||
|
||||
void getRefusedOrderByCaptain() async {
|
||||
DateTime today = DateTime.now();
|
||||
int todayDay = today.day;
|
||||
|
||||
@@ -478,11 +478,15 @@ class MyTranslation extends Translations {
|
||||
'Distance from Passenger to destination 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.':
|
||||
'حتا لو مفيش كارت SIM, متخفش! تقدر تكلم سواقك بمنتهى البساطة عن طريق التطبيق بتاعنا. احنا بنستخدم تكنولوجيا حديثة عشان نحافظ على خصوصيتك.',
|
||||
'Driver Finish Trip'
|
||||
'distance is'
|
||||
'This ride type allows changes, but the price may increase':
|
||||
'ده نوع الرحلات بيسمح بالتغيير بس السعر ممكن يزيد ',
|
||||
'Cost Of Trip IS ': "تكلفة الرحلة هي ",
|
||||
'message From passenger': 'رسالة من الراكب',
|
||||
'Select one message': "اختر رسالة",
|
||||
'My location is correct. You can search for me using the navigation app':
|
||||
'المكان اللي أنا فيه صح، ممكن تدور عليّا من خلال تطبيق الملاحة',
|
||||
|
||||
@@ -196,8 +196,8 @@ class LoginCaptin extends StatelessWidget {
|
||||
displayFullTextOnTap: true,
|
||||
stopPauseOnTap: true,
|
||||
),
|
||||
// IconButton(
|
||||
// onPressed: () async {
|
||||
IconButton(
|
||||
onPressed: () async {
|
||||
// // String v =
|
||||
// // await storage.read(key: BoxName.serverAPI) ?? '';
|
||||
// // print(v);
|
||||
@@ -248,12 +248,12 @@ class LoginCaptin extends StatelessWidget {
|
||||
// print(' ENV is ' + Env.chatGPTkey); //
|
||||
// // print('storage is ' + v); //
|
||||
// print('storage is ' + apiKeyf!); //
|
||||
// },
|
||||
// icon: const Icon(
|
||||
// Icons.close,
|
||||
// color: AppColor.blueColor,
|
||||
// ),
|
||||
// ),
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.close,
|
||||
color: AppColor.blueColor,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
|
||||
@@ -21,11 +21,14 @@ GetBuilder<MapDriverController> driverEndRideBar() {
|
||||
decoration: AppStyle.boxDecoration1,
|
||||
height: mapDriverController.remainingTimeTimerRideBegin < 60
|
||||
? mapDriverController.driverEndPage = 190
|
||||
: mapDriverController.carType == 'Mashwari'
|
||||
? 150
|
||||
: 170,
|
||||
// width: 240,
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
mapDriverController.carType != 'Mashwari'
|
||||
? Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Column(
|
||||
@@ -56,7 +59,8 @@ GetBuilder<MapDriverController> driverEndRideBar() {
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
: const SizedBox(),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
@@ -99,28 +103,40 @@ GetBuilder<MapDriverController> driverEndRideBar() {
|
||||
],
|
||||
)
|
||||
: const SizedBox(),
|
||||
Stack(
|
||||
mapDriverController.carType != 'Comfort' ||
|
||||
mapDriverController.carType != 'Mashwari'
|
||||
? Stack(
|
||||
children: [
|
||||
LinearProgressIndicator(
|
||||
backgroundColor: AppColor.accentColor,
|
||||
color:
|
||||
mapDriverController.remainingTimeTimerRideBegin <
|
||||
color: mapDriverController
|
||||
.remainingTimeTimerRideBegin <
|
||||
60
|
||||
? AppColor.redColor
|
||||
: AppColor.greenColor,
|
||||
minHeight: 25,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
value: mapDriverController.progressTimerRideBegin
|
||||
value: mapDriverController
|
||||
.progressTimerRideBegin
|
||||
.toDouble(),
|
||||
),
|
||||
Center(
|
||||
child: Text(
|
||||
mapDriverController.stringRemainingTimeRideBegin,
|
||||
mapDriverController
|
||||
.stringRemainingTimeRideBegin,
|
||||
style: AppStyle.title,
|
||||
),
|
||||
)
|
||||
],
|
||||
)
|
||||
: const SizedBox(),
|
||||
Container(
|
||||
decoration: AppStyle.boxDecoration1,
|
||||
child: Text(
|
||||
mapDriverController.carType,
|
||||
style: AppStyle.title,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
))
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:SEFER/constant/box_name.dart';
|
||||
import 'package:SEFER/controller/firebase/firbase_messge.dart';
|
||||
@@ -63,6 +62,7 @@ class OrderRequestPage extends StatelessWidget {
|
||||
);
|
||||
// void addCustomStartIcon() async {
|
||||
// Create the marker with the resized image
|
||||
orderRequestController.calculateConsumptionFuel();
|
||||
|
||||
ImageConfiguration config = ImageConfiguration(
|
||||
size: const Size(25, 25), devicePixelRatio: Get.pixelRatio);
|
||||
@@ -79,13 +79,8 @@ class OrderRequestPage extends StatelessWidget {
|
||||
endIcon = value;
|
||||
});
|
||||
// }
|
||||
double mpg = 0;
|
||||
calculateConsumptionFuel() {
|
||||
mpg = Get.find<HomeCaptainController>().fuelPrice /
|
||||
12; //todo in register car add mpg in box
|
||||
}
|
||||
// orderRequestController.calculateConsumptionFuel();
|
||||
|
||||
calculateConsumptionFuel();
|
||||
return MyScafolld(
|
||||
title: 'Order Details'.tr,
|
||||
body: [
|
||||
@@ -284,11 +279,8 @@ class OrderRequestPage extends StatelessWidget {
|
||||
style: AppStyle.title,
|
||||
children: [
|
||||
TextSpan(
|
||||
text: ((Get.find<HomeCaptainController>()
|
||||
.fuelPrice /
|
||||
12) *
|
||||
double.parse(myList[5]))
|
||||
.toStringAsFixed(2),
|
||||
text:
|
||||
orderRequestController.mpg.toStringAsFixed(0),
|
||||
style: AppStyle.headTitle2),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -65,6 +65,7 @@ class OrderSpeedRequest extends StatelessWidget {
|
||||
);
|
||||
// void addCustomStartIcon() async {
|
||||
// Create the marker with the resized image
|
||||
orderRequestController.calculateConsumptionFuel();
|
||||
|
||||
ImageConfiguration config = ImageConfiguration(
|
||||
size: const Size(25, 25), devicePixelRatio: Get.pixelRatio);
|
||||
@@ -292,11 +293,7 @@ class OrderSpeedRequest extends StatelessWidget {
|
||||
style: AppStyle.title,
|
||||
children: [
|
||||
TextSpan(
|
||||
text:
|
||||
((Get.find<HomeCaptainController>().fuelPrice /
|
||||
12) *
|
||||
double.parse(myList[5]))
|
||||
.toStringAsFixed(2),
|
||||
text: orderRequestController.mpg.toStringAsFixed(0),
|
||||
style: AppStyle.headTitle2),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -26,10 +26,34 @@ class ApplyOrderWidget extends StatelessWidget {
|
||||
right: 0,
|
||||
child: Container(
|
||||
decoration: AppStyle.boxDecoration1,
|
||||
height: Get.height * .2,
|
||||
height: Get.height * .3,
|
||||
child: ListView(
|
||||
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(
|
||||
children: [
|
||||
TextSpan(
|
||||
@@ -52,6 +76,7 @@ class ApplyOrderWidget extends StatelessWidget {
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
@@ -154,7 +179,10 @@ class ApplyOrderWidget extends StatelessWidget {
|
||||
},
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.all(4),
|
||||
const EdgeInsets.all(10),
|
||||
child: Container(
|
||||
decoration:
|
||||
AppStyle.boxDecoration1,
|
||||
child: Text(
|
||||
'Hello, I\'m at the agreed-upon location'
|
||||
.tr,
|
||||
@@ -162,6 +190,7 @@ class ApplyOrderWidget extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
FirebaseMessagesController()
|
||||
@@ -174,7 +203,10 @@ class ApplyOrderWidget extends StatelessWidget {
|
||||
},
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.all(4),
|
||||
const EdgeInsets.all(10),
|
||||
child: Container(
|
||||
decoration:
|
||||
AppStyle.boxDecoration1,
|
||||
child: Text(
|
||||
'My location is correct. You can search for me using the navigation app'
|
||||
.tr,
|
||||
@@ -182,6 +214,7 @@ class ApplyOrderWidget extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
FirebaseMessagesController()
|
||||
@@ -194,13 +227,17 @@ class ApplyOrderWidget extends StatelessWidget {
|
||||
},
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.all(4),
|
||||
const EdgeInsets.all(10),
|
||||
child: Container(
|
||||
decoration:
|
||||
AppStyle.boxDecoration1,
|
||||
child: Text(
|
||||
'I\'m waiting for you'.tr,
|
||||
style: AppStyle.title,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
));
|
||||
},
|
||||
|
||||
@@ -176,6 +176,7 @@ class CashConfirmPageShown extends StatelessWidget {
|
||||
title: 'Next'.tr,
|
||||
onPressed: () {
|
||||
controller.changeCashConfirmPageShown();
|
||||
controller.isSearchingWindow = true;
|
||||
controller.confirmRideForFirstDriver();
|
||||
controller.update();
|
||||
},
|
||||
|
||||
@@ -22,7 +22,7 @@ class RideBeginPassenger extends StatelessWidget {
|
||||
AudioController audioController = Get.put(AudioController());
|
||||
return GetBuilder<MapPassengerController>(builder: (controller) {
|
||||
if ( //controller.rideTimerBegin ||
|
||||
controller.statusRide == 'Begin' && !controller.statusRideFromStart) {
|
||||
controller.statusRide == 'Begin' || !controller.statusRideFromStart) {
|
||||
return Positioned(
|
||||
left: 10,
|
||||
right: 10,
|
||||
|
||||
Reference in New Issue
Block a user