This commit is contained in:
Hamza-Ayed
2024-02-25 00:23:00 +03:00
parent a9f557ca83
commit b33e797f76
22 changed files with 368 additions and 159 deletions

View File

@@ -8,10 +8,13 @@ import 'package:SEFER/views/widgets/mycircular.dart';
import '../../../../constant/colors.dart';
import '../../../../constant/info.dart';
import '../../../../constant/links.dart';
import '../../../../constant/style.dart';
import '../../../../constant/table_names.dart';
import '../../../../controller/functions/crud.dart';
import '../../../../controller/functions/location_controller.dart';
import '../../../../controller/home/captin/home_captain_controller.dart';
import '../../../../controller/home/captin/map_driver_controller.dart';
import '../../../../controller/home/captin/order_request_controller.dart';
import '../../../../controller/home/captin/widget/call_page.dart';
import '../../../../controller/home/captin/widget/connect.dart';
@@ -119,7 +122,7 @@ class HomeCaptain extends StatelessWidget {
builder: (homeCaptainController) => Container(
decoration: AppStyle.boxDecoration,
width: Get.width * .8,
height: 80,
height: 104,
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
@@ -195,12 +198,31 @@ class HomeCaptain extends StatelessWidget {
// border: Border.all(),
// borderRadius: BorderRadius.circular(15)),
// child: IconButton(
// onPressed: () {
// Get.to(
// () => const DriverCallPage(),
// );
// onPressed: () async {
// CRUD().sendEmail(AppLink.sendEmailToPassengerForTripDetails, {
// 'startLocation': Get.find<MapDriverController>()
// .passengerLocation
// .toString(),
// 'endLocation': Get.find<MapDriverController>()
// .passengerDestination
// .toString(),
// 'name': Get.find<MapDriverController>().name.toString(),
// 'timeOfTrip':
// Get.find<MapDriverController>().timeOfOrder.toString(),
// 'fee': Get.find<MapDriverController>()
// .totalPassenger
// .toString(),
// 'duration':
// Get.find<MapDriverController>().duration.toString(),
// 'phone': Get.find<MapDriverController>().phone.toString(),
// 'email': Get.find<MapDriverController>().email.toString(),
// });
// },
// icon: const Icon(Fontisto.phone),
// icon: const Icon(
// MaterialCommunityIcons.map_marker_radius,
// size: 45,
// color: AppColor.blueColor,
// ),
// ),
// ),
// ),

View File

@@ -1,6 +1,8 @@
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/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';
import 'package:url_launcher/url_launcher.dart';
@@ -41,8 +43,9 @@ class GoogleMapApp extends StatelessWidget {
}
},
icon: const Icon(
Icons.map,
MaterialCommunityIcons.map_marker_radius,
size: 45,
color: AppColor.blueColor,
),
)),
)

View File

