3/27/3
This commit is contained in:
@@ -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: {
|
||||||
|
|||||||
@@ -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'];
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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});
|
||||||
@@ -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({
|
||||||
@@ -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,
|
||||||
@@ -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({
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -85,17 +105,13 @@ class OrderRequestPage extends StatelessWidget {
|
|||||||
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(
|
||||||
|
|||||||
Reference in New Issue
Block a user