diff --git a/lib/firebase/booking_db.dart b/lib/firebase/booking_db.dart index a76c17b..3f57710 100644 --- a/lib/firebase/booking_db.dart +++ b/lib/firebase/booking_db.dart @@ -33,6 +33,23 @@ CollectionReference _collectionRef = else return null; } + + void registerForBookingCompleted(int bookingId, Function() f) async { + print("okay regis $bookingId"); + _collectionRef + .where('bookingId', isEqualTo: bookingId) + // .orderBy('timestamp', descending: true) + .snapshots() + .listen((QuerySnapshot querySnapshot){ + Booking b = Booking.fromJson(querySnapshot.docs[0].data() as Map); + if(b.bookingStatus! == "Completed"){ + print("Okay, success"); + f(); + } + } + ); + } + Future> getOperatorIdBooking(String oId) async { FirebaseAuth auth = FirebaseAuth.instance; QuerySnapshot snap = await _collectionRef diff --git a/lib/screens/operator_booked.dart b/lib/screens/operator_booked.dart index 18bcbf6..633e43d 100644 --- a/lib/screens/operator_booked.dart +++ b/lib/screens/operator_booked.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/src/foundation/key.dart'; import 'package:flutter/src/widgets/framework.dart'; +import 'package:mera_aadhar/firebase/booking_db.dart'; import 'package:mera_aadhar/provider/booking.dart'; +import 'package:mera_aadhar/screens/finish_page.dart'; import 'package:mera_aadhar/utilities/constants.dart'; import 'package:mera_aadhar/utilities/size_config.dart'; import 'package:mera_aadhar/widgets/my_card.dart'; @@ -18,7 +20,22 @@ class OperatorBooked extends StatefulWidget { class _OperatorBookedState extends State { @override void initState() { + // int bookingId = Provider.of(context, listen: false).booking.bookingId!; + // print("book id completed $bookingId"); + // var bdb = BookingDB(); + // bdb.registerForBookingCompleted(bookingId, (){ + // Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => FinishPage()));}); + super.initState(); + + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + int bookingId = Provider.of(context, listen: false).booking.bookingId!; + print("book id completed $bookingId"); + var bdb = BookingDB(); + bdb.registerForBookingCompleted(bookingId, (){ + Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => FinishPage()));}); + }); + } @override @@ -28,6 +45,7 @@ class _OperatorBookedState extends State { } void cancelCurrentBookingAndExit() async { + print("cancel"); // TODO: Implement here } @@ -143,7 +161,9 @@ class _OperatorBookedState extends State { child: Text( 'Cancel', style: buttonTextStyle, - ))) + ) + ) + ), ], )), );