|
|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
import 'dart:convert';
|
|
|
|
|
import 'dart:developer';
|
|
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
|
|
import 'package:firebase_messaging/firebase_messaging.dart';
|
|
|
|
|
@ -6,12 +7,17 @@ import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:google_api_availability/google_api_availability.dart';
|
|
|
|
|
import 'package:huawei_push/huawei_push.dart' as h_push;
|
|
|
|
|
import 'package:test_sa/controllers/notification/notification_manger.dart';
|
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
|
import 'package:test_sa/models/all_requests_and_count_model.dart';
|
|
|
|
|
import 'package:test_sa/models/device/device_transfer.dart';
|
|
|
|
|
import 'package:test_sa/models/new_models/gas_refill_model.dart';
|
|
|
|
|
import 'package:test_sa/modules/cm_module/views/service_request_detail_main_view.dart';
|
|
|
|
|
import 'package:test_sa/modules/pm_module/ppm_wo/ppm_details_page.dart';
|
|
|
|
|
import 'package:test_sa/modules/pm_module/recurrent_wo/recurrent_work_order_view.dart';
|
|
|
|
|
import 'package:test_sa/modules/tm_module/tasks_wo/task_request_detail_view.dart';
|
|
|
|
|
import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart';
|
|
|
|
|
import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
|
|
|
|
|
|
|
|
|
|
@pragma('vm:entry-point')
|
|
|
|
|
Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {}
|
|
|
|
|
@ -78,29 +84,68 @@ class FirebaseNotificationManger {
|
|
|
|
|
static void handleMessage(context, Map<String, dynamic> messageData) {
|
|
|
|
|
if (messageData["requestType"] != null && messageData["requestNumber"] != null) {
|
|
|
|
|
Widget? serviceClass;
|
|
|
|
|
|
|
|
|
|
if (messageData["requestType"] == "Service request to engineer") {
|
|
|
|
|
// PPM=1,
|
|
|
|
|
// ServiceRequestEngineer = 3,
|
|
|
|
|
// AssetTransfer=7,
|
|
|
|
|
// SparePartTransaction= 8,
|
|
|
|
|
// GasRefill=9,
|
|
|
|
|
// TechnicalRetirmentWO = 11,
|
|
|
|
|
// Recurrent = 12,
|
|
|
|
|
switch (messageData["transactionType"]) {
|
|
|
|
|
case 1:
|
|
|
|
|
serviceClass = PpmDetailsPage(requestId: int.parse(messageData["requestNumber"].toString()));
|
|
|
|
|
break;
|
|
|
|
|
//these three request are same corrective maintenance....
|
|
|
|
|
case 3:
|
|
|
|
|
serviceClass = ServiceRequestDetailMain(requestId: messageData["requestNumber"] ?? '');
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
serviceClass = ServiceRequestDetailMain(requestId: messageData["requestNumber"] ?? '');
|
|
|
|
|
} else if (messageData["requestType"] == "Gas Refill") {
|
|
|
|
|
break;
|
|
|
|
|
case 11:
|
|
|
|
|
serviceClass = ServiceRequestDetailMain(requestId: messageData["requestNumber"] ?? '');
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
serviceClass = DeviceTransferDetails(model: DeviceTransfer(id: int.parse(messageData["requestNumber"].toString())));
|
|
|
|
|
break;
|
|
|
|
|
case 9:
|
|
|
|
|
serviceClass = GasRefillDetailsPage(
|
|
|
|
|
priority: messageData["priority"],
|
|
|
|
|
date: messageData["createdOn"],
|
|
|
|
|
model: GasRefillModel(id: int.parse(messageData["requestNumber"].toString())),
|
|
|
|
|
);
|
|
|
|
|
} else if (messageData["requestType"] == "Asset Transfer") {
|
|
|
|
|
serviceClass = DeviceTransferDetails(model: DeviceTransfer(id: int.parse(messageData["requestNumber"].toString())));
|
|
|
|
|
} else if (messageData["requestType"] == "PPM") {
|
|
|
|
|
serviceClass = PpmDetailsPage(requestId: int.parse(messageData["requestNumber"].toString()));
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 12:
|
|
|
|
|
serviceClass = RecurrentWorkOrderView(taskId: int.parse(messageData["requestNumber"].toString()));
|
|
|
|
|
//Didn't handle task request yet...
|
|
|
|
|
// case 6:
|
|
|
|
|
// serviceClass = TaskRequestDetailsView(
|
|
|
|
|
// taskId: int.parse(messageData["requestNumber"].toString()),
|
|
|
|
|
// requestDetails: RequestsDetails(nameOfType: messageData["sourceName"], status: messageData["statusName"], priority: messageData["priorityName"], date: messageData["createdDate"]));
|
|
|
|
|
// return;
|
|
|
|
|
default:
|
|
|
|
|
serviceClass = const Scaffold(body: Center(child: NoDataFound()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if (messageData["requestType"] == "Service request to engineer") {
|
|
|
|
|
// serviceClass = ServiceRequestDetailMain(requestId: messageData["requestNumber"] ?? '');
|
|
|
|
|
// } else if (messageData["requestType"] == "Gas Refill") {
|
|
|
|
|
// serviceClass = GasRefillDetailsPage(
|
|
|
|
|
// priority: messageData["priority"],
|
|
|
|
|
// date: messageData["createdOn"],
|
|
|
|
|
// model: GasRefillModel(id: int.parse(messageData["requestNumber"].toString())),
|
|
|
|
|
// );
|
|
|
|
|
// } else if (messageData["requestType"] == "Asset Transfer") {
|
|
|
|
|
// serviceClass = DeviceTransferDetails(model: DeviceTransfer(id: int.parse(messageData["requestNumber"].toString())));
|
|
|
|
|
// } else if (messageData["requestType"] == "PPM") {
|
|
|
|
|
// serviceClass = PpmDetailsPage(requestId: int.parse(messageData["requestNumber"].toString()));
|
|
|
|
|
// }
|
|
|
|
|
// else if (data["requestType"] == "WorkOrder") {
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
if (serviceClass != null) {
|
|
|
|
|
Navigator.of(context).push(MaterialPageRoute(builder: (_) => serviceClass!));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static initialized(BuildContext context) async {
|
|
|
|
|
//TOD0 add platform check here also
|
|
|
|
|
@ -116,6 +161,7 @@ class FirebaseNotificationManger {
|
|
|
|
|
if (message is Map<String, dynamic>) {
|
|
|
|
|
Map<String, dynamic> remoteData = message;
|
|
|
|
|
remoteData = remoteData["extras"];
|
|
|
|
|
|
|
|
|
|
handleMessage(context, remoteData);
|
|
|
|
|
}
|
|
|
|
|
} catch (ex) {
|
|
|
|
|
|