@@ -1,4 +1,5 @@
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/constant/colors.dart';
@@ -25,12 +26,12 @@ class PassengerInfoWindow extends StatelessWidget {
? Stack(
children: [
Positioned(
bottom: 50,
bottom: 5,
// left: 8,
child: AnimatedContainer(
duration: const Duration(milliseconds: 300),
height: controller.passengerInfoWindow,
width: Get.width * .96,
width: Get.width * .99,
decoration: AppStyle.boxDecoration,
child: Padding(
padding: const EdgeInsets.all(8.0),
@@ -39,10 +40,56 @@ class PassengerInfoWindow extends StatelessWidget {
children: [
DefaultTextStyle(
style: AppStyle.title,
child: Text(
'Go to passenger Location now'.tr,
style: AppStyle.title
.copyWith(color: AppColor.greenColor),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
'Go to passenger Location now'.tr,
style: AppStyle.title
.copyWith(color: AppColor.greenColor),
),
controller.isRideBegin
? const SizedBox()
: Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: [
GestureDetector(
onTap: () async {
controller.isSocialPressed =
true;
await controller
.driverCallPassenger();
Get.to(
() => const CallPage());
// launchCommunication('phone',
// controller.phone.toString(), '');
},
child: const Icon(
Icons.phone,
color: AppColor.blueColor,
)),
const SizedBox(
width: 25,
),
GestureDetector(
onTap: () {
controller.isSocialPressed =
true;
launchCommunication(
'email',
controller.phone
.toString(),
'${'Hello this is Driver'.tr} ${box.read(BoxName.nameDriver)}');
},
child: const Icon(
Icons.email,
color: AppColor.redColor,
)),
],
),
],
)
// AnimatedTextKit(
// animatedTexts: [
@@ -64,9 +111,10 @@ class PassengerInfoWindow extends StatelessWidget {
),
Row(
children: [
Text('Duration of the Ride is '.tr,
style: AppStyle.title),
Text('${controller.duration} ${'Minute'.tr}',
Text(
controller.hours > 1
? '${'${'Your Ride Duration is '.tr}${controller.hours}${' H and'.tr}'} ${controller.minutes} m'
: '${'Your Ride Duration is '.tr} ${controller.minutes} ${'m'.tr}',
style: AppStyle.title),
],
),
@@ -90,69 +138,23 @@ class PassengerInfoWindow extends StatelessWidget {
),
],
),
controller.isRideBegin
? const SizedBox()
: Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: [
IconButton(
onPressed: () async {
controller.isSocialPressed = true;
await controller
.driverCallPassenger();
Get.to(() => const CallPage());
// launchCommunication('phone',
// controller.phone.toString(), '');
},
icon: const Icon(
Icons.phone,
color: AppColor.blueColor,
)),
// IconButton(
// onPressed: () async {
// controller.isSocialPressed = true;
// await controller
// .driverCallPassenger();
// launchCommunication(
// 'whatsapp',
// controller.phone.toString(),
// '${'Hello this is Driver'.tr} ${box.read(BoxName.nameDriver)}');
// },
// icon: const Icon(
// FontAwesome.whatsapp,
// color: AppColor.greenColor,
// )),
// IconButton(
// onPressed: () async {
// controller.isSocialPressed = true;
// await controller
// .driverCallPassenger();
// launchCommunication(
// 'sms',
// controller.phone.toString(),
// '${'Hello this is Driver'.tr} ${box.read(BoxName.nameDriver)}');
// },
// icon: const Icon(
// Icons.sms_rounded,
// color: AppColor.blueColor,
// )),
IconButton(
onPressed: () {
controller.isSocialPressed = true;
launchCommunication(
'email',
controller.phone.toString(),
'${'Hello this is Driver'.tr} ${box.read(BoxName.nameDriver)}');
},
icon: const Icon(
Icons.email,
color: AppColor.redColor,
)),
],
),
Card(
elevation: 5,
color: AppColor.greenColor,
child: Padding(
padding: const EdgeInsets.all(4),
child: Row(
children: [
Text('Total Cost is '.tr,
style: AppStyle.title),
Text(
controller.totalPassenger.toString(),
style: AppStyle.title,
),
],
),
),
),
controller.remainingTimeToPassenger != 0
? Stack(
children: [
@@ -331,7 +333,7 @@ class PassengerInfoWindow extends StatelessWidget {
)
: controller.remainingTimeToShowPassengerInfoWindowFromDriver > 0 //
? Positioned(
bottom: Get.height * .3,
bottom: Get.height * .2,
left: 15,
child: Container(
decoration: AppStyle.boxDecoration,

View File

@@ -227,6 +227,7 @@ class OrderRequestPage extends StatelessWidget {
'Distance': myList[5].toString(),
'name': myList[8].toString(),
'phone': myList[10].toString(),
'email': myList[28].toString(),
'WalletChecked': myList[13].toString(),
'tokenPassenger': myList[9].toString(),
'direction':
@@ -247,6 +248,7 @@ class OrderRequestPage extends StatelessWidget {
'step4': myList[25].toString(),
'passengerWalletBurc': myList[26].toString(),
'timeOfOrder': DateTime.now().toString(),
'totalPassenger': myList[2].toString(),
});
},
),

View File

@@ -1,3 +1,4 @@
import 'package:SEFER/views/home/profile/feed_back_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
@@ -32,9 +33,56 @@ class RideBeginPassenger extends StatelessWidget {
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'You will arrive to your destination after timer end.'.tr,
style: AppStyle.title,
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
children: [
Text(
// 'You will arrive to your destination after timer end.'.tr,
'Time to arrive'.tr,
style: AppStyle.title,
),
Text(
controller.arrivalTime,
style: AppStyle.title,
),
],
),
Column(
children: [
Text(
'Total Cost'.tr,
style: AppStyle.title,
),
Text(
controller.totalPassenger.toStringAsFixed(2),
style: AppStyle.title,
),
],
),
Row(
children: [
Column(
children: [
Text('Write note'.tr),
IconButton(
onPressed: () {
Get.to(
() => FeedBackPage(),
transition: Transition.downToUp,
);
},
icon: const Icon(
Icons.note_add,
color: AppColor.redColor,
),
),
],
),
],
),
],
),
Stack(
children: [
@@ -44,7 +92,7 @@ class RideBeginPassenger extends StatelessWidget {
color: controller.remainingTimeTimerRideBegin < 60
? AppColor.redColor
: AppColor.greenColor,
minHeight: 45,
minHeight: 25,
borderRadius: BorderRadius.circular(15),
value: controller.progressTimerRideBegin.toDouble(),
),
@@ -133,7 +181,7 @@ class RideBeginPassenger extends StatelessWidget {
phoneNumber = phoneNumber.replaceAll('0', '');
print(phoneNumber); // Output: 798583061
var phone =
'+962${box.read(BoxName.sosPhonePassenger)}';
'+${box.read(BoxName.countryCode)}${box.read(BoxName.sosPhonePassenger)}';
controller.sendWhatsapp(phone);
}
},

View File

@@ -12,9 +12,11 @@ GetBuilder<MapPassengerController> timerForCancelTripFromPassenger() {
return controller.remainingTime > 0 && controller.remainingTime != 25
? Positioned(
bottom: Get.height * .35,
left: Get.width * .05,
bottom: 5,
left: 10,
right: 10,
child: Container(
height: 180,
decoration: AppStyle.boxDecoration,
child: Padding(
padding: const EdgeInsets.all(8.0),

View File

@@ -50,7 +50,7 @@ class TimerToPassengerFromDriver extends StatelessWidget {
60
? AppColor.redColor
: AppColor.greenColor,
minHeight: 50,
minHeight: 25,
borderRadius: BorderRadius.circular(15),
value: controller
.progressTimerToPassengerFromDriverAfterApplied
@@ -64,6 +64,13 @@ class TimerToPassengerFromDriver extends StatelessWidget {
)
],
),
IconButton(
onPressed: () {},
icon: const Icon(
Icons.phone,
color: AppColor.blueColor,
),
),
controller.remainingTimeToPassengerFromDriverAfterApplied < 60
? MyElevatedButton(
title: 'You can cancel trip'.tr,

View File

@@ -298,3 +298,52 @@ class EducationDegreePicker extends StatelessWidget {
);
}
}
class CountryPicker extends StatelessWidget {
final ProfileController controller = Get.put(ProfileController());
final List<String> countryOptions = [
'Jordan'.tr,
'USA'.tr,
'Egypt'.tr,
'Turkey'.tr,
'Saudi Arabia'.tr,
'Qatar'.tr,
'Bahrain'.tr,
'Kuwait'.tr,
];
CountryPicker({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
SizedBox(
height: 300,
child: CupertinoPicker(
itemExtent: 32,
onSelectedItemChanged: (int index) {
controller.setCountry(countryOptions[index]);
},
children: List.generate(
countryOptions.length,
(index) => Center(
child: Text(
countryOptions[index],
style: AppStyle.title,
),
),
),
),
),
MyElevatedButton(
title: controller.selectedCountry.toString(),
onPressed: () {
box.write(
BoxName.countryCode, controller.selectedCountry.toString());
})
],
);
}
}