1/23/1
This commit is contained in:
@@ -53,10 +53,10 @@ android {
|
|||||||
applicationId "com.mobileapp.store.ride"
|
applicationId "com.mobileapp.store.ride"
|
||||||
// You can update the following values to match your application needs.
|
// You can update the following values to match your application needs.
|
||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
minSdkVersion 23
|
minSdkVersion 26
|
||||||
targetSdkVersion flutter.targetSdkVersion
|
targetSdkVersion flutter.targetSdkVersion
|
||||||
versionCode 15
|
versionCode 16
|
||||||
versionName '1.3.9'
|
versionName '1.4.0'
|
||||||
// manifestPlaceholders = [mapsApiKey: 'android/app/src/main/AndroidManifest.xml']
|
// manifestPlaceholders = [mapsApiKey: 'android/app/src/main/AndroidManifest.xml']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/api_key"/>
|
<meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/api_key"/>
|
||||||
|
|
||||||
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="@string/default_notification_channel_id"/>
|
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="@string/default_notification_channel_id"/>
|
||||||
<meta-data android:name="com.android.application.versionCode" android:value="1"/>
|
<meta-data android:name="com.android.application.versionCode" android:value="1"/>
|
||||||
<!-- Don't delete the meta-data below.
|
<!-- Don't delete the meta-data below.
|
||||||
|
|||||||
BIN
android/app/src/main/res/raw/order.wav
Normal file
BIN
android/app/src/main/res/raw/order.wav
Normal file
Binary file not shown.
BIN
android/app/src/main/res/raw/tone1.mp3
Normal file
BIN
android/app/src/main/res/raw/tone1.mp3
Normal file
Binary file not shown.
BIN
android/app/src/main/res/raw/tone2.wav
Normal file
BIN
android/app/src/main/res/raw/tone2.wav
Normal file
Binary file not shown.
@@ -1,5 +1,6 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">My App</string>
|
<string name="app_name">My App</string>
|
||||||
<string name="default_notification_channel_id">ride_channel</string>
|
<!-- <string name="default_notification_channel_id">ride_channel</string> -->
|
||||||
|
<string name="default_notification_channel_id">default_channel</string>
|
||||||
<string name="api_key">AIzaSyCyfwRXTwSTLOFQSQgN5p7QZgGJVZnEKq0</string>
|
<string name="api_key">AIzaSyCyfwRXTwSTLOFQSQgN5p7QZgGJVZnEKq0</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -2,8 +2,10 @@ import 'dart:convert';
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
|
import 'package:ride/views/widgets/elevated_btn.dart';
|
||||||
|
|
||||||
import '../../constant/api_key.dart';
|
import '../../constant/api_key.dart';
|
||||||
import '../../constant/box_name.dart';
|
import '../../constant/box_name.dart';
|
||||||
@@ -11,6 +13,7 @@ import '../../constant/colors.dart';
|
|||||||
import '../../constant/links.dart';
|
import '../../constant/links.dart';
|
||||||
import '../../constant/style.dart';
|
import '../../constant/style.dart';
|
||||||
import '../../main.dart';
|
import '../../main.dart';
|
||||||
|
import '../../views/home/Captin/home_captain/home_captin.dart';
|
||||||
import '../../views/home/profile/promos_passenger_page.dart';
|
import '../../views/home/profile/promos_passenger_page.dart';
|
||||||
import '../../views/home/Captin/orderCaptin/order_request_page.dart';
|
import '../../views/home/Captin/orderCaptin/order_request_page.dart';
|
||||||
|
|
||||||
@@ -160,6 +163,15 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
);
|
);
|
||||||
} else if (message.notification!.title!.contains('Promo')) {
|
} else if (message.notification!.title!.contains('Promo')) {
|
||||||
Get.to(const PromosPassengerPage());
|
Get.to(const PromosPassengerPage());
|
||||||
|
} else if (message.notification!.title == 'Cancel Trip') {
|
||||||
|
Get.defaultDialog(
|
||||||
|
title: 'Passenger Cancel Trip'.tr,
|
||||||
|
middleText: '',
|
||||||
|
confirm: MyElevatedButton(
|
||||||
|
title: 'Ok'.tr,
|
||||||
|
onPressed: () {
|
||||||
|
Get.offAll(HomeCaptain());
|
||||||
|
}));
|
||||||
} else if (message.notification!.title!
|
} else if (message.notification!.title!
|
||||||
.contains('DriverIsGoingToPassenger')) {
|
.contains('DriverIsGoingToPassenger')) {
|
||||||
Get.snackbar('Driver is Going To Passenger', '',
|
Get.snackbar('Driver is Going To Passenger', '',
|
||||||
@@ -201,7 +213,9 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
'notification': <String, dynamic>{
|
'notification': <String, dynamic>{
|
||||||
'title': title,
|
'title': title,
|
||||||
'body': body,
|
'body': body,
|
||||||
'sound': 'assets/notify.mp3'
|
'sound': Platform.isAndroid
|
||||||
|
? 'android/app/src/main/res/raw/tone1.mp3'
|
||||||
|
: 'tone2.wav'
|
||||||
},
|
},
|
||||||
'priority': 'high',
|
'priority': 'high',
|
||||||
'data': <String, dynamic>{
|
'data': <String, dynamic>{
|
||||||
@@ -259,7 +273,9 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
'notification': <String, dynamic>{
|
'notification': <String, dynamic>{
|
||||||
'title': title,
|
'title': title,
|
||||||
'body': body,
|
'body': body,
|
||||||
'sound': 'assets/notify.mp3'
|
'sound': Platform.isAndroid
|
||||||
|
? 'android/app/src/main/res/raw/tone1.mp3'
|
||||||
|
: 'tone2.wav'
|
||||||
},
|
},
|
||||||
'data': {
|
'data': {
|
||||||
'passengerList': map,
|
'passengerList': map,
|
||||||
@@ -296,7 +312,7 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
'notification': <String, dynamic>{
|
'notification': <String, dynamic>{
|
||||||
'title': title,
|
'title': title,
|
||||||
'body': body,
|
'body': body,
|
||||||
'sound': 'assets/notify.mp3'
|
'sound': Platform.isAndroid ? 'tone2' : 'tone2.wav'
|
||||||
},
|
},
|
||||||
'data': <String, dynamic>{
|
'data': <String, dynamic>{
|
||||||
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
|
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
|
||||||
@@ -335,7 +351,10 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
'notification': <String, dynamic>{
|
'notification': <String, dynamic>{
|
||||||
'title': title,
|
'title': title,
|
||||||
'body': body,
|
'body': body,
|
||||||
'sound': 'assets/notify.mp3'
|
// 'sound': 'tone2.wav',
|
||||||
|
'sound': Platform.isAndroid
|
||||||
|
? 'android/app/src/main/res/raw/tone1.mp3'
|
||||||
|
: 'tone2.wav'
|
||||||
},
|
},
|
||||||
'data': {
|
'data': {
|
||||||
'DriverList': data,
|
'DriverList': data,
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||||
import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';
|
import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';
|
||||||
|
import 'package:ride/constant/style.dart';
|
||||||
|
import 'package:ride/views/widgets/elevated_btn.dart';
|
||||||
|
|
||||||
import '../../../constant/api_key.dart';
|
import '../../../constant/api_key.dart';
|
||||||
import '../../../constant/box_name.dart';
|
import '../../../constant/box_name.dart';
|
||||||
@@ -72,6 +74,7 @@ class MapDriverController extends GetxController {
|
|||||||
late Timer timer;
|
late Timer timer;
|
||||||
String? mapAPIKEY;
|
String? mapAPIKEY;
|
||||||
final zones = <Zone>[];
|
final zones = <Zone>[];
|
||||||
|
String canelString = 'yet';
|
||||||
|
|
||||||
void onMapCreated(GoogleMapController controller) async {
|
void onMapCreated(GoogleMapController controller) async {
|
||||||
myLocation = Get.find<LocationController>().location as LatLng;
|
myLocation = Get.find<LocationController>().location as LatLng;
|
||||||
@@ -257,7 +260,6 @@ class MapDriverController extends GetxController {
|
|||||||
tokenPassenger);
|
tokenPassenger);
|
||||||
}
|
}
|
||||||
|
|
||||||
String canelString = '';
|
|
||||||
void cancelCheckRidefromPassenger() async {
|
void cancelCheckRidefromPassenger() async {
|
||||||
var res = await CRUD().get(link: AppLink.getOrderCancelStatus, payload: {
|
var res = await CRUD().get(link: AppLink.getOrderCancelStatus, payload: {
|
||||||
'order_id': rideId,
|
'order_id': rideId,
|
||||||
@@ -265,10 +267,9 @@ class MapDriverController extends GetxController {
|
|||||||
print('Cancel fetch--------------------');
|
print('Cancel fetch--------------------');
|
||||||
var response = jsonDecode(res);
|
var response = jsonDecode(res);
|
||||||
canelString = response['data']['status'];
|
canelString = response['data']['status'];
|
||||||
|
print('cancel is $canelString');
|
||||||
update();
|
update();
|
||||||
if (response['data']['status'].toString() == 'Cancel') {
|
if (canelString == 'Cancel') {
|
||||||
Get.snackbar('Order Cancelled'.tr, 'Order Cancelled by Passenger'.tr,
|
|
||||||
backgroundColor: AppColor.redColor);
|
|
||||||
remainingTimeTimerRideBegin = 0;
|
remainingTimeTimerRideBegin = 0;
|
||||||
remainingTimeToShowPassengerInfoWindowFromDriver = 0;
|
remainingTimeToShowPassengerInfoWindowFromDriver = 0;
|
||||||
remainingTimeToPassenger = 0;
|
remainingTimeToPassenger = 0;
|
||||||
@@ -277,6 +278,18 @@ class MapDriverController extends GetxController {
|
|||||||
isPassengerInfoWindow = false;
|
isPassengerInfoWindow = false;
|
||||||
clearPolyline();
|
clearPolyline();
|
||||||
update();
|
update();
|
||||||
|
Get.defaultDialog(
|
||||||
|
title: 'Order Cancelled'.tr,
|
||||||
|
titleStyle: AppStyle.title,
|
||||||
|
middleText: 'Order Cancelled by Passenger'.tr,
|
||||||
|
middleTextStyle: AppStyle.title,
|
||||||
|
confirm: MyElevatedButton(
|
||||||
|
title: 'Ok'.tr,
|
||||||
|
onPressed: () {
|
||||||
|
Get.offAll(HomeCaptain());
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ class MapPassengerController extends GetxController {
|
|||||||
bool isPaymentMethodPageShown = false;
|
bool isPaymentMethodPageShown = false;
|
||||||
bool isRideFinished = false;
|
bool isRideFinished = false;
|
||||||
bool rideConfirm = false;
|
bool rideConfirm = false;
|
||||||
|
bool isMarkersShown = false;
|
||||||
bool isMainBottomMenuMap = true;
|
bool isMainBottomMenuMap = true;
|
||||||
bool isWayPointSheet = false;
|
bool isWayPointSheet = false;
|
||||||
bool isWayPointStopsSheet = false;
|
bool isWayPointStopsSheet = false;
|
||||||
@@ -869,6 +870,13 @@ class MapPassengerController extends GetxController {
|
|||||||
// clearPolylineAll();
|
// clearPolylineAll();
|
||||||
data = [];
|
data = [];
|
||||||
changeCancelRidePageShow();
|
changeCancelRidePageShow();
|
||||||
|
if (rideId != '') {
|
||||||
|
await CRUD().post(link: AppLink.updateDriverOrder, payload: {
|
||||||
|
"order_id": rideId.toString(), // Convert to String
|
||||||
|
"status": 'Cancel'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
rideConfirm = false;
|
rideConfirm = false;
|
||||||
shouldFetch = false;
|
shouldFetch = false;
|
||||||
isCashConfirmPageShown = false;
|
isCashConfirmPageShown = false;
|
||||||
@@ -886,6 +894,8 @@ class MapPassengerController extends GetxController {
|
|||||||
"order_id": rideId.toString(), // Convert to String
|
"order_id": rideId.toString(), // Convert to String
|
||||||
"status": 'Cancel'
|
"status": 'Cancel'
|
||||||
});
|
});
|
||||||
|
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||||
|
'Cancel Trip', 'Trip Cancelled'.tr, driverToken, []);
|
||||||
isPickerShown = false;
|
isPickerShown = false;
|
||||||
rideConfirm = false;
|
rideConfirm = false;
|
||||||
shouldFetch = false;
|
shouldFetch = false;
|
||||||
@@ -1079,27 +1089,17 @@ class MapPassengerController extends GetxController {
|
|||||||
polylineCoordinatesPointsAll[2].clear();
|
polylineCoordinatesPointsAll[2].clear();
|
||||||
polylineCoordinatesPointsAll[3].clear();
|
polylineCoordinatesPointsAll[3].clear();
|
||||||
polylineCoordinatesPointsAll[4].clear();
|
polylineCoordinatesPointsAll[4].clear();
|
||||||
|
isMarkersShown = false;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
// void clearPolylineAll() {
|
|
||||||
// polylineCoordinatesPointsAll[0].clear();
|
|
||||||
// polylineCoordinatesPointsAll[1].clear();
|
|
||||||
// polylineCoordinatesPointsAll[2].clear();
|
|
||||||
// polylineCoordinatesPointsAll[3].clear();
|
|
||||||
// polylineCoordinatesPointsAll[4].clear();
|
|
||||||
|
|
||||||
// polyLines = [];
|
|
||||||
// polylineCoordinates.clear();
|
|
||||||
// update();
|
|
||||||
// }
|
|
||||||
|
|
||||||
void addCustomPicker() {
|
void addCustomPicker() {
|
||||||
ImageConfiguration config = const ImageConfiguration(
|
ImageConfiguration config = ImageConfiguration(
|
||||||
size: Size(20, 20),
|
size: const Size(30, 30), devicePixelRatio: Get.pixelRatio
|
||||||
// scale: 1.0,
|
// scale: 1.0,
|
||||||
);
|
);
|
||||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/picker.png')
|
BitmapDescriptor.fromAssetImage(config, 'assets/images/picker.png',
|
||||||
|
mipmaps: false)
|
||||||
.then((value) {
|
.then((value) {
|
||||||
markerIcon = value;
|
markerIcon = value;
|
||||||
update();
|
update();
|
||||||
@@ -1109,9 +1109,8 @@ class MapPassengerController extends GetxController {
|
|||||||
void addCustomStartIcon() async {
|
void addCustomStartIcon() async {
|
||||||
// Create the marker with the resized image
|
// Create the marker with the resized image
|
||||||
|
|
||||||
ImageConfiguration config = const ImageConfiguration(
|
ImageConfiguration config = ImageConfiguration(
|
||||||
size: Size(20, 20),
|
size: const Size(30, 30), devicePixelRatio: Get.pixelRatio);
|
||||||
);
|
|
||||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/A.png',
|
BitmapDescriptor.fromAssetImage(config, 'assets/images/A.png',
|
||||||
mipmaps: false)
|
mipmaps: false)
|
||||||
.then((value) {
|
.then((value) {
|
||||||
@@ -1122,9 +1121,9 @@ class MapPassengerController extends GetxController {
|
|||||||
|
|
||||||
void addCustomEndIcon() {
|
void addCustomEndIcon() {
|
||||||
ImageConfiguration config = ImageConfiguration(
|
ImageConfiguration config = ImageConfiguration(
|
||||||
size: Size(Get.width * .6, Get.height * .6),
|
size: const Size(30, 30), devicePixelRatio: Get.pixelRatio);
|
||||||
);
|
BitmapDescriptor.fromAssetImage(config, 'assets/images/b.png',
|
||||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/b.png')
|
mipmaps: false)
|
||||||
.then((value) {
|
.then((value) {
|
||||||
endIcon = value;
|
endIcon = value;
|
||||||
update();
|
update();
|
||||||
@@ -1132,12 +1131,14 @@ class MapPassengerController extends GetxController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void addCustomCarIcon() {
|
void addCustomCarIcon() {
|
||||||
ImageConfiguration config = const ImageConfiguration(
|
ImageConfiguration config = ImageConfiguration(
|
||||||
// size: Size(Get.width * .6, Get.height * .6),
|
// size: Size(Get.width * .6, Get.height * .6),
|
||||||
size: Size(20, 20),
|
size: const Size(30, 30),
|
||||||
// scale: 1.0,
|
devicePixelRatio: Get.pixelRatio
|
||||||
);
|
// scale: 1.0,
|
||||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/car.png')
|
);
|
||||||
|
BitmapDescriptor.fromAssetImage(config, 'assets/images/car.png',
|
||||||
|
mipmaps: false)
|
||||||
.then((value) {
|
.then((value) {
|
||||||
carIcon = value;
|
carIcon = value;
|
||||||
update();
|
update();
|
||||||
@@ -1428,6 +1429,7 @@ class MapPassengerController extends GetxController {
|
|||||||
|
|
||||||
polyLines.add(polyline);
|
polyLines.add(polyline);
|
||||||
rideConfirm = false;
|
rideConfirm = false;
|
||||||
|
isMarkersShown = true;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1501,6 +1503,7 @@ class MapPassengerController extends GetxController {
|
|||||||
|
|
||||||
polyLines.add(polyline);
|
polyLines.add(polyline);
|
||||||
rideConfirm = false;
|
rideConfirm = false;
|
||||||
|
isMarkersShown = true;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,39 +148,41 @@ class GoogleMapPassengerWidget extends StatelessWidget {
|
|||||||
position: carLocation,
|
position: carLocation,
|
||||||
icon: controller.carIcon,
|
icon: controller.carIcon,
|
||||||
markerId: MarkerId(carLocation.toString())),
|
markerId: MarkerId(carLocation.toString())),
|
||||||
Marker(
|
if (controller.isMarkersShown)
|
||||||
markerId: MarkerId('MyLocation'.tr),
|
Marker(
|
||||||
position: controller.newStartPointLocation,
|
markerId: MarkerId('MyLocation'.tr),
|
||||||
draggable: true,
|
position: controller.newStartPointLocation,
|
||||||
icon: controller.startIcon,
|
draggable: true,
|
||||||
infoWindow: const InfoWindow(
|
icon: controller.startIcon,
|
||||||
title: 'Time',
|
infoWindow: const InfoWindow(
|
||||||
anchor: Offset(0.5, 0.5), // Adjust the anchor as needed
|
|
||||||
// snippet: controller.durationFromDriverToPassenger
|
|
||||||
// .toString(),
|
|
||||||
),
|
|
||||||
onDragEnd: (value) {
|
|
||||||
print(value);
|
|
||||||
},
|
|
||||||
// infoWindow: InfoWindow(title: 'my location'.tr),
|
|
||||||
),
|
|
||||||
Marker(
|
|
||||||
markerId: MarkerId('Destination'.tr),
|
|
||||||
position: controller.newMyLocation,
|
|
||||||
draggable: true,
|
|
||||||
icon: controller.endIcon,
|
|
||||||
infoWindow: InfoWindow(
|
|
||||||
anchor: const Offset(0.5, 0),
|
|
||||||
title: 'Time',
|
title: 'Time',
|
||||||
snippet: controller.durationByPassenger.toString()
|
anchor: Offset(0.5, 0.5), // Adjust the anchor as needed
|
||||||
// snippet: controller.durationFromDriverToPassenger
|
// snippet: controller.durationFromDriverToPassenger
|
||||||
// .toString(),
|
// .toString(),
|
||||||
),
|
),
|
||||||
onDragEnd: (value) {
|
onDragEnd: (value) {
|
||||||
print(value);
|
print(value);
|
||||||
},
|
},
|
||||||
// infoWindow: InfoWindow(title: 'my location'.tr),
|
// infoWindow: InfoWindow(title: 'my location'.tr),
|
||||||
),
|
),
|
||||||
|
if (controller.isMarkersShown)
|
||||||
|
Marker(
|
||||||
|
markerId: MarkerId('Destination'.tr),
|
||||||
|
position: controller.newMyLocation,
|
||||||
|
draggable: true,
|
||||||
|
icon: controller.endIcon,
|
||||||
|
infoWindow: InfoWindow(
|
||||||
|
anchor: const Offset(0.5, 0),
|
||||||
|
title: 'Time',
|
||||||
|
snippet: controller.durationByPassenger.toString()
|
||||||
|
// snippet: controller.durationFromDriverToPassenger
|
||||||
|
// .toString(),
|
||||||
|
),
|
||||||
|
onDragEnd: (value) {
|
||||||
|
print(value);
|
||||||
|
},
|
||||||
|
// infoWindow: InfoWindow(title: 'my location'.tr),
|
||||||
|
),
|
||||||
// Marker(
|
// Marker(
|
||||||
// markerId: MarkerId('Target'.tr),
|
// markerId: MarkerId('Target'.tr),
|
||||||
// position: controller.myDestination,
|
// position: controller.myDestination,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:ride/constant/box_name.dart';
|
import 'package:ride/constant/box_name.dart';
|
||||||
import 'package:ride/constant/style.dart';
|
import 'package:ride/constant/style.dart';
|
||||||
|
import 'package:ride/controller/firebase/firbase_messge.dart';
|
||||||
import 'package:ride/controller/home/map_passenger_controller.dart';
|
import 'package:ride/controller/home/map_passenger_controller.dart';
|
||||||
import 'package:ride/main.dart';
|
import 'package:ride/main.dart';
|
||||||
import 'package:ride/views/home/map_widget.dart/form_search_places.dart';
|
import 'package:ride/views/home/map_widget.dart/form_search_places.dart';
|
||||||
@@ -272,6 +273,20 @@ class MainBottomMenuMap extends StatelessWidget {
|
|||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
FirebaseMessagesController()
|
||||||
|
.sendNotificationToAnyWithoutData(
|
||||||
|
'title',
|
||||||
|
'body',
|
||||||
|
// 'e5IXztYGS1W9zFvv-gmMRL:APA91bF7-fFzksCRXIk0Fm7IfQuhHL0df-vnDW8DNNKa3sWea649j3Obc8PhyJo9UOxKBtrvoJxYcbjclFKpvycAuhG0lv_e4hkavy-LZ6SsAu5J5bYrPz6-0BbyLdLUHoBuOFlNMvmN');
|
||||||
|
'eoV61-RSFUxLrCa88xaSG2:APA91bFmgGVTVH0mhjGhFqrB2_rMf0l0udBUzEUW-V2XlxtnYeDTnpESYRRCI_tMQnbDqQ3PK7pFMzW0-CZolS-pURSkwbwvnbVtV9VHB2UuOrKG3MYpGFsWfmjUdyRIOe30nx-eVkOu');
|
||||||
|
},
|
||||||
|
icon: const Icon(
|
||||||
|
Icons.add,
|
||||||
|
color: AppColor.blueColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user