diff --git a/lib/components/hike_screen_widget.dart b/lib/components/hike_screen_widget.dart index c190614..b7efefb 100644 --- a/lib/components/hike_screen_widget.dart +++ b/lib/components/hike_screen_widget.dart @@ -30,6 +30,8 @@ class HikeScreenWidget extends ChangeNotifier { static Widget shareButton(BuildContext context, String? passkey) { return FloatingActionButton( + heroTag: + 'shareRouteTag', //had to pass this tag else we would get error since there will be two FAB in the same subtree with the same tag. onPressed: () { showDialog( context: context, @@ -104,7 +106,7 @@ class HikeScreenWidget extends ChangeNotifier { ) { return FloatingActionButton( heroTag: - 'shareRouteTag', //had to pass this tag else we would get error since there will be two FAB in the same subtree with the same tag. + 'shareRouteTag1', //had to pass this tag else we would get error since there will be two FAB in the same subtree with the same tag. onPressed: () async { final mapController = await googleMapControllerCompleter.future; // sanity check. diff --git a/lib/services/local_notification.dart b/lib/services/local_notification.dart index 7296162..d761416 100644 --- a/lib/services/local_notification.dart +++ b/lib/services/local_notification.dart @@ -48,7 +48,11 @@ class LocalNotification { } Future scheduleNotification(Beacon beacon) async { + tz.TZDateTime scheduledDate1 = await tz.TZDateTime.from( + + var scheduledDate1 = await tz.TZDateTime.from( + DateTime.fromMillisecondsSinceEpoch(beacon.startsAt!), tz.local); await flutterLocalNotificationsPlugin.zonedSchedule( beacon.id.hashCode, @@ -83,10 +87,17 @@ class LocalNotification { tz.local, ).subtract(Duration(hours: 1)); + // We will check if beacon start time is less than the 2nd notification scheduling time if (scheduledDate2.compareTo(scheduledDate1) < 0) return; + if (!scheduledDate2.isAfter(tz.TZDateTime.from( + DateTime.fromMillisecondsSinceEpoch(beacon.startsAt!), tz.local))) { + return; + } + + await flutterLocalNotificationsPlugin.zonedSchedule( beacon.id.hashCode, 'Reminder: ' + beacon.title! + ' will start in an hour',