From 112ba96f91614481af8aeb779dd472b1fc5752c6 Mon Sep 17 00:00:00 2001 From: Hamza Aleghwairyeen Date: Wed, 27 Mar 2024 17:27:14 +0300 Subject: [PATCH] 3/27/3 --- lib/controller/firebase/firbase_messge.dart | 4 +- .../home/map_passenger_controller.dart | 8 + .../home/Captin/home_captain/home_captin.dart | 4 +- .../home_captain}/widget/call_page.dart | 4 +- .../Captin/home_captain}/widget/connect.dart | 8 +- .../widget/left_menu_map_captain.dart | 15 +- .../widget/zones_controller.dart | 0 .../passenger_info_window.dart | 2 +- .../orderCaptin/order_request_page.dart | 192 ++++++++++++------ 9 files changed, 161 insertions(+), 76 deletions(-) rename lib/{controller/home/captin => views/home/Captin/home_captain}/widget/call_page.dart (97%) rename lib/{controller/home/captin => views/home/Captin/home_captain}/widget/connect.dart (92%) rename lib/{controller/home/captin => views/home/Captin/home_captain}/widget/left_menu_map_captain.dart (91%) rename lib/{controller/home/captin => views/home/Captin/home_captain}/widget/zones_controller.dart (100%) diff --git a/lib/controller/firebase/firbase_messge.dart b/lib/controller/firebase/firbase_messge.dart index 0c4a722..80e6ca7 100644 --- a/lib/controller/firebase/firbase_messge.dart +++ b/lib/controller/firebase/firbase_messge.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'dart:io'; +import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; @@ -128,7 +129,8 @@ class FirebaseMessagesController extends GetxController { var myList = jsonDecode(myListString) as List; // var myPoints = jsonDecode(points) as List; driverToken = myList[14].toString(); - Get.find().rideId = 'rideId'; + // This is for location using and uploading status + Get.find().rideId = 'rideId'; update(); // print('driverToken==============$driverToken'); Get.to(() => OrderRequestPage(), arguments: { diff --git a/lib/controller/home/map_passenger_controller.dart b/lib/controller/home/map_passenger_controller.dart index 226d0fc..48cec97 100644 --- a/lib/controller/home/map_passenger_controller.dart +++ b/lib/controller/home/map_passenger_controller.dart @@ -839,6 +839,8 @@ class MapPassengerController extends GetxController { .toStringAsFixed(2) : '0', box.read(BoxName.email).toString(), + startNameAddress, + endNameAddress, ]; print(body); FirebaseMessagesController().sendNotificationToDriverMapPolyline( @@ -912,6 +914,8 @@ class MapPassengerController extends GetxController { .toStringAsFixed(2) : '0', box.read(BoxName.email).toString(), + startNameAddress, + endNameAddress, ]; print('driversToken'); print(driversToken); @@ -1835,6 +1839,8 @@ class MapPassengerController extends GetxController { } late LatLngBounds boundsData; + late String startNameAddress; + late String endNameAddress; getMap(String origin, destination) async { remainingTime = 25; //to make cancel every call await getCarsLocationByPassenger(); @@ -1855,6 +1861,8 @@ class MapPassengerController extends GetxController { var response = await CRUD().getGoogleApi(link: url, payload: {}); data = response['routes'][0]['legs']; // //print(data); + startNameAddress = data[0]['start_address']; + endNameAddress = data[0]['end_address']; isLoading = false; update(); durationToRide = data[0]['duration']['value']; diff --git a/lib/views/home/Captin/home_captain/home_captin.dart b/lib/views/home/Captin/home_captain/home_captin.dart index 42995de..0cf8af0 100644 --- a/lib/views/home/Captin/home_captain/home_captin.dart +++ b/lib/views/home/Captin/home_captain/home_captin.dart @@ -13,8 +13,8 @@ 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 'widget/connect.dart'; +import 'widget/left_menu_map_captain.dart'; import '../../../../controller/home/payment/captain_wallet_controller.dart'; import '../../../../main.dart'; import '../../../widgets/circle_container.dart'; diff --git a/lib/controller/home/captin/widget/call_page.dart b/lib/views/home/Captin/home_captain/widget/call_page.dart similarity index 97% rename from lib/controller/home/captin/widget/call_page.dart rename to lib/views/home/Captin/home_captain/widget/call_page.dart index 917a8bb..3e552f6 100644 --- a/lib/controller/home/captin/widget/call_page.dart +++ b/lib/views/home/Captin/home_captain/widget/call_page.dart @@ -8,8 +8,8 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; -import '../../../../constant/box_name.dart'; -import '../../../../main.dart'; +import '../../../../../constant/box_name.dart'; +import '../../../../../main.dart'; class CallPage extends StatelessWidget { const CallPage({super.key}); diff --git a/lib/controller/home/captin/widget/connect.dart b/lib/views/home/Captin/home_captain/widget/connect.dart similarity index 92% rename from lib/controller/home/captin/widget/connect.dart rename to lib/views/home/Captin/home_captain/widget/connect.dart index 3e5ff04..4b6beb5 100644 --- a/lib/controller/home/captin/widget/connect.dart +++ b/lib/views/home/Captin/home_captain/widget/connect.dart @@ -2,10 +2,10 @@ import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart'; -import '../../../../constant/style.dart'; -import '../../../../views/widgets/elevated_btn.dart'; -import '../home_captain_controller.dart'; -import '../order_request_controller.dart'; +import '../../../../../constant/style.dart'; +import '../../../../widgets/elevated_btn.dart'; +import '../../../../../controller/home/captin/home_captain_controller.dart'; +import '../../../../../controller/home/captin/order_request_controller.dart'; class ConnectWidget extends StatelessWidget { const ConnectWidget({ diff --git a/lib/controller/home/captin/widget/left_menu_map_captain.dart b/lib/views/home/Captin/home_captain/widget/left_menu_map_captain.dart similarity index 91% rename from lib/controller/home/captin/widget/left_menu_map_captain.dart rename to lib/views/home/Captin/home_captain/widget/left_menu_map_captain.dart index 27e06d8..e5f7d99 100644 --- a/lib/controller/home/captin/widget/left_menu_map_captain.dart +++ b/lib/views/home/Captin/home_captain/widget/left_menu_map_captain.dart @@ -1,13 +1,13 @@ + import 'package:flutter/material.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart'; import 'package:get/get.dart'; import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; -import 'package:SEFER/controller/home/captin/widget/zones_controller.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; -import '../../../../constant/colors.dart'; -import '../../../../views/Rate/ride_calculate_driver.dart'; -import '../../../functions/location_controller.dart'; +import '../../../../../constant/colors.dart'; +import '../../../../Rate/ride_calculate_driver.dart'; +import '../../../../../controller/functions/location_controller.dart'; GetBuilder leftMainMenuCaptainIcons() { return GetBuilder( @@ -25,9 +25,10 @@ GetBuilder leftMainMenuCaptainIcons() { borderRadius: BorderRadius.circular(15)), child: IconButton( onPressed: () { - ZonesController mapDriverController = - Get.put(ZonesController()); - mapDriverController.getJsonOfZones(); + // Get.to((OrderRequestPage())); + // ZonesController mapDriverController = + // Get.put(ZonesController()); + // mapDriverController.getJsonOfZones(); }, icon: const Icon( FontAwesome.map_signs, diff --git a/lib/controller/home/captin/widget/zones_controller.dart b/lib/views/home/Captin/home_captain/widget/zones_controller.dart similarity index 100% rename from lib/controller/home/captin/widget/zones_controller.dart rename to lib/views/home/Captin/home_captain/widget/zones_controller.dart diff --git a/lib/views/home/Captin/mapDriverWidgets/passenger_info_window.dart b/lib/views/home/Captin/mapDriverWidgets/passenger_info_window.dart index 49e79e4..6047748 100644 --- a/lib/views/home/Captin/mapDriverWidgets/passenger_info_window.dart +++ b/lib/views/home/Captin/mapDriverWidgets/passenger_info_window.dart @@ -12,7 +12,7 @@ import 'package:SEFER/views/widgets/elevated_btn.dart'; import '../../../../constant/style.dart'; import '../../../../controller/functions/launch.dart'; -import '../../../../controller/home/captin/widget/call_page.dart'; +import '../home_captain/widget/call_page.dart'; class PassengerInfoWindow extends StatelessWidget { const PassengerInfoWindow({ diff --git a/lib/views/home/Captin/orderCaptin/order_request_page.dart b/lib/views/home/Captin/orderCaptin/order_request_page.dart index ab2a236..9367fa0 100644 --- a/lib/views/home/Captin/orderCaptin/order_request_page.dart +++ b/lib/views/home/Captin/orderCaptin/order_request_page.dart @@ -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'; @@ -34,6 +33,8 @@ class OrderRequestPage extends StatelessWidget { orderRequestController.startTimer(myList[6].toString(), body.toString()); var coords = myList[0].split(','); var coordDestination = myList[1].split(','); + BitmapDescriptor startIcon = BitmapDescriptor.defaultMarker; + BitmapDescriptor endIcon = BitmapDescriptor.defaultMarker; // Parse to double double latPassengerLocation = double.parse(coords[0]); @@ -59,6 +60,25 @@ class OrderRequestPage extends StatelessWidget { southwest: LatLng(minLatitude, minLongitude), northeast: LatLng(maxLatitude, maxLongitude), ); + // void addCustomStartIcon() async { +// Create the marker with the resized image + + ImageConfiguration config = ImageConfiguration( + size: const Size(25, 25), devicePixelRatio: Get.pixelRatio); + BitmapDescriptor.fromAssetImage(config, 'assets/images/A.png', + mipmaps: false) + .then((value) { + startIcon = value; + }); + ImageConfiguration config1 = ImageConfiguration( + size: const Size(25, 25), devicePixelRatio: Get.pixelRatio); + BitmapDescriptor.fromAssetImage(config1, 'assets/images/b.png', + mipmaps: false) + .then((value) { + endIcon = value; + }); + // } + return MyScafolld( title: 'Order Details'.tr, body: [ @@ -68,7 +88,7 @@ class OrderRequestPage extends StatelessWidget { // SizedBox(height: 200, child: Text(pointsList.toString())), // Text(message.notification!.body.toString()), SizedBox( - height: 200, + height: Get.height * .2, child: GoogleMap( initialCameraPosition: CameraPosition( zoom: 12, @@ -81,21 +101,17 @@ class OrderRequestPage extends StatelessWidget { myLocationEnabled: true, markers: { Marker( - markerId: MarkerId('MyLocation'.tr), - position: - LatLng(latPassengerLocation, lngPassengerLocation), - draggable: true, - icon: BitmapDescriptor.defaultMarkerWithHue( - BitmapDescriptor.hueGreen), - ), + markerId: MarkerId('MyLocation'.tr), + position: + LatLng(latPassengerLocation, lngPassengerLocation), + draggable: true, + icon: startIcon), Marker( - markerId: MarkerId('Destination'.tr), - position: LatLng( - latPassengerDestination, lngPassengerDestination), - draggable: true, - icon: BitmapDescriptor.defaultMarkerWithHue( - BitmapDescriptor.hueBlue), - ), + markerId: MarkerId('Destination'.tr), + position: LatLng( + latPassengerDestination, lngPassengerDestination), + draggable: true, + icon: endIcon), }, polylines: { Polyline( @@ -155,6 +171,78 @@ class OrderRequestPage extends StatelessWidget { ), ), + Container( + decoration: AppStyle.boxDecoration1, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + double.parse(myList[2]).toStringAsFixed(2), + style: AppStyle.headTitle2, + ) + // RichText( + // text: TextSpan( + // text: 'Total From Passenger is '.tr, + // style: AppStyle.title, + // children: [ + // TextSpan( + // text: double.parse(myList[2]).toStringAsFixed(2), + // style: AppStyle.headTitle2), + // ], + // ), + // ), + ), + ), + Container( + height: Get.height * .15, + decoration: AppStyle.boxDecoration1, + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + children: [ + Row( + children: [ + const Icon( + Icons.arrow_circle_up, + color: AppColor.greenColor, + ), + Text(myList[12] + + ' ' + + 'KM'.tr + + ' ${myList[11]} ' + + 'm'.tr), + ], + ), + Text( + myList[30], + style: AppStyle.title, + ), + ], + ), + ], + ), + Row( + children: [ + Row( + children: [ + const Icon( + Icons.arrow_circle_down, + color: AppColor.redColor, + ), + Text(myList[5] + ' ' + 'KM'.tr), + ], + ), + Text( + myList[31], + style: AppStyle.title, + ), + ], + ), + ], + ), + ), Padding( padding: const EdgeInsets.all(8.0), child: RichText( @@ -167,50 +255,36 @@ class OrderRequestPage extends StatelessWidget { ), ), ), + // 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 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), + padding: const EdgeInsets.all(4), child: Container( color: AppColor.deepPurpleAccent, child: RichText(