This commit is contained in:
Hamza-Ayed
2023-11-25 14:05:02 +03:00
parent 1d2ceed031
commit a8d6c509c1
37 changed files with 679 additions and 307 deletions

View File

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/views/widgets/my_scafold.dart';
class HistoryCaptain extends StatelessWidget {
const HistoryCaptain({super.key});
@override
Widget build(BuildContext context) {
return MyScafolld(
title: 'History Page'.tr,
body: [],
isleading: true,
);
}
}

View File

@@ -0,0 +1,104 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/main.dart';
import 'package:ride/views/auth/captin/logout_captain.dart';
import 'package:ride/views/home/Captin/history_captain.dart';
import 'package:ride/views/home/Captin/home_captain/help_captain.dart';
import 'package:ride/views/home/Captin/settings_captain.dart';
import 'package:ride/views/home/my_wallet/walet_captain.dart';
import 'package:ride/views/home/profile/profile_captain.dart';
import 'package:ride/views/notification/notification_captain.dart';
class DrawerCaptain extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Drawer(
child: Column(
children: [
// Other drawer items
UserAccountsDrawerHeader(
decoration: const BoxDecoration(
color: AppColor.greenColor,
gradient: LinearGradient(
colors: [
AppColor.greenColor,
AppColor.yellowColor
], // Define your gradient colors
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
),
accountName: Text(box.read(BoxName.nameDriver)),
accountEmail: Text(box.read(BoxName.emailDriver)),
currentAccountPicture: const CircleAvatar(
backgroundImage: AssetImage('path_to_profile_image'),
), //todo image from server
),
ListTile(
leading: const Icon(Icons.account_balance_wallet),
title: const Text('Wallet'),
onTap: () {
// Handle wallet item tap
Get.to(() => const WaletCaptain(), transition: Transition.native);
},
),
ListTile(
leading: const Icon(Icons.person),
title: const Text('Profile'),
onTap: () {
// Handle profile item tap
Get.to(() => const ProfileCaptain(),
transition: Transition.rightToLeftWithFade);
},
),
ListTile(
leading: const Icon(Icons.history),
title: const Text('History of Trip'),
onTap: () {
Get.to(() => const HistoryCaptain(),
transition: Transition.downToUp);
// Handle history of trip item tap
},
),
ListTile(
leading: const Icon(Icons.notifications),
title: const Text('Notifications'),
onTap: () {
// Handle notifications item tap
Get.to(() => const NotificationCaptain(),
transition: Transition.upToDown);
},
),
ListTile(
leading: const Icon(Icons.help),
title: const Text('Helping Center'),
onTap: () {
// Handle helping center item tap
Get.to(() => const HelpCaptain(), transition: Transition.size);
},
),
ListTile(
leading: const Icon(Icons.settings),
title: const Text('Settings'),
onTap: () {
// Handle settings item tap
Get.to(() => const SettingsCaptain(),
transition: Transition.cupertino);
},
),
ListTile(
leading: const Icon(Icons.exit_to_app),
title: const Text('Sign Out'),
onTap: () {
// Handle sign out item tap
Get.to(() => const LogoutCaptain(),
transition: Transition.cupertinoDialog);
},
),
],
),
);
}
}

View File

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/views/widgets/my_scafold.dart';
class HelpCaptain extends StatelessWidget {
const HelpCaptain({super.key});
@override
Widget build(BuildContext context) {
return MyScafolld(
title: 'Helping Page'.tr,
body: [],
isleading: true,
);
}
}

View File

