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 _isArrivalLoading = false;
bool _isVerifyArrivalBottomSheetOpen = false;
bool get isVerifyArrivalBottomSheetOpen => _isVerifyArrivalBottomSheetOpen;
set isVerifyArrivalBottomSheetOpen(bool value) {
_isVerifyArrivalBottomSheetOpen = value;
notifyListeners();
}
bool get isArrivalLoading => _isArrivalLoading;
set isArrivalLoading(bool value) {

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

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

Loading…
Cancel
Save