notification in progress

design_3.0_latest
WaseemAbbasi22 1 year ago
parent 7aed41380b
commit d3ed7e39c2

@ -56,8 +56,16 @@ class ServiceRequestDetailProvider extends ChangeNotifier {
bool _isLoading = false; bool _isLoading = false;
bool _isArrivalLoading = false; bool _isArrivalLoading = false;
bool _isVerifyArrivalBottomSheetOpen = false;
bool get isVerifyArrivalBottomSheetOpen => _isVerifyArrivalBottomSheetOpen;
set isVerifyArrivalBottomSheetOpen(bool value) {
_isVerifyArrivalBottomSheetOpen = value;
notifyListeners();
}
bool get isArrivalLoading => _isArrivalLoading; bool get isArrivalLoading => _isArrivalLoading;
set isArrivalLoading(bool value) { set isArrivalLoading(bool value) {

@ -141,7 +141,7 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
break; break;
case 2: case 2:
try { try {
showWaitingBottomSheet(requestDetailProvider: requestDetailProvider, verificationTypeId: verificationTypeId); showWaitingBottomSheet(requestDetailProvider: requestDetailProvider, verificationTypeId: verificationTypeId,parentContext: context);
} catch (e) { } catch (e) {
"Requester not confirmed you arrival".showToast; "Requester not confirmed you arrival".showToast;
} }
@ -215,9 +215,10 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
return fileImage; return fileImage;
} }
void showWaitingBottomSheet({required ServiceRequestDetailProvider requestDetailProvider, int? verificationTypeId}) async { void showWaitingBottomSheet({required ServiceRequestDetailProvider requestDetailProvider, int? verificationTypeId,required BuildContext parentContext}) async {
await requestDetailProvider.engineerConfirmArrival( await requestDetailProvider.engineerConfirmArrival(
workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, verificationTypeId: verificationTypeId ?? 2, photoInfo: '', otp: ''); workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, verificationTypeId: verificationTypeId ?? 2, photoInfo: '', otp: '');
requestDetailProvider.isVerifyArrivalBottomSheetOpen = true;
bool? isArrived = (await showModalBottomSheet( bool? isArrived = (await showModalBottomSheet(
context: context, context: context,
useSafeArea: true, useSafeArea: true,
@ -225,26 +226,23 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
builder: (context) => RequestApprovalBottomSheet(), builder: (context) => RequestApprovalBottomSheet(),
)); ));
if (isArrived == null) { if (requestDetailProvider.isVerifyArrivalBottomSheetOpen) {
//Requester not confirmed you arrival".showToast; print('is arrival value is ${isArrived}');
} else if (isArrived) { if (isArrived == null) {
// try { "Requester not confirmed you arrival".showToast;
// // todo @waseeem call api to confirm } else if (isArrived) {
// int? status; requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); Navigator.pop(parentContext);
// status = await requestDetailProvider.engineerConfirmArrival( requestDetailProvider.startTimer();
// workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, verificationTypeId: verificationTypeId ?? 1, photoInfo: '', otp: ''); } else {
// if (status == 200) { requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
// Navigator.pop(context); "Requester not confirmed you arrival".showToast;
// requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!); Navigator.pop(parentContext);
// Navigator.pop(context);
// requestDetailProvider.startTimer(); }
// } else { }
// Navigator.pop(context); else{
// } print('bottomsheet closed ...');
// } catch (ex) {}
} else {
"Requester not confirmed you arrival".showToast;
} }
} }
} }

@ -31,22 +31,25 @@ class _RequestApprovalBottomState extends State<RequestApprovalBottomSheet> {
print('listen for approval called..'); print('listen for approval called..');
if (Platform.isAndroid && !(await isGoogleServicesAvailable())) { if (Platform.isAndroid && !(await isGoogleServicesAvailable())) {
h_push.Push.onMessageReceivedStream.listen((h_push.RemoteMessage remoteMessage) { h_push.Push.onMessageReceivedStream.listen((h_push.RemoteMessage remoteMessage) {
print("onMessageReceivedStream:${remoteMessage.toMap()}"); // ConfirmArrivalNotificationModel notificationModel = ConfirmArrivalNotificationModel.fromJson(remoteMessage);
// if(notificationModel.requestId!=null&&notificationModel.accept!=null){
// if(notificationModel.accept=='True'){
// Navigator.pop(context, true);
// }else if(notificationModel.accept=='False'){
// Navigator.pop(context, false);
// }
// }
}, onError: (Object error) { }, onError: (Object error) {
print("onMessageReceivedStream:${error?.toString()}"); print("onMessageReceivedStream:${error.toString()}");
}); });
} else { } else {
FirebaseMessaging.onMessage.listen((RemoteMessage message) { FirebaseMessaging.onMessage.listen((RemoteMessage message) {
print('mesage ${message.data}');
ConfirmArrivalNotificationModel notificationModel = ConfirmArrivalNotificationModel.fromJson(message.data); ConfirmArrivalNotificationModel notificationModel = ConfirmArrivalNotificationModel.fromJson(message.data);
print('notification model i got is ${notificationModel.toJson()}');
if(notificationModel.requestId!=null&&notificationModel.accept!=null){ if(notificationModel.requestId!=null&&notificationModel.accept!=null){
print('accept value is ${notificationModel.accept==false}'); if(notificationModel.accept=='True'){
if(notificationModel.accept!=null&&!notificationModel.accept!){
ServiceRequestDetailProvider requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context,listen: false);
requestDetailProvider.getWorkOrderById(id: notificationModel.requestId??0);
Navigator.pop(context, true);
Navigator.pop(context, true); Navigator.pop(context, true);
}else if(notificationModel.accept=='False'){
Navigator.pop(context, false);
} }
} }
// Map<String, dynamic> messageData = message.data; // Map<String, dynamic> messageData = message.data;
@ -75,6 +78,8 @@ class _RequestApprovalBottomState extends State<RequestApprovalBottomSheet> {
@override @override
void dispose() { void dispose() {
print('bottomsheet disposed..');
super.dispose(); super.dispose();
} }
@ -115,10 +120,10 @@ class _RequestApprovalBottomState extends State<RequestApprovalBottomSheet> {
} }
class ConfirmArrivalNotificationModel { class ConfirmArrivalNotificationModel {
final String? transactionType; final String? transactionType;
final int? requestId; final String? requestId;
final String? notificationType; final String? notificationType;
final String? userId; final String? userId;
final bool? accept; final String? accept;
ConfirmArrivalNotificationModel({ ConfirmArrivalNotificationModel({
this.transactionType, this.transactionType,

Loading…
Cancel
Save