@@ -1,27 +1,22 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/info.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/constant/table_names.dart';
import 'package:ride/controller/home/captin/home_captain_controller.dart';
import 'package:ride/controller/home/captin/order_request_controller.dart';
import 'package:ride/controller/home/captin/widget/left_menu_map_captain.dart';
import 'package:ride/controller/payment/payment_controller.dart';
import 'package:ride/main.dart';
import 'package:ride/views/Rate/ride_calculate_driver.dart';
import 'package:ride/views/home/Captin/bottom_bar.dart';
import 'package:ride/views/home/Captin/camer_widget.dart';
import 'package:ride/views/home/Captin/text_scanner.dart';
import 'package:ride/views/widgets/circle_container.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:ride/views/home/Captin/home_captain/drawer_captain.dart';
import '../../../controller/functions/location_controller.dart';
import '../../../controller/home/captin/widget/connect.dart';
import '../../widgets/mycircular.dart';
import 'passportimage.dart';
import '../../../../constant/colors.dart';
import '../../../../constant/info.dart';
import '../../../../constant/style.dart';
import '../../../../constant/table_names.dart';
import '../../../../controller/functions/location_controller.dart';
import '../../../../controller/home/captin/home_captain_controller.dart';
import '../../../../controller/home/captin/order_request_controller.dart';
import '../../../../controller/home/captin/widget/connect.dart';
import '../../../../controller/home/captin/widget/left_menu_map_captain.dart';
import '../../../../main.dart';
import '../../../widgets/circle_container.dart';
import '../../../widgets/elevated_btn.dart';
import '../text_scanner.dart';
class HomeCaptain extends StatelessWidget {
HomeCaptain({super.key});
@@ -65,15 +60,7 @@ class HomeCaptain extends StatelessWidget {
)))
],
),
drawer: Drawer(
child: Column(
children: [
// Other drawer items
MyElevatedButton(title: 'Sign Out'.tr, onPressed: () {})
],
),
),
drawer: DrawerCaptain(),
body: Stack(
children: [
GetBuilder<HomeCaptainController>(
@@ -100,43 +87,11 @@ class HomeCaptain extends StatelessWidget {
// liteModeEnabled: true,
),
),
// GetBuilder<LocationController>(
// builder: (locationController) => Column(
// children: [
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// Text(
// '${locationController.myLocation}',
// style: AppStyle.subtitle,
// ),
// Text(
// '${DateTime.now()}',
// style: AppStyle.subtitle,
// )
// ],
// ),
// ),
// // TextButton(
// // onPressed: () {
// // MyClass().exampleUsage();
// // },
// // child: Text(
// // "Text Button",
// // ),
// // ),
// ],
// )),
Positioned(
bottom: 10,
right: Get.width * .1,
left: Get.width * .1,
child: const ConnectWidget()),
Positioned(
top: 5,
right: Get.width * .17,
@@ -226,55 +181,6 @@ class HomeCaptain extends StatelessWidget {
),
),
),
// TextButton(
// onPressed: () {
// Get.to(
// () => CameraWidgetCardId(),
// );
// },
// child: const Text(
// "Text IdCamera",
// ),
// ),
// TextButton(
// onPressed: () {
// Get.to(
// () => CameraWidgetPassPort(),
// );
// },
// child: const Text(
// " CameraWidgetPassPort",
// ),
// ),
// TextButton(
// onPressed: () {
// Get.to(() => HomeScreen());
// },
// child: const Text(
// "Home Screen",
// ),
// ),
TextButton(
onPressed: () {
Get.to(() => const TextRecognizerAPI());
},
child: const Text(
"scan licnse",
),
),
// TextButton(
// onPressed: () {
// PaymentController().makePayment(
// 14,
// 'USD',
// () => Get.snackbar('Yes you pay success', '',
// backgroundColor: Colors.greenAccent));
// },
// child: const Text(
// "Pay 18 dollar",
// ),
// ),
leftMainMenuCaptainIcons(),
],
),

View File

