This commit is contained in:
Hamza Aleghwairyeen
2024-03-27 17:27:14 +03:00
parent ed63445fc5
commit 112ba96f91
9 changed files with 161 additions and 76 deletions

View File

@@ -1,5 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; 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:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -128,7 +129,8 @@ class FirebaseMessagesController extends GetxController {
var myList = jsonDecode(myListString) as List<dynamic>; var myList = jsonDecode(myListString) as List<dynamic>;
// var myPoints = jsonDecode(points) as List<dynamic>; // var myPoints = jsonDecode(points) as List<dynamic>;
driverToken = myList[14].toString(); driverToken = myList[14].toString();
Get.find<MapDriverController>().rideId = 'rideId'; // This is for location using and uploading status
Get.find<HomeCaptainController>().rideId = 'rideId';
update(); update();
// print('driverToken==============$driverToken'); // print('driverToken==============$driverToken');
Get.to(() => OrderRequestPage(), arguments: { Get.to(() => OrderRequestPage(), arguments: {

View File

@@ -839,6 +839,8 @@ class MapPassengerController extends GetxController {
.toStringAsFixed(2) .toStringAsFixed(2)
: '0', : '0',
box.read(BoxName.email).toString(), box.read(BoxName.email).toString(),
startNameAddress,
endNameAddress,
]; ];
print(body); print(body);
FirebaseMessagesController().sendNotificationToDriverMapPolyline( FirebaseMessagesController().sendNotificationToDriverMapPolyline(
@@ -912,6 +914,8 @@ class MapPassengerController extends GetxController {
.toStringAsFixed(2) .toStringAsFixed(2)
: '0', : '0',
box.read(BoxName.email).toString(), box.read(BoxName.email).toString(),
startNameAddress,
endNameAddress,
]; ];
print('driversToken'); print('driversToken');
print(driversToken); print(driversToken);
@@ -1835,6 +1839,8 @@ class MapPassengerController extends GetxController {
} }
late LatLngBounds boundsData; late LatLngBounds boundsData;
late String startNameAddress;
late String endNameAddress;
getMap(String origin, destination) async { getMap(String origin, destination) async {
remainingTime = 25; //to make cancel every call remainingTime = 25; //to make cancel every call
await getCarsLocationByPassenger(); await getCarsLocationByPassenger();
@@ -1855,6 +1861,8 @@ class MapPassengerController extends GetxController {
var response = await CRUD().getGoogleApi(link: url, payload: {}); var response = await CRUD().getGoogleApi(link: url, payload: {});
data = response['routes'][0]['legs']; data = response['routes'][0]['legs'];
// //print(data); // //print(data);
startNameAddress = data[0]['start_address'];
endNameAddress = data[0]['end_address'];
isLoading = false; isLoading = false;
update(); update();
durationToRide = data[0]['duration']['value']; durationToRide = data[0]['duration']['value'];

View File

@@ -13,8 +13,8 @@ import '../../../../constant/table_names.dart';
import '../../../../controller/functions/location_controller.dart'; import '../../../../controller/functions/location_controller.dart';
import '../../../../controller/home/captin/home_captain_controller.dart'; import '../../../../controller/home/captin/home_captain_controller.dart';
import '../../../../controller/home/captin/order_request_controller.dart'; import '../../../../controller/home/captin/order_request_controller.dart';
import '../../../../controller/home/captin/widget/connect.dart'; import 'widget/connect.dart';
import '../../../../controller/home/captin/widget/left_menu_map_captain.dart'; import 'widget/left_menu_map_captain.dart';
import '../../../../controller/home/payment/captain_wallet_controller.dart'; import '../../../../controller/home/payment/captain_wallet_controller.dart';
import '../../../../main.dart'; import '../../../../main.dart';
import '../../../widgets/circle_container.dart'; import '../../../widgets/circle_container.dart';

View File

@@ -8,8 +8,8 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import '../../../../constant/box_name.dart'; import '../../../../../constant/box_name.dart';
import '../../../../main.dart'; import '../../../../../main.dart';
class CallPage extends StatelessWidget { class CallPage extends StatelessWidget {
const CallPage({super.key}); const CallPage({super.key});

View File

@@ -2,10 +2,10 @@ import 'package:flutter/cupertino.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart'; import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart';
import '../../../../constant/style.dart'; import '../../../../../constant/style.dart';
import '../../../../views/widgets/elevated_btn.dart'; import '../../../../widgets/elevated_btn.dart';
import '../home_captain_controller.dart'; import '../../../../../controller/home/captin/home_captain_controller.dart';
import '../order_request_controller.dart'; import '../../../../../controller/home/captin/order_request_controller.dart';
class ConnectWidget extends StatelessWidget { class ConnectWidget extends StatelessWidget {
const ConnectWidget({ const ConnectWidget({

View File

@@ -1,13 +1,13 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.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 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../../../constant/colors.dart'; import '../../../../../constant/colors.dart';
import '../../../../views/Rate/ride_calculate_driver.dart'; import '../../../../Rate/ride_calculate_driver.dart';
import '../../../functions/location_controller.dart'; import '../../../../../controller/functions/location_controller.dart';
GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() { GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
return GetBuilder<HomeCaptainController>( return GetBuilder<HomeCaptainController>(
@@ -25,9 +25,10 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
borderRadius: BorderRadius.circular(15)), borderRadius: BorderRadius.circular(15)),
child: IconButton( child: IconButton(
onPressed: () { onPressed: () {
ZonesController mapDriverController = // Get.to((OrderRequestPage()));
Get.put(ZonesController()); // ZonesController mapDriverController =
mapDriverController.getJsonOfZones(); // Get.put(ZonesController());
// mapDriverController.getJsonOfZones();
}, },
icon: const Icon( icon: const Icon(
FontAwesome.map_signs, FontAwesome.map_signs,

View File

@@ -12,7 +12,7 @@ import 'package:SEFER/views/widgets/elevated_btn.dart';
import '../../../../constant/style.dart'; import '../../../../constant/style.dart';
import '../../../../controller/functions/launch.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 { class PassengerInfoWindow extends StatelessWidget {
const PassengerInfoWindow({ const PassengerInfoWindow({

View File

@@ -1,6 +1,5 @@
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart'; import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:SEFER/controller/firebase/firbase_messge.dart';
@@ -34,6 +33,8 @@ class OrderRequestPage extends StatelessWidget {
orderRequestController.startTimer(myList[6].toString(), body.toString()); orderRequestController.startTimer(myList[6].toString(), body.toString());
var coords = myList[0].split(','); var coords = myList[0].split(',');
var coordDestination = myList[1].split(','); var coordDestination = myList[1].split(',');
BitmapDescriptor startIcon = BitmapDescriptor.defaultMarker;
BitmapDescriptor endIcon = BitmapDescriptor.defaultMarker;
// Parse to double // Parse to double
double latPassengerLocation = double.parse(coords[0]); double latPassengerLocation = double.parse(coords[0]);
@@ -59,6 +60,25 @@ class OrderRequestPage extends StatelessWidget {
southwest: LatLng(minLatitude, minLongitude), southwest: LatLng(minLatitude, minLongitude),
northeast: LatLng(maxLatitude, maxLongitude), 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( return MyScafolld(
title: 'Order Details'.tr, title: 'Order Details'.tr,
body: [ body: [
@@ -68,7 +88,7 @@ class OrderRequestPage extends StatelessWidget {
// SizedBox(height: 200, child: Text(pointsList.toString())), // SizedBox(height: 200, child: Text(pointsList.toString())),
// Text(message.notification!.body.toString()), // Text(message.notification!.body.toString()),
SizedBox( SizedBox(
height: 200, height: Get.height * .2,
child: GoogleMap( child: GoogleMap(
initialCameraPosition: CameraPosition( initialCameraPosition: CameraPosition(
zoom: 12, zoom: 12,
@@ -81,21 +101,17 @@ class OrderRequestPage extends StatelessWidget {
myLocationEnabled: true, myLocationEnabled: true,
markers: { markers: {
Marker( Marker(
markerId: MarkerId('MyLocation'.tr), markerId: MarkerId('MyLocation'.tr),
position: position:
LatLng(latPassengerLocation, lngPassengerLocation), LatLng(latPassengerLocation, lngPassengerLocation),
draggable: true, draggable: true,
icon: BitmapDescriptor.defaultMarkerWithHue( icon: startIcon),
BitmapDescriptor.hueGreen),
),
Marker( Marker(
markerId: MarkerId('Destination'.tr), markerId: MarkerId('Destination'.tr),
position: LatLng( position: LatLng(
latPassengerDestination, lngPassengerDestination), latPassengerDestination, lngPassengerDestination),
draggable: true, draggable: true,
icon: BitmapDescriptor.defaultMarkerWithHue( icon: endIcon),
BitmapDescriptor.hueBlue),
),
}, },
polylines: { polylines: {
Polyline( 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(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: RichText( 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(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(4),
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: Container( child: Container(
color: AppColor.deepPurpleAccent, color: AppColor.deepPurpleAccent,
child: RichText( child: RichText(