This commit is contained in:
Hamza Aleghwairyeen
2024-04-10 02:42:17 +03:00
parent 8ca9e65f4c
commit 88b671c112
23 changed files with 564 additions and 241 deletions

View File

@@ -34,7 +34,7 @@ class CallController extends GetxController {
await fetchToken();
// Set up an instance of Agora engine
setupVoiceSDKEngine();
join();
// join();
FirebaseMessagesController().sendNotificationToPassengerToken(
'Call Income',
'${'You have call from driver'.tr} ${box.read(BoxName.nameDriver)}',

View File

@@ -16,83 +16,106 @@ class CallPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MyScafolld(title: 'Call Page', isleading: true, body: [callPage()]);
return MyScafolld(
title: 'Call Page'.tr, isleading: true, body: [callPage()]);
}
}
GetBuilder<HomeCaptainController> callPage() {
CallController callController = Get.put(CallController());
Get.put(MapDriverController());
callController.initAgoraFull();
// callController.initAgoraFull();
return GetBuilder<HomeCaptainController>(
builder: (controller) => Positioned(
top: Get.height * .2,
child: Container(
height: 100, width: Get.width,
decoration: AppStyle.boxDecoration,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
GestureDetector(
onTap: () async {
// await callController.initAgoraFull();
// callController.join();
// FirebaseMessagesController().sendNotificationToPassengerToken(
// 'Call Income',
// 'You have call from driver ${box.read(BoxName.nameDriver)}',
// Get.find<MapDriverController>().tokenPassenger,
// [
// callController.token,
// callController.channelName,
// callController.uid.toString(),
// callController.remoteUid.toString(),
// ],
// );
// callController.join();
},
child: Container(
width: 50,
height: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle, color: AppColor.greenColor),
child: const Icon(
Icons.phone,
size: 35,
color: AppColor.secondaryColor,
)),
builder: (controller) => Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Padding(
padding: const EdgeInsets.all(15),
child: Container(
decoration: AppStyle.boxDecoration1,
child: Text(
'No SIM card, no problem! Call your driver directly through our app. We use advanced technology to ensure your privacy.'
.tr,
style: AppStyle.title,
),
Column(
),
),
const SizedBox(
height: 30,
),
Padding(
padding: const EdgeInsets.all(15),
child: Container(
height: 100, width: Get.width,
decoration: AppStyle.boxDecoration1,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text(callController.status),
Text(Get.find<MapDriverController>().passengerName.toString()),
GestureDetector(
onTap: () async {
// await callController.initAgoraFull();
// callController.join();
// FirebaseMessagesController().sendNotificationToPassengerToken(
// 'Call Income',
// 'You have call from driver ${box.read(BoxName.nameDriver)}',
// Get.find<MapDriverController>().tokenPassenger,
// [
// callController.token,
// callController.channelName,
// callController.uid.toString(),
// callController.remoteUid.toString(),
// ],
// );
callController.join();
},
child: Container(
width: 50,
height: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle, color: AppColor.greenColor),
child: const Icon(
Icons.phone,
size: 35,
color: AppColor.secondaryColor,
)),
),
Column(
children: [
Text(callController.status),
Text(Get.find<MapDriverController>()
.passengerName
.toString()),
],
),
GestureDetector(
onTap: () async {
FirebaseMessagesController()
.sendNotificationToPassengerToken(
'Call End',
'Call End'.tr,
Get.find<MapDriverController>().tokenPassenger,
[],
);
callController.leave();
Get.back();
},
child: Container(
width: 50,
height: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle, color: AppColor.redColor),
child: const Icon(
Icons.phone_disabled_sharp,
size: 35,
color: AppColor.secondaryColor,
)),
)
],
),
GestureDetector(
onTap: () async {
FirebaseMessagesController().sendNotificationToPassengerToken(
'Call End',
'Call End'.tr,
Get.find<MapDriverController>().tokenPassenger,
[],
);
callController.leave();
Get.back();
},
child: Container(
width: 50,
height: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle, color: AppColor.redColor),
child: const Icon(
Icons.phone_disabled_sharp,
size: 35,
color: AppColor.secondaryColor,
)),
)
],
// ignore: prefer_const_constructors
),
),
// ignore: prefer_const_constructors
),
],
),
);
}

View File

@@ -0,0 +1,120 @@
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.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/views/home/Captin/home_captain/call_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import '../../../../../constant/box_name.dart';
import '../../../../../main.dart';
class CallPageFromPassenger extends StatelessWidget {
const CallPageFromPassenger({super.key});
@override
Widget build(BuildContext context) {
return MyScafolld(
title: 'Call Page'.tr, isleading: true, body: [callPage()]);
}
}
GetBuilder<HomeCaptainController> callPage() {
CallController callController = Get.put(CallController());
// callController.initAgoraFull();
return GetBuilder<HomeCaptainController>(
builder: (controller) => Column(
children: [
Padding(
padding: const EdgeInsets.all(15),
child: Container(
decoration: AppStyle.boxDecoration1,
child: Text(
'No SIM card, no problem! Call your driver directly through our app. We use advanced technology to ensure your privacy.'
.tr,
style: AppStyle.title,
),
),
),
const SizedBox(
height: 30,
),
Padding(
padding: const EdgeInsets.all(15),
child: Container(
height: 100, width: Get.width,
decoration: AppStyle.boxDecoration,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
GestureDetector(
onTap: () async {
// await callController.initAgoraFull();
// callController.join();
// FirebaseMessagesController().sendNotificationToPassengerToken(
// 'Call Income',
// 'You have call from driver ${box.read(BoxName.nameDriver)}',
// Get.find<MapDriverController>().tokenPassenger,
// [
// callController.token,
// callController.channelName,
// callController.uid.toString(),
// callController.remoteUid.toString(),
// ],
// );
callController.join();
},
child: Container(
width: 50,
height: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle, color: AppColor.greenColor),
child: const Icon(
Icons.phone,
size: 35,
color: AppColor.secondaryColor,
)),
),
Column(
children: [
Text(callController.status),
Text(Get.find<MapPassengerController>()
.driverName
.toString()),
],
),
GestureDetector(
onTap: () async {
FirebaseMessagesController()
.sendNotificationToPassengerToken(
'Call End',
'Call End'.tr,
Get.find<MapPassengerController>().driverToken,
[],
);
callController.leave();
Get.back();
},
child: Container(
width: 50,
height: 50,
decoration: const BoxDecoration(
shape: BoxShape.circle, color: AppColor.redColor),
child: const Icon(
Icons.phone_disabled_sharp,
size: 35,
color: AppColor.secondaryColor,
)),
)
],
),
// ignore: prefer_const_constructors
),
),
],
),
);
}

