This commit is contained in:
Hamza Aleghwairyeen
2024-04-22 15:56:13 +03:00
parent b9c9a8a12f
commit f2ed2736dc
6 changed files with 133 additions and 69 deletions

View File

@@ -227,6 +227,26 @@ class FirebaseMessagesController extends GetxController {
} catch (e) { } catch (e) {
print('Error navigating to PassengerCallPage: $e'); print('Error navigating to PassengerCallPage: $e');
} }
} else if (message.notification!.title! == 'Call Income from Passenger') {
try {
var myListString = message.data['passengerList'];
var driverList = jsonDecode(myListString) as List<dynamic>;
// if (Platform.isAndroid) {
NotificationController().showNotification(
'Call Income'.tr,
message.notification!.body!,
'iphone_ringtone',
);
// }
// Assuming GetMaterialApp is initialized and context is valid for navigation
Get.to(() => CallPage(
// channelName: driverList[1].toString(),
// token: driverList[0].toString(),
// remoteID: driverList[2].toString(),
));
} catch (e) {
print('Error navigating to PassengerCallPage: $e');
}
} else if (message.notification!.title! == 'Call End') { } else if (message.notification!.title! == 'Call End') {
try { try {
var myListString = message.data['passengerList']; var myListString = message.data['passengerList'];
@@ -652,15 +672,19 @@ class DriverTipWidget extends StatelessWidget {
return Column( return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
// Text(
// '${'Your fee is '.tr}${Get.find<MapPassengerController>().totalPassenger.toStringAsFixed(2)}'),
Text( Text(
'${'Your fee is '.tr}${Get.find<MapPassengerController>().totalPassenger.toStringAsFixed(2)}'), 'Do you want to pay Tips for this Driver'.tr,
Text('Do you want to pay Tips for this Driver'.tr), textAlign: TextAlign.center,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
InkWell( InkWell(
onTap: () { onTap: () {
box.write(BoxName.tipPercentage, '0.05'); box.write(BoxName.tipPercentage, '0.05');
Toast.show( Toast.show(
context, context,
'${'Tip is '.tr}${(Get.find<MapPassengerController>().totalPassenger) * (double.parse(box.read(BoxName.tipPercentage.toString())))}', '${'Tip is '.tr}${(Get.find<MapPassengerController>().totalPassenger) * (double.parse(box.read(BoxName.tipPercentage.toString())))}',

View File

@@ -5,10 +5,10 @@ import 'package:agora_rtc_engine/agora_rtc_engine.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import '../../../../constant/box_name.dart'; import '../../constant/box_name.dart';
import '../../../../controller/firebase/firbase_messge.dart'; import '../firebase/firbase_messge.dart';
import '../../../../controller/home/captin/map_driver_controller.dart'; import '../home/captin/map_driver_controller.dart';
import '../../../../main.dart'; import '../../main.dart';
class CallController extends GetxController { class CallController extends GetxController {
String channelName = ''; // Get.find<MapDriverController>().rideId; String channelName = ''; // Get.find<MapDriverController>().rideId;
@@ -23,20 +23,21 @@ class CallController extends GetxController {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
channelName = box.read(BoxName.driverID) != null if (box.read(BoxName.passengerID) != null) {
? Get.find<MapDriverController>().rideId channelName = Get.find<MapPassengerController>().rideId; // 'sefer300'; //
: Get.find<MapPassengerController>().rideId; // 'sefer300'; // remoteUid = int.parse(Get.find<MapPassengerController>().driverPhone);
remoteUid = box.read(BoxName.driverID) != null uid = int.parse(box.read(BoxName.phone));
? int.parse(box.read(BoxName.phoneDriver)) } else {
: int.parse(box.read(BoxName.phone)); channelName = Get.find<MapDriverController>().rideId; // 'sefer300'; //
uid = box.read(BoxName.driverID) == null remoteUid = int.parse(Get.find<MapDriverController>().passengerPhone);
? int.parse(box.read(BoxName.phoneDriver)) uid = int.parse(box.read(BoxName.phoneDriver));
: int.parse(box.read(BoxName.phone)); }
initAgoraFull(); initAgoraFull();
} }
initAgoraFull() async { initAgoraFull() async {
print('channelName is $channelName');
print('remoteid is $remoteUid'); print('remoteid is $remoteUid');
print('uid is $uid'); print('uid is $uid');
await fetchToken(); await fetchToken();
@@ -44,9 +45,13 @@ class CallController extends GetxController {
setupVoiceSDKEngine(); setupVoiceSDKEngine();
// join(); // join();
FirebaseMessagesController().sendNotificationToPassengerToken( FirebaseMessagesController().sendNotificationToPassengerToken(
'Call Income', 'Call Income from Passenger',
'${'You have call from driver'.tr} ${box.read(BoxName.nameDriver)}', box.read(BoxName.passengerID) != null
Get.find<MapDriverController>().tokenPassenger, ? '${'You have call from Passenger'.tr} ${box.read(BoxName.name)}'
: '${'You have call from driver'.tr} ${box.read(BoxName.nameDriver)}',
box.read(BoxName.passengerID) != null
? Get.find<MapPassengerController>().driverToken
: Get.find<MapDriverController>().tokenPassenger,
[ [
token, token,
channelName, channelName,
@@ -84,10 +89,10 @@ class CallController extends GetxController {
}, },
onUserJoined: (RtcConnection connection, int remoteUid, int elapsed) { onUserJoined: (RtcConnection connection, int remoteUid, int elapsed) {
// Get.snackbar("Remote user uid:$remoteUid joined the channel", ''); // Get.snackbar("Remote user uid:$remoteUid joined the channel", '');
status = '${Get.find<MapDriverController>().passengerName}' status =
' joined' '${box.read(BoxName.passengerID) != null ? Get.find<MapPassengerController>().driverName : Get.find<MapDriverController>().passengerName}'
.tr ' joined'
.tr; .tr;
remoteUid = remoteUid; remoteUid = remoteUid;
update(); update();
}, },

View File

@@ -12,6 +12,8 @@ import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
import 'package:SEFER/views/home/map_page_passenger.dart'; import 'package:SEFER/views/home/map_page_passenger.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart';
import '../firebase/firbase_messge.dart';
// import '../home/captin/home_captain_controller.dart'; // import '../home/captin/home_captain_controller.dart';
class RateController extends GetxController { class RateController extends GetxController {
@@ -80,6 +82,34 @@ class RateController extends GetxController {
middleText: '', middleText: '',
confirm: MyElevatedButton(title: 'Ok', onPressed: () => Get.back())); confirm: MyElevatedButton(title: 'Ok', onPressed: () => Get.back()));
} else { } else {
var tip = (Get.find<MapPassengerController>().totalPassenger) *
(double.parse(box.read(BoxName.tipPercentage.toString())));
var res = await CRUD().post(link: AppLink.addTips, payload: {
'passengerID': box.read(BoxName.passengerID),
'driverID': Get.find<MapPassengerController>().driverId.toString(),
'rideID': Get.find<MapPassengerController>().rideId.toString(),
'tipAmount': tip.toString(),
});
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
'passenger_id': box.read(BoxName.passengerID).toString(),
'balance': ((-1) * tip).toString()
});
await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
'driverID': Get.find<MapPassengerController>().driverId.toString(),
'paymentID': '${Get.find<MapPassengerController>().rideId}tip',
'amount': (tip * 100).toString(),
'paymentMethod': 'visa-tip',
});
if (res != 'failure') {
FirebaseMessagesController().sendNotificationToAnyWithoutData(
'You Have Tips',
'${'${tip.toString()}\$${' tips\nTotal is'.tr}'} ${tip + (Get.find<MapPassengerController>().totalPassenger)}',
Get.find<MapPassengerController>().driverToken.toString(),
);
}
await CRUD().post(link: AppLink.addRateToDriver, payload: { await CRUD().post(link: AppLink.addRateToDriver, payload: {
'passenger_id': box.read(BoxName.passengerID).toString(), 'passenger_id': box.read(BoxName.passengerID).toString(),
'driver_id': driverId, 'driver_id': driverId,

View File

@@ -22,17 +22,19 @@ class RateDriverFromPassenger extends StatelessWidget {
title: 'Rate Driver'.tr, title: 'Rate Driver'.tr,
body: [ body: [
Positioned( Positioned(
top: 40, top: 10,
left: Get.width * .1, left: Get.width * .1,
right: Get.width * .1, right: Get.width * .1,
child: Container( child: Container(
// height: Get.height * 6,
decoration: AppStyle.boxDecoration1, decoration: AppStyle.boxDecoration1,
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.all(4), padding: const EdgeInsets.all(4),
child: Container( child: Container(
height: Get.height * .25, height: Get.height * .5,
decoration: AppStyle.boxDecoration1, decoration: AppStyle.boxDecoration1,
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
@@ -43,47 +45,54 @@ class RateDriverFromPassenger extends StatelessWidget {
'${'Total price to '.tr}${Get.find<MapPassengerController>().firstName}', '${'Total price to '.tr}${Get.find<MapPassengerController>().firstName}',
style: AppStyle.title, style: AppStyle.title,
), ),
Container( Row(
decoration: BoxDecoration( mainAxisAlignment:
border: Border.all( MainAxisAlignment.spaceEvenly,
width: 2, children: [
color: AppColor.redColor, Container(
)), decoration: BoxDecoration(
child: Padding( border: Border.all(
padding: const EdgeInsets.all(4), width: 2,
child: Text( color: AppColor.redColor,
(double.parse(controller.price )),
.toString()) * child: Padding(
.12 + padding: const EdgeInsets.all(4),
double.parse( child: Text(
controller.price.toString())) (double.parse(controller.price
.toStringAsFixed(2), .toString()) *
style: AppStyle.number.copyWith( .12 +
color: AppColor.redColor, double.parse(controller.price
textBaseline: .toString()))
TextBaseline.ideographic, .toStringAsFixed(2),
decoration: style: AppStyle.number.copyWith(
TextDecoration.lineThrough, color: AppColor.redColor,
decorationColor: AppColor.redColor), textBaseline:
TextBaseline.ideographic,
decoration:
TextDecoration.lineThrough,
decorationColor:
AppColor.redColor),
),
),
), ),
), const SizedBox(
), height: 10,
const SizedBox(
height: 10,
),
Container(
decoration: BoxDecoration(
border: Border.all(
width: 2,
color: AppColor.greenColor,
)),
child: Padding(
padding: const EdgeInsets.all(4),
child: Text(
controller.price.toString(),
style: AppStyle.number,
), ),
), Container(
decoration: BoxDecoration(
border: Border.all(
width: 2,
color: AppColor.greenColor,
)),
child: Padding(
padding: const EdgeInsets.all(4),
child: Text(
controller.price.toString(),
style: AppStyle.number,
),
),
),
],
), ),
const SizedBox( const SizedBox(
height: 10, height: 10,

View File

@@ -2,7 +2,7 @@ import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/views/home/Captin/home_captain/call_controller.dart'; import 'package:SEFER/controller/functions/call_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';

View File

@@ -1,17 +1,13 @@
import 'package:SEFER/constant/colors.dart'; import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart'; import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/controller/home/map_passenger_controller.dart'; import 'package:SEFER/controller/home/map_passenger_controller.dart';
import 'package:SEFER/views/home/Captin/home_captain/call_controller.dart'; import 'package:SEFER/controller/functions/call_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart'; 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 '../../../../../main.dart';
class CallPageFromPassenger extends StatelessWidget { class CallPageFromPassenger extends StatelessWidget {
const CallPageFromPassenger({super.key}); const CallPageFromPassenger({super.key});