@@ -41,7 +41,9 @@ class SosConnect extends StatelessWidget {
onTap: () {
launchCommunication(
'whatsapp',
'0798583052', //todo add number from driver
'962' +
box.read(BoxName
.phoneDriver), //todo add number from driver
'Hello this is Captain'.tr +
' ${box.read(BoxName.nameDriver)}');
},

View File

@@ -0,0 +1,262 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/controller/firebase/firbase_messge.dart';
import 'package:ride/main.dart';
import 'package:ride/views/home/Captin/driver_map_page.dart';
import 'package:ride/views/widgets/my_scafold.dart';
import '../../../../constant/colors.dart';
import '../../../../constant/links.dart';
import '../../../../constant/style.dart';
import '../../../../controller/functions/crud.dart';
import '../../../../controller/functions/launch.dart';
import '../../../../controller/home/captin/order_request_controller.dart';
import '../../../widgets/elevated_btn.dart';
class OrderRequestPage extends StatelessWidget {
OrderRequestPage({super.key});
OrderRequestController orderRequestController =
Get.put(OrderRequestController());
@override
Widget build(BuildContext context) {
final arguments = Get.arguments;
final myListString = arguments['myListString'];
final myList = arguments['DriverList'];
final body = arguments['body'];
orderRequestController.startTimer(myList[6].toString(), body.toString());
return MyScafolld(
title: 'Order Request Page'.tr,
body: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Text(message.notification!.body.toString()),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
TextButton.icon(
onPressed: () {
String mapUrl =
'https://www.google.com/maps/dir/${myList[0]}/${myList[1]}/';
print(mapUrl);
launchUrl1(mapUrl);
},
icon: const Icon(Icons.map),
label: Text('Rouats of Trip'.tr)),
myList[13].toString() ==
'true' //Visa or Cash Method from notify to driver
? Text(
'Visa',
style: AppStyle.title,
)
: Text('Cash', style: AppStyle.title)
],
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
text: 'Passenger Name is '.tr,
style: AppStyle.title,
children: [
TextSpan(text: myList[8], style: AppStyle.headtitle2),
],
),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
text: 'Total From Passenger is '.tr,
style: AppStyle.title,
children: [
TextSpan(
text: double.parse(myList[2]).toStringAsFixed(2),
style: AppStyle.headtitle2),
],
),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
text: 'Duration To Passenger is '.tr,
style: AppStyle.title,
children: [
TextSpan(
text: myList[11].toString(),
style: AppStyle.headtitle2),
],
),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
text: 'Distance To Passenger is '.tr,
style: AppStyle.title,
children: [
TextSpan(
text: myList[12].toString(),
style: AppStyle.headtitle2),
],
),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
text: 'Total For You is '.tr,
style: AppStyle.title,
children: [
TextSpan(
text: double.parse(myList[3]).toStringAsFixed(2),
style: AppStyle.headtitle2),
],
),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
text: 'Distance is '.tr,
style: AppStyle.title,
children: [
TextSpan(
text: myList[5].toString(),
style: AppStyle.headtitle2),
TextSpan(text: ' KM'.tr, style: AppStyle.title),
]),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
text: 'Duration of Trip is '.tr,
style: AppStyle.title,
children: [
TextSpan(
text: myList[4].toString(),
style: AppStyle.headtitle2),
TextSpan(text: ' Minutes'.tr, style: AppStyle.title),
]),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
MyElevatedButton(
title: 'Apply Order'.tr,
onPressed: () async {
box.write(BoxName.statusDriverLocation, 'on');
orderRequestController.changeApplied();
await CRUD().postFromDialogue(
link: AppLink.addDriverOrder,
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id': body.toString(),
'status': 'Apply'
});
// Get.back();
List<String> bodyToPassenger = [
box.read(BoxName.driverID).toString(),
box.read(BoxName.nameDriver).toString(),
box.read(BoxName.tokenDriver).toString(),
];
// print(bodyToPassenger);
// FirebaseMessagesController()
// .sendNotificationToPassengerToken(
// 'Apply Ride',
// arguments['DriverList'][9].toString(),
// arguments['DriverList'][9].toString(),
// // box.read(BoxName.tokenDriver).toString(),
// bodyToPassenger,
// );
Get.back();
Get.to(() => PassengerLocationMapPage(), arguments: {
'passengerLocation': myList[0].toString(),
'Duration': myList[4].toString(),
'Distance': myList[5].toString(),
'name': myList[8].toString(),
'phone': myList[10].toString(),
'WalletChecked': myList[13].toString(),
'tokenPassenger': myList[9].toString(),
'direction':
'https://www.google.com/maps/dir/${myList[0]}/${myList[1]}/',
'DurationToPassenger': myList[15].toString(),
'rideId': myList[16].toString(),
'passengerId': myList[7].toString(),
'driverId': myList[18].toString(),
'durationOfRideValue': myList[19].toString(),
'paymentAmount': myList[3].toString(),
'paymentMethod': myList[13].toString(),
});
},
),
GetBuilder<OrderRequestController>(
builder: (timerController) {
final isNearEnd = timerController.remainingTime <=
5; // Define a threshold for "near end"
return Stack(
alignment: Alignment.center,
children: [
CircularProgressIndicator(
value: timerController.progress,
// Set the color based on the "isNearEnd" condition
color: isNearEnd ? Colors.red : Colors.blue,
),
Text(
'${timerController.remainingTime}',
style: AppStyle.number,
),
],
);
},
),
MyElevatedButton(
title: 'Refuse Order'.tr,
onPressed: () async {
List<String> bodyToPassenger = [
box.read(BoxName.driverID).toString(),
box.read(BoxName.nameDriver).toString(),
box.read(BoxName.tokenDriver).toString(),
];
orderRequestController.refuseOrder(
myList[16].toString(), body.toString());
FirebaseMessagesController()
.sendNotificationToPassengerToken(
'Refused Ride',
'${box.read(BoxName.nameDriver)} rejct your order.',
arguments['DriverList'][9].toString(),
// box.read(BoxName.tokenDriver).toString(),
bodyToPassenger,
);
},
kolor: AppColor.redColor,
),
],
),
)
],
)
],
isleading: true);
}
}