View File

@@ -5,6 +5,7 @@ import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import '../../../../../constant/colors.dart';
import '../../../../../controller/functions/audio_recorder_controller.dart';
import '../../../../Rate/ride_calculate_driver.dart';
import '../../../../../controller/functions/location_controller.dart';
@@ -24,6 +25,9 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
borderRadius: BorderRadius.circular(15)),
child: IconButton(
onPressed: () {
AudioController audio = Get.put(AudioController());
audio.startRecording();
// Get.to((OrderRequestPage()));
// ZonesController mapDriverController =
// Get.put(ZonesController());

View File

@@ -1,6 +1,5 @@
import 'dart:io';
import 'package:SEFER/controller/functions/location_controller.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
@@ -19,11 +18,11 @@ GetBuilder<MapDriverController> driverEndRideBar() {
top: 5,
right: 5,
child: Container(
decoration: AppStyle.boxDecoration,
decoration: AppStyle.boxDecoration1,
height: mapDriverController.remainingTimeTimerRideBegin < 60
? mapDriverController.driverEndPage = 190
: 170,
width: 240,
// width: 240,
child: Column(
children: [
Row(

View File

@@ -61,7 +61,7 @@ class PassengerInfoWindow extends StatelessWidget {
controller.isSocialPressed =
true;
await controller
.driverCallPassenger();
.driverCallPassenger(); // to check from scam
Get.to(
() => const CallPage());
// launchCommunication('phone',
@@ -95,8 +95,8 @@ class PassengerInfoWindow extends StatelessWidget {
decoration:
AppStyle.boxDecoration,
child: IconButton(
onPressed: () async{await
controller
onPressed: () async {
await controller
.openGoogleMapFromDriverToPassenger();
},
icon: const Icon(

View File

@@ -1,7 +1,10 @@
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/home/map_passenger_controller.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/home/Captin/home_captain/widget/call_page.dart';
import 'package:SEFER/views/home/map_widget.dart/call_passenger_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
@@ -16,14 +19,14 @@ class ApplyOrderWidget extends StatelessWidget {
return GetBuilder<MapPassengerController>(builder: (controller) {
if (controller.statusRide == 'Apply' &&
controller.isSearchingWindow == false) {
double _height = 250;
// double _height = Get.height * .2;
return Positioned(
bottom: 0,
left: 0,
right: 0,
child: Container(
decoration: AppStyle.boxDecoration1,
height: _height,
height: Get.height * .2,
child: ListView(
children: [
Text.rich(
@@ -133,7 +136,74 @@ class ApplyOrderWidget extends StatelessWidget {
],
),
IconButton(
onPressed: () {},
onPressed: () async {
Get.defaultDialog(
title: 'Select one message'.tr,
titleStyle: AppStyle.title,
content: Column(
children: [
InkWell(
onTap: () {
FirebaseMessagesController()
.sendNotificationToAnyWithoutData(
'message From passenger',
'Hello, I\'m at the agreed-upon location'
.tr,
controller.driverToken);
Get.back();
},
child: Padding(
padding:
const EdgeInsets.all(4),
child: Text(
'Hello, I\'m at the agreed-upon location'
.tr,
style: AppStyle.title,
),
),
),
InkWell(
onTap: () {
FirebaseMessagesController()
.sendNotificationToAnyWithoutData(
'message From passenger',
'My location is correct. You can search for me using the navigation app'
.tr,
controller.driverToken);
Get.back();
},
child: Padding(
padding:
const EdgeInsets.all(4),
child: Text(
'My location is correct. You can search for me using the navigation app'
.tr,
style: AppStyle.title,
),
),
),
InkWell(
onTap: () {
FirebaseMessagesController()
.sendNotificationToAnyWithoutData(
'message From passenger',
'I\'m waiting for you'
.tr,
controller.driverToken);
Get.back();
},
child: Padding(
padding:
const EdgeInsets.all(4),
child: Text(
'I\'m waiting for you'.tr,
style: AppStyle.title,
),
),
),
],
));
},
icon: const Icon(
Icons.message,
color: AppColor.blueColor,
@@ -143,6 +213,8 @@ class ApplyOrderWidget extends StatelessWidget {
IconButton(
onPressed: () {
HapticFeedback.heavyImpact();
Get.to(() => const CallPage());
// Get.to(() => PassengerCallPage());
},
icon: const Icon(
Icons.call,

View File

@@ -21,7 +21,7 @@ class RideBeginPassenger extends StatelessWidget {
ProfileController profileController = Get.put(ProfileController());
AudioController audioController = Get.put(AudioController());
return GetBuilder<MapPassengerController>(builder: (controller) {
if (controller.rideTimerBegin ||
if ( //controller.rideTimerBegin ||
controller.statusRide == 'Begin' && !controller.statusRideFromStart) {
return Positioned(
left: 10,