4/22/2
This commit is contained in:
@@ -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())))}',
|
||||||
|
|||||||
@@ -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,9 +89,9 @@ 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 =
|
||||||
|
'${box.read(BoxName.passengerID) != null ? Get.find<MapPassengerController>().driverName : Get.find<MapDriverController>().passengerName}'
|
||||||
' joined'
|
' joined'
|
||||||
.tr
|
|
||||||
.tr;
|
.tr;
|
||||||
remoteUid = remoteUid;
|
remoteUid = remoteUid;
|
||||||
update();
|
update();
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -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,6 +45,10 @@ 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,
|
||||||
),
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.spaceEvenly,
|
||||||
|
children: [
|
||||||
Container(
|
Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
@@ -55,8 +61,8 @@ class RateDriverFromPassenger extends StatelessWidget {
|
|||||||
(double.parse(controller.price
|
(double.parse(controller.price
|
||||||
.toString()) *
|
.toString()) *
|
||||||
.12 +
|
.12 +
|
||||||
double.parse(
|
double.parse(controller.price
|
||||||
controller.price.toString()))
|
.toString()))
|
||||||
.toStringAsFixed(2),
|
.toStringAsFixed(2),
|
||||||
style: AppStyle.number.copyWith(
|
style: AppStyle.number.copyWith(
|
||||||
color: AppColor.redColor,
|
color: AppColor.redColor,
|
||||||
@@ -64,7 +70,8 @@ class RateDriverFromPassenger extends StatelessWidget {
|
|||||||
TextBaseline.ideographic,
|
TextBaseline.ideographic,
|
||||||
decoration:
|
decoration:
|
||||||
TextDecoration.lineThrough,
|
TextDecoration.lineThrough,
|
||||||
decorationColor: AppColor.redColor),
|
decorationColor:
|
||||||
|
AppColor.redColor),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -85,6 +92,8 @@ class RateDriverFromPassenger extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 10,
|
height: 10,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user