View File

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/views/widgets/my_scafold.dart';
class SettingsCaptain extends StatelessWidget {
const SettingsCaptain({super.key});
@override
Widget build(BuildContext context) {
return MyScafolld(
title: 'Settings'.tr,
body: [],
isleading: true,
);
}
}

View File

@@ -1,16 +1,16 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/controller/home/map_passenger_controller.dart';
import 'package:ride/views/home/map_widget.dart/cancel_raide_page.dart';
import 'package:ride/views/home/map_widget.dart/ride_begin_passenger.dart';
import '../../constant/colors.dart';
import '../../controller/home/map_passenger_controller.dart';
import '../../views/home/map_widget.dart/cancel_raide_page.dart';
import '../../views/home/map_widget.dart/ride_begin_passenger.dart';
import '../../controller/home/menu_controller.dart';
import 'map_widget.dart/buttom_sheet_map_show.dart';
import 'map_widget.dart/cash_confirm_bottom_page.dart';
import 'map_widget.dart/driver_card_from_passenger.dart';
import 'map_widget.dart/google_map_passenger_widget.dart';
import 'map_widget.dart/left_main_menu_icons.dart';
import 'map_widget.dart/left_main_menu_icons.dart'; //Ml@6Pt@11
import 'map_widget.dart/main_bottom_Menu_map.dart';
import 'map_widget.dart/map_menu_widget.dart';
import 'map_widget.dart/menu_map_page.dart';

View File

@@ -0,0 +1,17 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../widgets/my_scafold.dart';
class WaletCaptain extends StatelessWidget {
const WaletCaptain({super.key});
@override
Widget build(BuildContext context) {
return MyScafolld(
title: 'Wallet'.tr,
body: [],
isleading: true,
);
}
}

View File

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/views/widgets/my_scafold.dart';
class ProfileCaptain extends StatelessWidget {
const ProfileCaptain({super.key});
@override
Widget build(BuildContext context) {
return MyScafolld(
title: 'My Profile'.tr,
body: [],
isleading: true,
);
}
}