From e2cdf18b59e48ac1dec478d1a2b70f1f1dcac0e7 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Sun, 25 Feb 2024 17:27:28 +0300 Subject: [PATCH] 2/25/2 --- lib/constant/links.dart | 1 + .../home/captin/home_captain_controller.dart | 13 +++++ .../home/captin/map_driver_controller.dart | 33 ++++++++++- lib/controller/local/translations.dart | 4 ++ .../payment/driver_payment_controller.dart | 2 +- .../home/Captin/home_captain/home_captin.dart | 55 +++++++++++-------- ...timer_for_cancell_trip_from_passenger.dart | 41 ++++++++------ .../payment_history_driver_page.dart | 4 +- lib/views/home/my_wallet/walet_captain.dart | 6 +- 9 files changed, 114 insertions(+), 45 deletions(-) diff --git a/lib/constant/links.dart b/lib/constant/links.dart index efe5a5e..93a996c 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -64,6 +64,7 @@ class AppLink { static String addDriverPaymentPoints = "$ride/driverPayment/add.php"; static String getDriverPaymentPoints = "$ride/driverWallet/get.php"; static String getDriverpaymentToday = "$ride/payment/get.php"; + static String getCountRide = "$ride/payment/getCountRide.php"; static String getAllPaymentFromRide = "$ride/payment/getAllPayment.php"; static String getAllPaymentVisa = "$ride/payment/getAllPaymentVisa.php"; diff --git a/lib/controller/home/captin/home_captain_controller.dart b/lib/controller/home/captin/home_captain_controller.dart index 0940f04..e6e575f 100644 --- a/lib/controller/home/captin/home_captain_controller.dart +++ b/lib/controller/home/captin/home_captain_controller.dart @@ -26,6 +26,7 @@ class HomeCaptainController extends GetxController { bool isLoading = true; bool isCallOn = false; String totalMoneyToday = '0'; + String countRideToday = '0'; String totalMoneyInSEFER = '0'; String totalDurationToday = '0'; Timer? timer; @@ -196,6 +197,7 @@ class HomeCaptainController extends GetxController { await getlocation(); onButtonSelected(); getPaymentToday(); + getCountRideToday(); getAllPayment(); startPeriodicExecution(); onMapCreated(mapHomeCaptaiController!); @@ -224,6 +226,17 @@ class HomeCaptainController extends GetxController { update(); } + getCountRideToday() async { + var res = await CRUD().get( + link: AppLink.getCountRide, + payload: {'driver_id': box.read(BoxName.driverID).toString()}); + data = jsonDecode(res); + + countRideToday = data['message'][0]['count'].toString(); + // print(countRideToday); + update(); + } + getAllPayment() async { var res = await CRUD().get( link: AppLink.getAllPaymentFromRide, diff --git a/lib/controller/home/captin/map_driver_controller.dart b/lib/controller/home/captin/map_driver_controller.dart index 159c94f..9ef2342 100644 --- a/lib/controller/home/captin/map_driver_controller.dart +++ b/lib/controller/home/captin/map_driver_controller.dart @@ -290,6 +290,7 @@ class MapDriverController extends GetxController { return d['message'][0]['count']; } + Position? currentPosition; void startRideFromDriver() async { changeRideToBeginToPassenger(); isPassengerInfoWindow = false; @@ -325,7 +326,37 @@ class MapDriverController extends GetxController { 'driverID': box.read(BoxName.driverID).toString(), }); var d = jsonDecode(res); - mapController!.animateCamera(CameraUpdate.newLatLngZoom(myLocation, 18)); + // mapController!.animateCamera( + // CameraUpdate.newLatLngZoom( + // myLocation, + // 12, + // ), + // ); + + StreamSubscription? locationSubscription; + + try { + locationSubscription = + Geolocator.getPositionStream().listen((Position position) { + currentPosition = position; + // Update camera position on the map + mapController!.animateCamera( + CameraUpdate.newCameraPosition( + CameraPosition( + target: LatLng(position.latitude, position.longitude), + zoom: 7, + ), + ), + ); + }); // Stop listening to GPS updates when the ride is finished + if (!isRideBegin) { + locationSubscription?.cancel(); + } + } catch (error) { + debugPrint('Error listening to GPS: $error'); + // Handle GPS errors gracefully, e.g., show a user-friendly message + } + update(); print('...................'); print(d); diff --git a/lib/controller/local/translations.dart b/lib/controller/local/translations.dart index c117295..8e21a62 100644 --- a/lib/controller/local/translations.dart +++ b/lib/controller/local/translations.dart @@ -564,6 +564,10 @@ class MyTranslation extends Translations { 'from 12:00 till 15:00 (Thursday, Friday, Saturday, Monday)': "من 12:00 إلى 15:00 (يوم الخميس، الجمعة، السبت، الإثنين)", 'Night': "الليل", + 'You have in account': 'يوجد في حسابك ', + 'Ride Today :': 'عدد الرحلات : ', + 'After this period\nYou can\'t cancel!': + 'بعد هذه الفتره \nلا تستطيع الغاء الرحله', 'from 23:59 till 05:30': "من 23:59 إلى 05:30", 'Rate Driver': "تقييم السائق", 'Total Cost is ': ' صافي الربح ', diff --git a/lib/controller/payment/driver_payment_controller.dart b/lib/controller/payment/driver_payment_controller.dart index 4fda1cb..6e4879a 100644 --- a/lib/controller/payment/driver_payment_controller.dart +++ b/lib/controller/payment/driver_payment_controller.dart @@ -15,7 +15,7 @@ class DriverWalletHistoryController extends GetxController { update(); var res = await CRUD().get( link: AppLink.getWalletByDriver, - payload: {'driver_id': box.read(BoxName.driverID)}); + payload: {'driverID': box.read(BoxName.driverID)}); archive = jsonDecode(res)['message']; print(archive); diff --git a/lib/views/home/Captin/home_captain/home_captin.dart b/lib/views/home/Captin/home_captain/home_captin.dart index c4a750c..0e37af6 100644 --- a/lib/views/home/Captin/home_captain/home_captin.dart +++ b/lib/views/home/Captin/home_captain/home_captin.dart @@ -1,5 +1,5 @@ -import 'package:SEFER/views/home/Captin/home_captain/driver_call_page.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart'; @@ -8,33 +8,26 @@ import 'package:SEFER/views/widgets/mycircular.dart'; import '../../../../constant/colors.dart'; import '../../../../constant/info.dart'; -import '../../../../constant/links.dart'; import '../../../../constant/style.dart'; import '../../../../constant/table_names.dart'; -import '../../../../controller/functions/crud.dart'; import '../../../../controller/functions/location_controller.dart'; import '../../../../controller/home/captin/home_captain_controller.dart'; -import '../../../../controller/home/captin/map_driver_controller.dart'; import '../../../../controller/home/captin/order_request_controller.dart'; -import '../../../../controller/home/captin/widget/call_page.dart'; import '../../../../controller/home/captin/widget/connect.dart'; import '../../../../controller/home/captin/widget/left_menu_map_captain.dart'; import '../../../../controller/home/payment/captain_wallet_controller.dart'; -import '../../../../controller/local/local_controller.dart'; import '../../../../main.dart'; import '../../../widgets/circle_container.dart'; class HomeCaptain extends StatelessWidget { HomeCaptain({super.key}); final LocationController locationController = Get.put(LocationController()); - // final HomeCaptainController homeCaptainController = HomeCaptainController(); -// final LocationController locationController=LocationController(); + final HomeCaptainController homeCaptainController = + Get.put(HomeCaptainController()); @override Widget build(BuildContext context) { Get.put(OrderRequestController()); - Get.put(HomeCaptainController()); - // Get.put(LocationController()); - print('local is ${Get.find().language!.countryCode}'); + return Scaffold( appBar: AppBar( backgroundColor: AppColor.greenColor, @@ -116,8 +109,8 @@ class HomeCaptain extends StatelessWidget { child: const ConnectWidget()), Positioned( top: 5, - right: Get.width * .17, - left: Get.width * .17, + right: Get.width * .05, + left: Get.width * .05, child: GetBuilder( builder: (homeCaptainController) => Container( decoration: AppStyle.boxDecoration, @@ -142,24 +135,40 @@ class HomeCaptain extends StatelessWidget { ], ), Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ const Icon( - Entypo.loop, + Entypo.wallet, color: AppColor.yellowColor, ), Text( - ' You Have in'.tr + - ' ${AppInformation.appName} '.tr + - homeCaptainController.totalMoneyInSEFER, + '${' You Have in'.tr} ${homeCaptainController.totalMoneyInSEFER} ${AppInformation.appName} ', style: AppStyle.title, ), ], ), - Text( - 'Total points is '.tr + - Get.find().totalPoints, - style: AppStyle.title, + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Text( + 'Total points is '.tr + + Get.find().totalPoints, + style: AppStyle.title, + ), + Container( + color: AppColor.greenColor, + child: Padding( + padding: + const EdgeInsets.symmetric(horizontal: 8), + child: Text( + 'Ride Today :'.tr + + Get.find() + .countRideToday, + style: AppStyle.title, + ), + ), + ), + ], ), ], ))), @@ -236,7 +245,7 @@ class HomeCaptain extends StatelessWidget { // bottom: Get.height * .4, // child: IconButton( // onPressed: () { - // Get.to(() => const CallPage()); + // homeCaptainController.getCountRideToday(); // }, // icon: const Icon(Icons.call), // ), diff --git a/lib/views/home/map_widget.dart/timer_for_cancell_trip_from_passenger.dart b/lib/views/home/map_widget.dart/timer_for_cancell_trip_from_passenger.dart index b84aa0b..ed0c2d0 100644 --- a/lib/views/home/map_widget.dart/timer_for_cancell_trip_from_passenger.dart +++ b/lib/views/home/map_widget.dart/timer_for_cancell_trip_from_passenger.dart @@ -20,27 +20,36 @@ GetBuilder timerForCancelTripFromPassenger() { decoration: AppStyle.boxDecoration, child: Padding( padding: const EdgeInsets.all(8.0), - child: Row( - children: [ - Stack( - alignment: Alignment.center, - children: [ - CircularProgressIndicator( - value: controller.progress, - // Set the color based on the "isNearEnd" condition - color: isNearEnd ? Colors.red : Colors.blue, + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Stack( + alignment: Alignment.center, + children: [ + CircularProgressIndicator( + value: controller.progress, + // Set the color based on the "isNearEnd" condition + color: isNearEnd ? Colors.red : Colors.blue, + ), + Text( + '${controller.remainingTime}', + style: AppStyle.number, + ), + ], + ), + const SizedBox( + width: 30, ), Text( - '${controller.remainingTime}', - style: AppStyle.number, - ), + 'You can cancel Ride now'.tr, + style: AppStyle.title, + ) ], ), - const SizedBox( - width: 30, - ), Text( - 'You can cancel Ride now'.tr, + 'After this period\nYou can\'t cancel!'.tr, style: AppStyle.title, ) ], diff --git a/lib/views/home/my_wallet/payment_history_driver_page.dart b/lib/views/home/my_wallet/payment_history_driver_page.dart index c60073b..c9c4b13 100644 --- a/lib/views/home/my_wallet/payment_history_driver_page.dart +++ b/lib/views/home/my_wallet/payment_history_driver_page.dart @@ -27,14 +27,14 @@ class PaymentHistoryDriverPage extends StatelessWidget { padding: const EdgeInsets.all(4), child: Container( decoration: BoxDecoration( - color: double.parse(list['balance']) < 0 + color: double.parse(list['amount']) < 0 ? AppColor.redColor.withOpacity(.4) : AppColor.greenColor.withOpacity(.4)), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - list['balance'], + list['amount'], style: AppStyle.title, ), Text( diff --git a/lib/views/home/my_wallet/walet_captain.dart b/lib/views/home/my_wallet/walet_captain.dart index 3b982e9..36f6500 100644 --- a/lib/views/home/my_wallet/walet_captain.dart +++ b/lib/views/home/my_wallet/walet_captain.dart @@ -169,8 +169,10 @@ class WaletCaptain extends StatelessWidget { child: MyTextForm( controller: captainWalletController .amountFromBudgetController, - label: 'insert amount'.tr, - hint: 'insert amount'.tr, + label: + '${'You have in account'.tr} ${captainWalletController.totalAmount}', + hint: + '${'You have in account'.tr} ${captainWalletController.totalAmount}', type: TextInputType.number, ), ),