10/5/1
This commit is contained in:
@@ -133,30 +133,19 @@ class FirebaseMessagesController extends GetxController {
|
||||
isLoading = true;
|
||||
try {
|
||||
var res = await http.post(
|
||||
Uri.parse(AppLink.getAllTokenDrivers),
|
||||
Uri.parse(AppLink.getAllTokenPassengers),
|
||||
headers: {
|
||||
'Authorization':
|
||||
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
|
||||
},
|
||||
body: {
|
||||
'page': page.toString(),
|
||||
},
|
||||
body: {},
|
||||
);
|
||||
|
||||
var jsonResponse = jsonDecode(res.body);
|
||||
if (jsonResponse['status'] == 'success') {
|
||||
var newData = jsonResponse['data'] as List;
|
||||
if (page == 1) {
|
||||
dataTokensPassenger.clear();
|
||||
tokensPassengers.clear();
|
||||
}
|
||||
dataTokensPassenger.addAll(newData);
|
||||
for (var item in newData) {
|
||||
tokensPassengers.add(item['token']);
|
||||
}
|
||||
currentPagePassenger = int.parse(jsonResponse['currentPage']);
|
||||
totalPagesPassenger = jsonResponse['totalPages'];
|
||||
box.write(BoxName.tokensPassengers, tokensPassengers);
|
||||
box.write(BoxName.tokensPassengers, jsonResponse);
|
||||
// Log.print(
|
||||
// 'box.write(BoxName.tokensPassenger: ${box.read(BoxName.tokensPassengers)}');
|
||||
} else {
|
||||
Get.defaultDialog(
|
||||
title: "Warning", middleText: "No more data available");
|
||||
@@ -195,15 +184,15 @@ class FirebaseMessagesController extends GetxController {
|
||||
isSendingNotificationsPassenger = true;
|
||||
currentPage = 1;
|
||||
|
||||
while (currentPagePassenger <= totalPagesPassenger) {
|
||||
await getAllTokenPassenger(page: currentPagePassenger);
|
||||
await NotificationController().sendNotificationPassengers();
|
||||
print(tokensPassengers);
|
||||
if (currentPagePassenger < totalPagesPassenger) {
|
||||
await Future.delayed(const Duration(seconds: 3));
|
||||
}
|
||||
currentPagePassenger++;
|
||||
}
|
||||
// while (currentPagePassenger <= totalPagesPassenger) {
|
||||
await getAllTokenPassenger();
|
||||
await NotificationController().sendNotificationPassengers();
|
||||
// print(tokensPassengers);
|
||||
// if (currentPagePassenger < totalPagesPassenger) {
|
||||
// await Future.delayed(const Duration(seconds: 3));
|
||||
// }
|
||||
// currentPagePassenger++;
|
||||
// }
|
||||
|
||||
isSendingNotificationsPassenger = false;
|
||||
Get.snackbar("Success", "All notifications sent!");
|
||||
@@ -224,7 +213,7 @@ class FirebaseMessagesController extends GetxController {
|
||||
for (var i = 0; i < dataTokens.length; i++) {
|
||||
tokensPassengers.add(jsonResponse['data'][i]['token']);
|
||||
}
|
||||
box.write(BoxName.tokensPassengers, tokensPassengers);
|
||||
box.write(BoxName.tokensPassengers, jsonResponse['data']);
|
||||
} else {
|
||||
Get.defaultDialog(title: "Warning", middleText: "Server Error");
|
||||
}
|
||||
@@ -638,6 +627,7 @@ class FirebaseMessagesController extends GetxController {
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
SnackBar(content: Text('${response.statusCode}'));
|
||||
print(
|
||||
'Notification sent successfully. Status code: ${response.statusCode}');
|
||||
// print('Response body: ${response.body}');
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
@@ -284,30 +285,41 @@ class CRUD {
|
||||
required String link,
|
||||
Map<String, dynamic>? payload,
|
||||
}) async {
|
||||
// String? basicAuthCredentials =
|
||||
// await storage.read(key: BoxName.basicAuthCredentials);
|
||||
var url = Uri.parse(
|
||||
link,
|
||||
);
|
||||
var response = await http.post(
|
||||
url,
|
||||
body: payload,
|
||||
headers: {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
'Authorization':
|
||||
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
|
||||
},
|
||||
);
|
||||
try {
|
||||
var url = Uri.parse(link);
|
||||
var response = await http.post(
|
||||
url,
|
||||
body: payload,
|
||||
headers: {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
'Authorization':
|
||||
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
|
||||
},
|
||||
);
|
||||
|
||||
var jsonData = jsonDecode(response.body);
|
||||
if (response.statusCode == 200) {
|
||||
if (jsonData['status'] == 'success') {
|
||||
return response.body;
|
||||
var jsonData = jsonDecode(response.body);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
if (jsonData['status'] == 'success') {
|
||||
return response.body;
|
||||
} else {
|
||||
return jsonData['status'];
|
||||
}
|
||||
} else {
|
||||
return (jsonData['status']);
|
||||
// Log non-fatal errors to Crashlytics
|
||||
await FirebaseCrashlytics.instance.log("Failed API request :$link");
|
||||
FirebaseCrashlytics.instance.recordError(
|
||||
Exception('Error: ${response.statusCode}'),
|
||||
null,
|
||||
reason: 'Failed HTTP POST request',
|
||||
);
|
||||
return response.statusCode;
|
||||
}
|
||||
} else {
|
||||
return response.statusCode;
|
||||
} catch (e, stackTrace) {
|
||||
// Log error to Crashlytics
|
||||
await FirebaseCrashlytics.instance
|
||||
.recordError(e, stackTrace, reason: 'Exception in post request');
|
||||
return 'Error occurred';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -126,12 +126,37 @@ class NotificationController extends GetxController {
|
||||
confirm: MyElevatedButton(
|
||||
title: 'send'.tr,
|
||||
onPressed: () async {
|
||||
tokensPassengers = box.read(BoxName.tokensPassengers);
|
||||
for (var i = 0; i < tokensPassengers.length; i++) {
|
||||
if (formKey.currentState!.validate()) {
|
||||
FirebaseMessagesController().sendNotificationToAnyWithoutData(
|
||||
title.text, body.text, tokensPassengers[i], 'order.wav');
|
||||
// tokensPassengers = box.read(BoxName.tokensPassengers);
|
||||
var tokensPassengersData =
|
||||
box.read(BoxName.tokensPassengers)['data'];
|
||||
|
||||
// Debug print to check structure of the 'data' field
|
||||
print('Tokens Passengers Data: $tokensPassengersData');
|
||||
|
||||
if (tokensPassengersData is List) {
|
||||
for (var i = 0; i < tokensPassengersData.length; i++) {
|
||||
if (formKey.currentState!.validate()) {
|
||||
var res = await CRUD()
|
||||
.post(link: AppLink.addNotificationPassenger, payload: {
|
||||
"passenger_id": tokensPassengersData[i]['id'].toString(),
|
||||
"title": title.text,
|
||||
"body": body.text,
|
||||
});
|
||||
Log.print('res: ${res}');
|
||||
FirebaseMessagesController()
|
||||
.sendNotificationToAnyWithoutData(
|
||||
title.text,
|
||||
body.text,
|
||||
tokensPassengersData[i]['token']
|
||||
.toString(), // Access token correctly
|
||||
'order.wav',
|
||||
);
|
||||
}
|
||||
}
|
||||
Get.back();
|
||||
} else {
|
||||
// Handle the case where 'data' is not a list
|
||||
print('Data is not a list: $tokensPassengersData');
|
||||
}
|
||||
}),
|
||||
cancel: MyElevatedButton(
|
||||
|
||||
BIN
lib/env.zip
Normal file
BIN
lib/env.zip
Normal file
Binary file not shown.
@@ -1,6 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:firebase_core/firebase_core.dart';
|
||||
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -46,7 +47,8 @@ void main() async {
|
||||
DeviceOrientation.portraitUp,
|
||||
DeviceOrientation.portraitDown,
|
||||
]);
|
||||
}
|
||||
} // Enable Crashlytics collection
|
||||
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
|
||||
|
||||
runApp(const MainApp());
|
||||
}
|
||||
|
||||
@@ -232,8 +232,8 @@ class StaticDash extends StatelessWidget {
|
||||
isStepLineChart: true,
|
||||
spots: staticController.chartDataRides,
|
||||
isCurved: true,
|
||||
color: Colors
|
||||
.deepPurpleAccent, // Custom color
|
||||
color: const Color.fromARGB(
|
||||
255, 84, 181, 182), // Custom color
|
||||
barWidth: 3, // Thinner line
|
||||
dotData: const FlDotData(
|
||||
show:
|
||||
|
||||
Reference in New Issue
Block a user