|
|
|
@ -11,7 +11,6 @@ import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/pages/livecare/incoming_call.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/pages/medical/my_admissions_page.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/services/robo_search/search_provider.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart';
|
|
|
|
@ -19,13 +18,10 @@ import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart';
|
|
|
|
|
import 'package:firebase_messaging/firebase_messaging.dart';
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
import 'home_page.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
|
|
|
|
|
|
|
|
|
class LandingPage extends StatefulWidget {
|
|
|
|
|
static bool isOpenCallPage = false;
|
|
|
|
@ -110,14 +106,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
|
|
|
|
|
_firebaseMessaging.setAutoInitEnabled(true);
|
|
|
|
|
|
|
|
|
|
if (Platform.isIOS) {
|
|
|
|
|
_firebaseMessaging.requestNotificationPermissions(
|
|
|
|
|
// const IosNotificationSettings(
|
|
|
|
|
// sound: true,
|
|
|
|
|
// badge: true,
|
|
|
|
|
// alert: true,
|
|
|
|
|
// provisional: true,
|
|
|
|
|
// ),
|
|
|
|
|
);
|
|
|
|
|
_firebaseMessaging.requestNotificationPermissions();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_firebaseMessaging.getToken().then((String token) {
|
|
|
|
@ -126,123 +115,124 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
|
|
|
|
|
checkUserStatus(token);
|
|
|
|
|
}
|
|
|
|
|
requestPermissions();
|
|
|
|
|
}).catchError((err) {
|
|
|
|
|
print(err);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//_firebase Background message handler
|
|
|
|
|
_firebaseMessaging.configure(
|
|
|
|
|
// onMessage: (Map<String, dynamic> message) async {
|
|
|
|
|
// showDialog("onMessage: $message");
|
|
|
|
|
// print("onMessage: $message");
|
|
|
|
|
// print(message);
|
|
|
|
|
// print(message['name']);
|
|
|
|
|
// print(message['appointmentdate']);
|
|
|
|
|
//
|
|
|
|
|
// if (Platform.isIOS) {
|
|
|
|
|
// if (message['is_call'] == "true") {
|
|
|
|
|
// var route = ModalRoute.of(context);
|
|
|
|
|
//
|
|
|
|
|
// if (route != null) {
|
|
|
|
|
// print(route.settings.name);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Map<String, dynamic> myMap = new Map<String, dynamic>.from(message);
|
|
|
|
|
// print(myMap);
|
|
|
|
|
// LandingPage.isOpenCallPage = true;
|
|
|
|
|
// LandingPage.incomingCallData = IncomingCallData.fromJson(myMap);
|
|
|
|
|
// if (!isPageNavigated) {
|
|
|
|
|
// isPageNavigated = true;
|
|
|
|
|
// Navigator.push(
|
|
|
|
|
// context,
|
|
|
|
|
// MaterialPageRoute(
|
|
|
|
|
// builder: (context) => IncomingCall(
|
|
|
|
|
// incomingCallData: LandingPage.incomingCallData)))
|
|
|
|
|
// .then((value) {
|
|
|
|
|
// isPageNavigated = false;
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// print("Is Call Not Found iOS");
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// print("Is Call Not Found iOS");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if (Platform.isAndroid) {
|
|
|
|
|
// if (message['data'].containsKey("is_call")) {
|
|
|
|
|
// var route = ModalRoute.of(context);
|
|
|
|
|
//
|
|
|
|
|
// if (route != null) {
|
|
|
|
|
// print(route.settings.name);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Map<String, dynamic> myMap =
|
|
|
|
|
// new Map<String, dynamic>.from(message['data']);
|
|
|
|
|
// print(myMap);
|
|
|
|
|
// LandingPage.isOpenCallPage = true;
|
|
|
|
|
// LandingPage.incomingCallData = IncomingCallData.fromJson(myMap);
|
|
|
|
|
// if (!isPageNavigated) {
|
|
|
|
|
// isPageNavigated = true;
|
|
|
|
|
// Navigator.push(
|
|
|
|
|
// context,
|
|
|
|
|
// MaterialPageRoute(
|
|
|
|
|
// builder: (context) => IncomingCall(
|
|
|
|
|
// incomingCallData: LandingPage.incomingCallData)))
|
|
|
|
|
// .then((value) {
|
|
|
|
|
// isPageNavigated = false;
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// print("Is Call Not Found Android");
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// print("Is Call Not Found Android");
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
// onBackgroundMessage: Platform.isIOS ? null : myBackgroundMessageHandler,
|
|
|
|
|
// onLaunch: (Map<String, dynamic> message) async {
|
|
|
|
|
// print("onLaunch: $message");
|
|
|
|
|
// showDialog("onLaunch: $message");
|
|
|
|
|
// },
|
|
|
|
|
// onResume: (Map<String, dynamic> message) async {
|
|
|
|
|
// print("onResume: $message");
|
|
|
|
|
// print(message);
|
|
|
|
|
// print(message['name']);
|
|
|
|
|
// print(message['appointmentdate']);
|
|
|
|
|
//
|
|
|
|
|
// showDialog("onResume: $message");
|
|
|
|
|
//
|
|
|
|
|
// if (Platform.isIOS) {
|
|
|
|
|
// if (message['is_call'] == "true") {
|
|
|
|
|
// var route = ModalRoute.of(context);
|
|
|
|
|
//
|
|
|
|
|
// if (route != null) {
|
|
|
|
|
// print(route.settings.name);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Map<String, dynamic> myMap =
|
|
|
|
|
// new Map<String, dynamic>.from(message);
|
|
|
|
|
// print(myMap);
|
|
|
|
|
// LandingPage.isOpenCallPage = true;
|
|
|
|
|
// LandingPage.incomingCallData = IncomingCallData.fromJson(myMap);
|
|
|
|
|
// if (!isPageNavigated) {
|
|
|
|
|
// isPageNavigated = true;
|
|
|
|
|
// Navigator.push(
|
|
|
|
|
// context,
|
|
|
|
|
// MaterialPageRoute(
|
|
|
|
|
// builder: (context) => IncomingCall(
|
|
|
|
|
// incomingCallData: LandingPage.incomingCallData)))
|
|
|
|
|
// .then((value) {
|
|
|
|
|
// isPageNavigated = false;
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// print("Is Call Not Found iOS");
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// print("Is Call Not Found iOS");
|
|
|
|
|
// }
|
|
|
|
|
// },
|
|
|
|
|
);
|
|
|
|
|
onMessage: (Map<String, dynamic> message) async {
|
|
|
|
|
showDialog("onMessage: $message");
|
|
|
|
|
print("onMessage: $message");
|
|
|
|
|
print(message);
|
|
|
|
|
print(message['name']);
|
|
|
|
|
print(message['appointmentdate']);
|
|
|
|
|
|
|
|
|
|
if (Platform.isIOS) {
|
|
|
|
|
if (message['is_call'] == "true") {
|
|
|
|
|
var route = ModalRoute.of(context);
|
|
|
|
|
|
|
|
|
|
if (route != null) {
|
|
|
|
|
print(route.settings.name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> myMap = new Map<String, dynamic>.from(message);
|
|
|
|
|
print(myMap);
|
|
|
|
|
LandingPage.isOpenCallPage = true;
|
|
|
|
|
LandingPage.incomingCallData = IncomingCallData.fromJson(myMap);
|
|
|
|
|
if (!isPageNavigated) {
|
|
|
|
|
isPageNavigated = true;
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
MaterialPageRoute(
|
|
|
|
|
builder: (context) => IncomingCall(
|
|
|
|
|
incomingCallData: LandingPage.incomingCallData)))
|
|
|
|
|
.then((value) {
|
|
|
|
|
isPageNavigated = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("Is Call Not Found iOS");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("Is Call Not Found iOS");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Platform.isAndroid) {
|
|
|
|
|
if (message['data'].containsKey("is_call")) {
|
|
|
|
|
var route = ModalRoute.of(context);
|
|
|
|
|
|
|
|
|
|
if (route != null) {
|
|
|
|
|
print(route.settings.name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> myMap =
|
|
|
|
|
new Map<String, dynamic>.from(message['data']);
|
|
|
|
|
print(myMap);
|
|
|
|
|
LandingPage.isOpenCallPage = true;
|
|
|
|
|
LandingPage.incomingCallData = IncomingCallData.fromJson(myMap);
|
|
|
|
|
if (!isPageNavigated) {
|
|
|
|
|
isPageNavigated = true;
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
MaterialPageRoute(
|
|
|
|
|
builder: (context) => IncomingCall(
|
|
|
|
|
incomingCallData: LandingPage.incomingCallData)))
|
|
|
|
|
.then((value) {
|
|
|
|
|
isPageNavigated = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("Is Call Not Found Android");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("Is Call Not Found Android");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onBackgroundMessage: Platform.isIOS ? null : myBackgroundMessageHandler,
|
|
|
|
|
onLaunch: (Map<String, dynamic> message) async {
|
|
|
|
|
print("onLaunch: $message");
|
|
|
|
|
showDialog("onLaunch: $message");
|
|
|
|
|
},
|
|
|
|
|
onResume: (Map<String, dynamic> message) async {
|
|
|
|
|
print("onResume: $message");
|
|
|
|
|
print(message);
|
|
|
|
|
print(message['name']);
|
|
|
|
|
print(message['appointmentdate']);
|
|
|
|
|
|
|
|
|
|
showDialog("onResume: $message");
|
|
|
|
|
|
|
|
|
|
if (Platform.isIOS) {
|
|
|
|
|
if (message['is_call'] == "true") {
|
|
|
|
|
var route = ModalRoute.of(context);
|
|
|
|
|
|
|
|
|
|
if (route != null) {
|
|
|
|
|
print(route.settings.name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> myMap = new Map<String, dynamic>.from(message);
|
|
|
|
|
print(myMap);
|
|
|
|
|
LandingPage.isOpenCallPage = true;
|
|
|
|
|
LandingPage.incomingCallData = IncomingCallData.fromJson(myMap);
|
|
|
|
|
if (!isPageNavigated) {
|
|
|
|
|
isPageNavigated = true;
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
MaterialPageRoute(
|
|
|
|
|
builder: (context) => IncomingCall(
|
|
|
|
|
incomingCallData: LandingPage.incomingCallData)))
|
|
|
|
|
.then((value) {
|
|
|
|
|
isPageNavigated = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("Is Call Not Found iOS");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
print("Is Call Not Found iOS");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showDialog(String message) {
|
|
|
|
|