This commit is contained in:
Hamza-Ayed
2023-10-10 02:54:11 +03:00
parent 54e948e93b
commit b61ce6ab2e
25 changed files with 437 additions and 168 deletions

View File

@@ -5,8 +5,9 @@ import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/home/map_page_controller.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 'package:ride/views/widgets/circle_container.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import 'package:ride/views/widgets/mycircular.dart';
@@ -30,7 +31,7 @@ class MapPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(MapController());
Get.put(MapPassengerController());
Get.put(MyMenuController());
return Scaffold(
// appBar: AppBar(),
@@ -65,7 +66,7 @@ class MapPage extends StatelessWidget {
body: SafeArea(
child: Stack(
children: [
GetBuilder<MapController>(
GetBuilder<MapPassengerController>(
builder: (controller) => controller.isLoading
? const MyCircularProgressIndicator()
: GoogleMap(
@@ -307,14 +308,15 @@ class MapPage extends StatelessWidget {
const MenuIconMapPageWidget(),
buttomSheetMapPage(),
hexagonClipper(),
cancelRidePage(),
const CancelRidePageShow(),
const CashConfirmPageShown(),
const PaymentMethodPage(),
timerForCancelTripFromPassenger(),
// const DriverTimeArrivePassengerPage(),
const TimerToPassengerFromDriver(),
// const PassengerInfoWindow()
const RideBeginPassenger(),
cancelRidePage(),
],
),
),
@@ -329,7 +331,7 @@ class CancelRidePageShow extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) =>
(controller.data.isNotEmpty && controller.remainingTime > 0)
// ||
@@ -367,7 +369,7 @@ class PickerIconOnMap extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
bottom: 0,
top: 0,

View File

@@ -7,11 +7,11 @@ import 'package:ride/views/widgets/elevated_btn.dart';
import '../../../constant/colors.dart';
import '../../../constant/style.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
GetBuilder<MapController> buttomSheetMapPage() {
GetBuilder<MapPassengerController> buttomSheetMapPage() {
Get.put(PaymentController());
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => controller.isBottomSheetShown &&
controller.rideConfirm == false
? Positioned(
@@ -472,7 +472,7 @@ class Details extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Column(
children: [
Row(

View File

@@ -2,12 +2,12 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/home/map_page_controller.dart';
import 'package:ride/controller/home/map_passenger_controller.dart';
import '../../widgets/elevated_btn.dart';
GetBuilder<MapController> cancelRidePage() {
Get.put(MapController());
GetBuilder<MapPassengerController> cancelRidePage() {
Get.put(MapPassengerController());
final List<String> reasons = [
"I don't need a ride anymore".tr,
"I was just trying the application".tr,
@@ -16,7 +16,7 @@ GetBuilder<MapController> cancelRidePage() {
"I don't have a reason".tr,
"Other".tr,
];
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => controller.isCancelRidePageShown
? Positioned(
left: 60,

View File

@@ -4,7 +4,7 @@ import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/style.dart';
import '../../../constant/colors.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../controller/payment/payment_controller.dart';
import '../../../main.dart';
@@ -15,7 +15,7 @@ class CashConfirmPageShown extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
right: 5,
bottom: 5,

View File

@@ -2,11 +2,11 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../constant/style.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
import 'hexegone_clipper.dart';
GetBuilder<MapController> hexagonClipper() {
return GetBuilder<MapController>(
GetBuilder<MapPassengerController> hexagonClipper() {
return GetBuilder<MapPassengerController>(
builder: ((controller) => controller.rideConfirm
? Positioned(
top: Get.height * .2,

View File

@@ -4,14 +4,14 @@ import 'package:intl/intl.dart';
// import 'package:intl/intl.dart';
import '../../../constant/style.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
class DriverTimeArrivePassengerPage extends StatelessWidget {
const DriverTimeArrivePassengerPage({super.key});
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) {
return controller.remainingTime == 0
? Positioned(

View File

@@ -6,12 +6,12 @@ import 'package:ride/views/widgets/elevated_btn.dart';
import '../../../constant/colors.dart';
import '../../../constant/style.dart';
import '../../../controller/functions/toast.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../main.dart';
GetBuilder<MapController> formSearchPlaces() {
GetBuilder<MapPassengerController> formSearchPlaces() {
// DbSql sql = DbSql.instance;
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Column(
children: [
Padding(

View File

@@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../constant/colors.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
GetBuilder<MapController> leftMainMenuIcons() {
return GetBuilder<MapController>(
GetBuilder<MapPassengerController> leftMainMenuIcons() {
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
top: 85,
left: 6,

View File

@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/home/map_page_controller.dart';
import 'package:ride/controller/home/map_passenger_controller.dart';
import 'package:ride/main.dart';
import 'package:ride/views/home/map_widget.dart/form_search_places.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
@@ -17,8 +17,8 @@ class MainBottomMenuMap extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(MapController());
return GetBuilder<MapController>(
Get.put(MapPassengerController());
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
bottom: 3,
left: 5,
@@ -143,8 +143,8 @@ class FavioratePlacesDialogu extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(MapController());
return GetBuilder<MapController>(
Get.put(MapPassengerController());
return GetBuilder<MapPassengerController>(
builder: (controller) => DefaultTextStyle(
style: AppStyle.title,
child: Center(

View File

@@ -7,7 +7,7 @@ import 'package:ride/views/home/profile/order_history.dart';
import 'package:ride/views/home/profile/promos_passenger_page.dart';
import '../../../constant/colors.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../notification/notification_page.dart';
import '../../widgets/icon_widget_menu.dart';
import '../home_page.dart';
@@ -20,7 +20,7 @@ class MapMenuWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Stack(children: [
Positioned(
right: 60,

View File

@@ -3,7 +3,7 @@ import 'package:get/get.dart';
import '../../../constant/box_name.dart';
import '../../../constant/colors.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../main.dart';
class MenuIconMapPageWidget extends StatelessWidget {
@@ -13,7 +13,7 @@ class MenuIconMapPageWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
top: 30,
left: box.read(BoxName.lang) != 'ar' ? 5 : null,

View File

@@ -4,7 +4,7 @@ import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/controller/firebase/firbase_messge.dart';
import 'package:ride/controller/home/captin/map_dirction.dart';
import 'package:ride/controller/home/captin/map_driver_controller.dart';
import 'package:ride/main.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
@@ -20,8 +20,8 @@ class PassengerInfoWindow extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(MapDirection());
return GetBuilder<MapDirection>(
Get.put(MapDriverController());
return GetBuilder<MapDriverController>(
builder: (controller) => controller.isPassengerInfoWindow == true
? Stack(
children: [
@@ -166,9 +166,8 @@ class PassengerInfoWindow extends StatelessWidget {
),
Center(
child: Text(
controller.remainingTimeToPassenger
.toString() +
' Seconds'.tr,
controller
.stringRemainingTimeToPassenger,
style: AppStyle.title,
),
)
@@ -188,47 +187,49 @@ class PassengerInfoWindow extends StatelessWidget {
),
],
)
: Positioned(
bottom: Get.height * .3,
left: 15,
child: Container(
decoration: AppStyle.boxDecoration,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Stack(
alignment: Alignment.center,
: controller.remainingTimeToShowPassengerInfoWindowFromDriver > 0 //
? Positioned(
bottom: Get.height * .3,
left: 15,
child: Container(
decoration: AppStyle.boxDecoration,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
const CircularProgressIndicator(
backgroundColor: AppColor.redColor,
strokeWidth: 10,
color: AppColor.redColor,
value: 1,
Stack(
alignment: Alignment.center,
children: [
const CircularProgressIndicator(
backgroundColor: AppColor.redColor,
strokeWidth: 10,
color: AppColor.redColor,
value: 1,
),
CircularProgressIndicator(
value: controller.progress,
// Set the color based on the "isNearEnd" condition
color: AppColor.yellowColor,
),
Text(
'${controller.remainingTimeToShowPassengerInfoWindowFromDriver}',
style: AppStyle.number,
),
],
),
CircularProgressIndicator(
value: controller.progress,
// Set the color based on the "isNearEnd" condition
color: AppColor.yellowColor,
const SizedBox(
width: 10,
),
Text(
'${controller.remainingTimeToShowPassengerInfoWindowFromDriver}',
style: AppStyle.number,
'Please Wait If passenger want To Cancel!'.tr,
style: AppStyle.title,
),
],
),
const SizedBox(
width: 10,
),
Text(
'Please Wait If passenger want To Cancel!'.tr,
style: AppStyle.title,
),
],
),
),
),
),
),
)
: const SizedBox(),
);
}
}

View File

@@ -9,7 +9,7 @@ import 'package:ride/views/widgets/elevated_btn.dart';
import '../../../constant/colors.dart';
import '../../../constant/style.dart';
import '../../../controller/functions/digit_obsecur_formate.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
class PaymentMethodPage extends StatelessWidget {
const PaymentMethodPage({
@@ -18,7 +18,7 @@ class PaymentMethodPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
right: 5,
bottom: 5,

View File

@@ -4,7 +4,7 @@ import 'package:ride/constant/table_names.dart';
import '../../../constant/colors.dart';
import '../../../constant/style.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../main.dart';
import '../../widgets/elevated_btn.dart';
import 'form_search_places.dart';
@@ -13,11 +13,11 @@ class PickerAnimtionContainerFormPlaces extends StatelessWidget {
PickerAnimtionContainerFormPlaces({
super.key,
});
final controller = MapController();
final controller = MapPassengerController();
@override
Widget build(BuildContext context) {
// DbSql sql = DbSql.instance;
return GetBuilder<MapController>(
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
bottom: 0,
left: 0,

View File

@@ -0,0 +1,96 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import '../../../constant/box_name.dart';
import '../../../constant/colors.dart';
import '../../../constant/style.dart';
import '../../../controller/firebase/firbase_messge.dart';
import '../../../controller/functions/crud.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../main.dart';
class RideBeginPassenger extends StatelessWidget {
const RideBeginPassenger({
super.key,
});
@override
Widget build(BuildContext context) {
return GetBuilder<MapPassengerController>(builder: (controller) {
if (controller.rideTimerBegin) {
return Positioned(
left: 10,
right: 10,
bottom: 4,
child: Container(
decoration: AppStyle.boxDecoration,
height: 200,
// width: 100,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Text(
'You will arrive to your destination after '.tr,
style: AppStyle.title,
),
Stack(
children: [
LinearProgressIndicator(
backgroundColor: AppColor.accentColor,
color: controller.remainingTimeTimerRideBegin < 60
? AppColor.redColor
: AppColor.greenColor,
minHeight: 50,
borderRadius: BorderRadius.circular(15),
value: controller.progressTimerRideBegin.toDouble(),
),
Center(
child: Text(
controller.stringRemainingTimeRideBegin,
style: AppStyle.title,
),
)
],
),
controller.remainingTimeTimerRideBegin < 5
? MyElevatedButton(
title:
'If you in destination Now. Press finish The Ride',
onPressed: () async {
//todo finish the trip and rest all counter ,start new counter of the trip time
// await CRUD()
// .post(link: AppLink.updateRides, payload: {
// 'id': controller.rideId,
// 'rideTimeStart': DateTime.now().toString(),
// 'status': 'Applied'
// });
// controller.driverArrivePassenger();
// // Send notification to driver to alert him that trip is begin
// FirebaseMessagesController()
// .sendNotificationToAnyWithoutData(
// 'BeginTrip',
// box.read(BoxName.name).toString(),
// controller.driverToken.toString(),
// );
// print(controller.driverToken.toString());
// Get.defaultDialog(
// title: 'The Ride is Begin'.tr,
// backgroundColor: AppColor.greenColor,
// );
})
: const SizedBox()
],
),
),
),
);
} else {
return const SizedBox();
}
});
}
}

View File

@@ -3,10 +3,10 @@ import 'package:get/get.dart';
import 'package:ride/views/home/map_page.dart';
import '../../../constant/style.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
GetBuilder<MapController> timerForCancelTripFromPassenger() {
return GetBuilder<MapController>(
GetBuilder<MapPassengerController> timerForCancelTripFromPassenger() {
return GetBuilder<MapPassengerController>(
builder: (controller) {
final isNearEnd =
controller.remainingTime <= 5; // Define a threshold for "near end"

View File

@@ -8,7 +8,7 @@ import '../../../constant/colors.dart';
import '../../../constant/style.dart';
import '../../../controller/firebase/firbase_messge.dart';
import '../../../controller/functions/crud.dart';
import '../../../controller/home/map_page_controller.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../main.dart';
class TimerToPassengerFromDriver extends StatelessWidget {
@@ -18,7 +18,7 @@ class TimerToPassengerFromDriver extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapController>(builder: (controller) {
return GetBuilder<MapPassengerController>(builder: (controller) {
if (controller.remainingTime == 0 &&
controller.timeToPassengerFromDriverAfterApplied > 0) {
return Positioned(
@@ -55,9 +55,7 @@ class TimerToPassengerFromDriver extends StatelessWidget {
),
Center(
child: Text(
controller
.remainingTimeToPassengerFromDriverAfterApplied
.toString(),
controller.stringRemainingTimeToPassenger,
style: AppStyle.title,
),
)

View File

@@ -1,7 +1,8 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:ride/controller/home/captin/map_dirction.dart';
import 'package:ride/controller/home/captin/map_driver_controller.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import 'package:ride/views/widgets/my_scafold.dart';
import '../../constant/colors.dart';
@@ -16,7 +17,7 @@ class PassengerLocationDirection extends StatelessWidget {
final LocationController locationController = Get.put(LocationController());
@override
Widget build(BuildContext context) {
Get.put(MapDirection());
Get.put(MapDriverController());
// mapDirection.getMap();//todo get this argument
return MyScafolld(
@@ -24,7 +25,7 @@ class PassengerLocationDirection extends StatelessWidget {
body: [
Padding(
padding: const EdgeInsets.all(8.0),
child: GetBuilder<MapDirection>(
child: GetBuilder<MapDriverController>(
builder: (controller) => GoogleMap(
onMapCreated: controller.onMapCreated,
initialCameraPosition: CameraPosition(
@@ -69,6 +70,50 @@ class PassengerLocationDirection extends StatelessWidget {
),
),
const PassengerInfoWindow(),
GetBuilder<MapDriverController>(
builder: (mapDriverController) => mapDriverController
.isRideFinished
? Positioned(
left: 5,
top: 5,
right: 5,
child: Container(
decoration: AppStyle.boxDecoration,
height: 60,
width: 200,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
children: [
const Icon(Icons.social_distance),
Text(
mapDriverController.distance.toString() +
' ' +
'KM'.tr,
style: AppStyle.title,
),
],
),
MyElevatedButton(
title: 'End Ride'.tr,
onPressed: () {},
kolor: AppColor.redColor,
),
Column(
children: [
const Icon(Icons.timelapse),
Text(
mapDriverController.duration.toString() +
' ' +
'Minute'.tr,
style: AppStyle.title),
],
),
],
),
))
: const SizedBox())
],
isleading: true);
}

View File

@@ -3,7 +3,7 @@ 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/orderCaptin/passenger_location_dirction.dart';
import 'package:ride/views/orderCaptin/driver_map_page.dart';
import 'package:ride/views/widgets/my_scafold.dart';
import '../../constant/colors.dart';