1/23/1
This commit is contained in:
@@ -53,10 +53,10 @@ android {
|
||||
applicationId "com.mobileapp.store.ride"
|
||||
// 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.
|
||||
minSdkVersion 23
|
||||
minSdkVersion 26
|
||||
targetSdkVersion flutter.targetSdkVersion
|
||||
versionCode 15
|
||||
versionName '1.3.9'
|
||||
versionCode 16
|
||||
versionName '1.4.0'
|
||||
// manifestPlaceholders = [mapsApiKey: 'android/app/src/main/AndroidManifest.xml']
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<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.android.application.versionCode" android:value="1"/>
|
||||
<!-- 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>
|
||||
<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>
|
||||
</resources>
|
||||
@@ -2,8 +2,10 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:ride/views/widgets/elevated_btn.dart';
|
||||
|
||||
import '../../constant/api_key.dart';
|
||||
import '../../constant/box_name.dart';
|
||||
@@ -11,6 +13,7 @@ import '../../constant/colors.dart';
|
||||
import '../../constant/links.dart';
|
||||
import '../../constant/style.dart';
|
||||
import '../../main.dart';
|
||||
import '../../views/home/Captin/home_captain/home_captin.dart';
|
||||
import '../../views/home/profile/promos_passenger_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')) {
|
||||
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!
|
||||
.contains('DriverIsGoingToPassenger')) {
|
||||
Get.snackbar('Driver is Going To Passenger', '',
|
||||
@@ -201,7 +213,9 @@ class FirebaseMessagesController extends GetxController {
|
||||
'notification': <String, dynamic>{
|
||||
'title': title,
|
||||
'body': body,
|
||||
'sound': 'assets/notify.mp3'
|
||||
'sound': Platform.isAndroid
|
||||
? 'android/app/src/main/res/raw/tone1.mp3'
|
||||
: 'tone2.wav'
|
||||
},
|
||||
'priority': 'high',
|
||||
'data': <String, dynamic>{
|
||||
@@ -259,7 +273,9 @@ class FirebaseMessagesController extends GetxController {
|
||||
'notification': <String, dynamic>{
|
||||
'title': title,
|
||||
'body': body,
|
||||
'sound': 'assets/notify.mp3'
|
||||
'sound': Platform.isAndroid
|
||||
? 'android/app/src/main/res/raw/tone1.mp3'
|
||||
: 'tone2.wav'
|
||||
},
|
||||
'data': {
|
||||
'passengerList': map,
|
||||
@@ -296,7 +312,7 @@ class FirebaseMessagesController extends GetxController {
|
||||
'notification': <String, dynamic>{
|
||||
'title': title,
|
||||
'body': body,
|
||||
'sound': 'assets/notify.mp3'
|
||||
'sound': Platform.isAndroid ? 'tone2' : 'tone2.wav'
|
||||
},
|
||||
'data': <String, dynamic>{
|
||||
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
|
||||
@@ -335,7 +351,10 @@ class FirebaseMessagesController extends GetxController {
|
||||
'notification': <String, dynamic>{
|
||||
'title': title,
|
||||
'body': body,
|
||||
'sound': 'assets/notify.mp3'
|
||||
// 'sound': 'tone2.wav',
|
||||
'sound': Platform.isAndroid
|
||||
? 'android/app/src/main/res/raw/tone1.mp3'
|
||||
: 'tone2.wav'
|
||||
},
|
||||
'data': {
|
||||
'DriverList': data,
|
||||
|
||||
@@ -6,6 +6,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.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/box_name.dart';
|
||||
@@ -72,6 +74,7 @@ class MapDriverController extends GetxController {
|
||||
late Timer timer;
|
||||
String? mapAPIKEY;
|
||||
final zones = <Zone>[];
|
||||
String canelString = 'yet';
|
||||
|
||||
void onMapCreated(GoogleMapController controller) async {
|
||||
myLocation = Get.find<LocationController>().location as LatLng;
|
||||
@@ -257,7 +260,6 @@ class MapDriverController extends GetxController {
|
||||
tokenPassenger);
|
||||
}
|
||||
|
||||
String canelString = '';
|
||||
void cancelCheckRidefromPassenger() async {
|
||||
var res = await CRUD().get(link: AppLink.getOrderCancelStatus, payload: {
|
||||
'order_id': rideId,
|
||||
@@ -265,10 +267,9 @@ class MapDriverController extends GetxController {
|
||||
print('Cancel fetch--------------------');
|
||||
var response = jsonDecode(res);
|
||||
canelString = response['data']['status'];
|
||||
print('cancel is $canelString');
|
||||
update();
|
||||
if (response['data']['status'].toString() == 'Cancel') {
|
||||
Get.snackbar('Order Cancelled'.tr, 'Order Cancelled by Passenger'.tr,
|
||||
backgroundColor: AppColor.redColor);
|
||||
if (canelString == 'Cancel') {
|
||||
remainingTimeTimerRideBegin = 0;
|
||||
remainingTimeToShowPassengerInfoWindowFromDriver = 0;
|
||||
remainingTimeToPassenger = 0;
|
||||
@@ -277,6 +278,18 @@ class MapDriverController extends GetxController {
|
||||
isPassengerInfoWindow = false;
|
||||
clearPolyline();
|
||||
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 isRideFinished = false;
|
||||
bool rideConfirm = false;
|
||||
bool isMarkersShown = false;
|
||||
bool isMainBottomMenuMap = true;
|
||||
bool isWayPointSheet = false;
|
||||
bool isWayPointStopsSheet = false;
|
||||
@@ -869,6 +870,13 @@ class MapPassengerController extends GetxController {
|
||||
// clearPolylineAll();
|
||||
data = [];
|
||||
changeCancelRidePageShow();
|
||||
if (rideId != '') {
|
||||
await CRUD().post(link: AppLink.updateDriverOrder, payload: {
|
||||
"order_id": rideId.toString(), // Convert to String
|
||||
"status": 'Cancel'
|
||||
});
|
||||
}
|
||||
|
||||
rideConfirm = false;
|
||||
shouldFetch = false;
|
||||
isCashConfirmPageShown = false;
|
||||
@@ -886,6 +894,8 @@ class MapPassengerController extends GetxController {
|
||||
"order_id": rideId.toString(), // Convert to String
|
||||
"status": 'Cancel'
|
||||
});
|
||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
'Cancel Trip', 'Trip Cancelled'.tr, driverToken, []);
|
||||
isPickerShown = false;
|
||||
rideConfirm = false;
|
||||
shouldFetch = false;
|
||||
@@ -1079,27 +1089,17 @@ class MapPassengerController extends GetxController {
|
||||
polylineCoordinatesPointsAll[2].clear();
|
||||
polylineCoordinatesPointsAll[3].clear();
|
||||
polylineCoordinatesPointsAll[4].clear();
|
||||
isMarkersShown = false;
|
||||
update();
|
||||
}
|
||||
|
||||
// void clearPolylineAll() {
|
||||
// polylineCoordinatesPointsAll[0].clear();
|
||||
// polylineCoordinatesPointsAll[1].clear();
|
||||
// polylineCoordinatesPointsAll[2].clear();
|
||||
// polylineCoordinatesPointsAll[3].clear();
|
||||
// polylineCoordinatesPointsAll[4].clear();
|
||||
|
||||
// polyLines = [];
|
||||
// polylineCoordinates.clear();
|
||||
// update();
|
||||
// }
|
||||
|
||||
void addCustomPicker() {
|
||||
ImageConfiguration config = const ImageConfiguration(
|
||||
size: Size(20, 20),
|
||||
ImageConfiguration config = ImageConfiguration(
|
||||
size: const Size(30, 30), devicePixelRatio: Get.pixelRatio
|
||||
// scale: 1.0,
|
||||
);
|
||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/picker.png')
|
||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/picker.png',
|
||||
mipmaps: false)
|
||||
.then((value) {
|
||||
markerIcon = value;
|
||||
update();
|
||||
@@ -1109,9 +1109,8 @@ class MapPassengerController extends GetxController {
|
||||
void addCustomStartIcon() async {
|
||||
// Create the marker with the resized image
|
||||
|
||||
ImageConfiguration config = const ImageConfiguration(
|
||||
size: Size(20, 20),
|
||||
);
|
||||
ImageConfiguration config = ImageConfiguration(
|
||||
size: const Size(30, 30), devicePixelRatio: Get.pixelRatio);
|
||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/A.png',
|
||||
mipmaps: false)
|
||||
.then((value) {
|
||||
@@ -1122,9 +1121,9 @@ class MapPassengerController extends GetxController {
|
||||
|
||||
void addCustomEndIcon() {
|
||||
ImageConfiguration config = ImageConfiguration(
|
||||
size: Size(Get.width * .6, Get.height * .6),
|
||||
);
|
||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/b.png')
|
||||
size: const Size(30, 30), devicePixelRatio: Get.pixelRatio);
|
||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/b.png',
|
||||
mipmaps: false)
|
||||
.then((value) {
|
||||
endIcon = value;
|
||||
update();
|
||||
@@ -1132,12 +1131,14 @@ class MapPassengerController extends GetxController {
|
||||
}
|
||||
|
||||
void addCustomCarIcon() {
|
||||
ImageConfiguration config = const ImageConfiguration(
|
||||
ImageConfiguration config = ImageConfiguration(
|
||||
// size: Size(Get.width * .6, Get.height * .6),
|
||||
size: Size(20, 20),
|
||||
size: const Size(30, 30),
|
||||
devicePixelRatio: Get.pixelRatio
|
||||
// scale: 1.0,
|
||||
);
|
||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/car.png')
|
||||
BitmapDescriptor.fromAssetImage(config, 'assets/images/car.png',
|
||||
mipmaps: false)
|
||||
.then((value) {
|
||||
carIcon = value;
|
||||
update();
|
||||
@@ -1428,6 +1429,7 @@ class MapPassengerController extends GetxController {
|
||||
|
||||
polyLines.add(polyline);
|
||||
rideConfirm = false;
|
||||
isMarkersShown = true;
|
||||
update();
|
||||
}
|
||||
}
|
||||
@@ -1501,6 +1503,7 @@ class MapPassengerController extends GetxController {
|
||||
|
||||
polyLines.add(polyline);
|
||||
rideConfirm = false;
|
||||
isMarkersShown = true;
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,6 +148,7 @@ class GoogleMapPassengerWidget extends StatelessWidget {
|
||||
position: carLocation,
|
||||
icon: controller.carIcon,
|
||||
markerId: MarkerId(carLocation.toString())),
|
||||
if (controller.isMarkersShown)
|
||||
Marker(
|
||||
markerId: MarkerId('MyLocation'.tr),
|
||||
position: controller.newStartPointLocation,
|
||||
@@ -164,6 +165,7 @@ class GoogleMapPassengerWidget extends StatelessWidget {
|
||||
},
|
||||
// infoWindow: InfoWindow(title: 'my location'.tr),
|
||||
),
|
||||
if (controller.isMarkersShown)
|
||||
Marker(
|
||||
markerId: MarkerId('Destination'.tr),
|
||||
position: controller.newMyLocation,
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:ride/constant/box_name.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/main.dart';
|
||||
import 'package:ride/views/home/map_widget.dart/form_search_places.dart';
|
||||
@@ -272,6 +273,20 @@ class MainBottomMenuMap extends StatelessWidget {
|
||||
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