This commit is contained in:
Hamza-Ayed
2024-10-10 16:22:30 +03:00
parent ebb57a699b
commit 9b0caf3bed
21 changed files with 1142 additions and 630 deletions

View File

@@ -20,18 +20,21 @@ class PassengerLocationMapPage extends StatelessWidget {
final LocationController locationController = Get.put(LocationController());
final MapDriverController mapDriverController =
Get.put(MapDriverController());
@override
Widget build(BuildContext context) {
if (!mapDriverController.initialized) {
// Call a method to initialize the controller
// if (!mapDriverController.initialized) {
// // Call a method to initialize the controller
mapDriverController.initialized;
} else {
Get.put(MapDriverController()).argumentLoading();
// mapDriverController.initialized;
// } else {
// Get.put(MapDriverController()).argumentLoading();
Get.put(MapDriverController())
.startTimerToShowPassengerInfoWindowFromDriver();
}
// Get.put(MapDriverController())
// .startTimerToShowPassengerInfoWindowFromDriver();
// }
mapDriverController.argumentLoading();
mapDriverController.startTimerToShowPassengerInfoWindowFromDriver();
return Scaffold(
// title: 'Map Passenger'.tr,

View File

@@ -78,7 +78,7 @@ class CupertinoDrawerCaptain extends StatelessWidget {
_buildDrawerItem(
icon: CupertinoIcons.share,
text: 'Share App'.tr,
onTap: () => Get.to(() => InviteDriverScreen()),
onTap: () => Get.to(() => InviteScreen()),
),
_buildDivider(),
_buildDrawerItem(

View File

@@ -3,9 +3,9 @@ import 'dart:io';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/notification/available_rides_page.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_overlay_window/flutter_overlay_window.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
@@ -17,7 +17,6 @@ import '../../../../constant/colors.dart';
import '../../../../constant/info.dart';
import '../../../../constant/style.dart';
import '../../../../controller/functions/location_controller.dart';
import '../../../../controller/functions/location_permission.dart';
import '../../../../controller/functions/overlay_permisssion.dart';
import '../../../../controller/functions/package_info.dart';
import '../../../../controller/home/captin/home_captain_controller.dart';
@@ -38,13 +37,15 @@ class HomeCaptain extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(OrderRequestController());
Get.put(HomeCaptainController());
// Get.put(HomeCaptainController());
Get.put(CaptainWalletController());
WidgetsBinding.instance.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) async {
closeOverlayIfFound();
checkForUpdate(context);
getPermissionOverlay();
// getPermissionLocation1();
_showFirstTimeOfferNotification(context);
await showFirstTimeOfferNotification(context);
});
return Scaffold(
appBar: AppBar(
@@ -59,16 +60,6 @@ class HomeCaptain extends StatelessWidget {
style: AppStyle.title,
)),
),
// IconButton(
// // onPressed: () => Get.find<OrderRequestController>().getSQL(),
// onPressed: () => sql.deleteAllData(TableName.driverOrdersRefuse),
// icon: const Icon(Icons.remove)),
// GetBuilder<OrderRequestController>(
// builder: (orderRequestController) => IconButton(
// onPressed: () =>
// orderRequestController.getRefusedOrderByCaptain(),
// icon: const Icon(Icons.get_app)),
// ),
],
),
drawer: CupertinoDrawerCaptain(),
@@ -381,7 +372,7 @@ class HomeCaptain extends StatelessWidget {
}
}
void _showFirstTimeOfferNotification(BuildContext context) {
showFirstTimeOfferNotification(BuildContext context) async {
bool isFirstTime = _checkIfFirstTime();
if (isFirstTime) {

View File

@@ -185,33 +185,33 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
const SizedBox(
height: 5,
),
Platform.isAndroid
? AnimatedContainer(
duration: const Duration(microseconds: 200),
width: controller.widthMapTypeAndTraffic,
decoration: BoxDecoration(
color: AppColor.secondaryColor,
border: Border.all(color: AppColor.blueColor),
borderRadius: BorderRadius.circular(15)),
child: Builder(builder: (context) {
return IconButton(
onPressed: () async {
bool isOverlayActive =
await FlutterOverlayWindow.isActive();
if (isOverlayActive) {
await FlutterOverlayWindow.closeOverlay();
}
// print(box.read(BoxName.tokenDriver));
},
icon: const Icon(
FontAwesome5.window_close,
size: 29,
color: AppColor.blueColor,
),
);
}),
)
: const SizedBox(),
// Platform.isAndroid
// ? AnimatedContainer(
// duration: const Duration(microseconds: 200),
// width: controller.widthMapTypeAndTraffic,
// decoration: BoxDecoration(
// color: AppColor.secondaryColor,
// border: Border.all(color: AppColor.blueColor),
// borderRadius: BorderRadius.circular(15)),
// child: Builder(builder: (context) {
// return IconButton(
// onPressed: () async {
// bool isOverlayActive =
// await FlutterOverlayWindow.isActive();
// if (isOverlayActive) {
// await FlutterOverlayWindow.closeOverlay();
// }
// // print(box.read(BoxName.tokenDriver));
// },
// icon: const Icon(
// FontAwesome5.window_close,
// size: 29,
// color: AppColor.blueColor,
// ),
// );
// }),
// )
// : const SizedBox(),
// AnimatedContainer(
// duration: const Duration(microseconds: 200),
// width: controller.widthMapTypeAndTraffic,

View File

@@ -28,39 +28,34 @@ class GoogleDriverMap extends StatelessWidget {
onMapCreated: controller.onMapCreated,
zoomControlsEnabled: true,
initialCameraPosition: CameraPosition(
// bearing: 45,
target: locationController.myLocation,
zoom: 13,
bearing: locationController.heading,
tilt: 40,
),
// onCameraMoveStarted: () {},
cameraTargetBounds: CameraTargetBounds(controller.boundsData),
cameraTargetBounds:
CameraTargetBounds.unbounded, // Allow unrestricted movement
onCameraMove: (position) {
locationController.myLocation = position.target;
controller.mapController!
.animateCamera(CameraUpdate.newCameraPosition(position));
// controller.mapController
// ?.animateCamera(CameraUpdate.newCameraPosition(position));
},
minMaxZoomPreference: const MinMaxZoomPreference(8, 15),
myLocationEnabled: true, myLocationButtonEnabled: true,
myLocationEnabled: true,
myLocationButtonEnabled: true,
compassEnabled: true,
mapType: MapType.terrain,
rotateGesturesEnabled: true,
scrollGesturesEnabled: true,
trafficEnabled: false,
// liteModeEnabled: true,
buildingsEnabled: true,
mapToolbarEnabled: true,
// zoomControlsEnabled: true,
fortyFiveDegreeImageryEnabled: true,
zoomGesturesEnabled: true,
polylines: {
Polyline(
zIndex: 2,
consumeTapEvents: true,
geodesic: true,
endCap: Cap.buttCap,
startCap: Cap.buttCap,
visible: true,
polylineId: const PolylineId('route1'),
points: controller.polylineCoordinates,
color: const Color.fromARGB(255, 163, 81, 246),
@@ -68,11 +63,7 @@ class GoogleDriverMap extends StatelessWidget {
),
Polyline(
zIndex: 2,
consumeTapEvents: true,
geodesic: true,
endCap: Cap.buttCap,
startCap: Cap.buttCap,
visible: true,
polylineId: const PolylineId('route'),
points: controller.polylineCoordinatesDestination,
color: const Color.fromARGB(255, 10, 29, 126),
@@ -81,11 +72,12 @@ class GoogleDriverMap extends StatelessWidget {
},
markers: {
Marker(
markerId: MarkerId('MyLocation'.tr),
position: locationController.myLocation,
draggable: true,
icon: controller.carIcon,
rotation: locationController.heading),
markerId: MarkerId('MyLocation'.tr),
position: locationController.myLocation,
draggable: true,
icon: controller.carIcon,
rotation: locationController.heading,
),
Marker(
markerId: MarkerId('start'.tr),
position: controller.latLngPassengerLocation,

View File

@@ -220,7 +220,7 @@ class OrderSpeedRequest extends StatelessWidget {
height: 5,
),
Container(
height: Get.height * .15,
height: Get.height * .2,
width: Get.width * .9,
decoration: AppStyle.boxDecoration1,
child: Padding(
@@ -301,40 +301,40 @@ class OrderSpeedRequest extends StatelessWidget {
),
),
Padding(
padding: const EdgeInsets.all(4),
child: Container(
color: AppColor.greenColor.withOpacity(.5),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
RichText(
text: TextSpan(
text: 'Cost Of Trip IS '.tr,
style: AppStyle.title,
children: [
TextSpan(
text: myList[26], style: AppStyle.headTitle2),
],
),
),
RichText(
text: TextSpan(
text: 'Total net'.tr,
style: AppStyle.title,
children: [
TextSpan(
text: (double.parse(myList[2]) -
double.parse(myList[32]))
.toStringAsFixed(2),
style: AppStyle.headTitle2),
],
),
),
],
),
),
),
// Padding(
// padding: const EdgeInsets.all(4),
// child: Container(
// color: AppColor.greenColor.withOpacity(.5),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// children: [
// RichText(
// text: TextSpan(
// text: 'Cost Of Trip IS '.tr,
// style: AppStyle.title,
// children: [
// TextSpan(
// text: myList[26], style: AppStyle.headTitle2),
// ],
// ),
// ),
// RichText(
// text: TextSpan(
// text: 'Total net'.tr,
// style: AppStyle.title,
// children: [
// TextSpan(
// text: (double.parse(myList[2]) -
// double.parse(myList[32]))
// .toStringAsFixed(2),
// style: AppStyle.headTitle2),
// ],
// ),
// ),
// ],
// ),
// ),
// ),
Padding(
padding: const EdgeInsets.all(8.0),
@@ -531,33 +531,52 @@ class OrderSpeedRequest extends StatelessWidget {
MyElevatedButton(
title: 'Refuse Order'.tr,
onPressed: () async {
Get.defaultDialog(
title: 'Reject Order'.tr,
titleStyle: AppStyle.title,
content: Column(
children: [
IconButton(
onPressed: () async {
await Get.find<TextToSpeechController>()
.speakText(
'You can decline a request without any cost'
.tr);
},
icon: const Icon(Icons.headphones),
),
Text(
'You can decline a request without any cost'
.tr,
style: AppStyle.title,
)
],
),
confirm: MyElevatedButton(
title: 'Ok'.tr,
onPressed: () {
Get.back();
Get.back();
}));
// Get.defaultDialog(
// title: 'Reject Order'.tr,
// titleStyle: AppStyle.title,
// content: Column(
// children: [
// IconButton(
// onPressed: () async {
// await Get.find<TextToSpeechController>()
// .speakText(
// 'You can decline a request without any cost'
// .tr);
// },
// icon: const Icon(Icons.headphones),
// ),
// Text(
// 'You can decline a request without any cost'
// .tr,
// style: AppStyle.title,
// )
// ],
// ),
// confirm: MyElevatedButton(
// title: 'Ok'.tr,
// onPressed: () {
// Get.back();
// Get.back();
// }));
orderRequestController.endTimer();
orderRequestController.refuseOrder(
myList[16].toString(),
);
orderRequestController.addRideToNotificationDriverString(
myList[16].toString(),
myList[29].toString(),
myList[30].toString(),
'${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day}',
'${DateTime.now().hour}:${DateTime.now().minute}',
myList[2].toString(),
myList[7].toString(),
'wait',
myList[31].toString(),
myList[33].toString(),
myList[2].toString(),
myList[5].toString(),
myList[4].toString());
},
kolor: AppColor.redColor,
),