+ Fix Android rescheduled notifications firing immediately
This commit is contained in:
parent
8ef7c2d983
commit
d193c6b688
|
@ -657,7 +657,21 @@ public class RNFirebaseNotificationManager {
|
||||||
String notificationId = notification.getString("notificationId");
|
String notificationId = notification.getString("notificationId");
|
||||||
Bundle schedule = notification.getBundle("schedule");
|
Bundle schedule = notification.getBundle("schedule");
|
||||||
|
|
||||||
Double fireDate = schedule.getDouble("fireDate");
|
// fireDate is stored in the Bundle as Long after notifications are rescheduled.
|
||||||
|
// This would lead to a fireDate of 0.0 when trying to extract a Double from the bundle.
|
||||||
|
// Instead always try extract a Long
|
||||||
|
Long fireDate = schedule.getLong("fireDate", -1);
|
||||||
|
if (fireDate == -1) {
|
||||||
|
fireDate = (long) schedule.getDouble("fireDate", -1);
|
||||||
|
if (fireDate == -1) {
|
||||||
|
if (promise == null) {
|
||||||
|
Log.e(TAG, "Missing schedule information");
|
||||||
|
} else {
|
||||||
|
promise.reject("notification/schedule_notification_error", "Missing fireDate information");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Scheduled alarms are cleared on restart
|
// Scheduled alarms are cleared on restart
|
||||||
// We store them so that they can be re-scheduled when the phone restarts in RNFirebaseNotificationsRebootReceiver
|
// We store them so that they can be re-scheduled when the phone restarts in RNFirebaseNotificationsRebootReceiver
|
||||||
|
|
Loading…
Reference in New Issue