Fix ClassCastException while parsing fireDate
ClassCastException was thrown on Android 8.1 while trying to schedule local notification. Use try-catch approach instead of relaying on the default parse value.
This commit is contained in:
parent
f3806da600
commit
dbc5a2d54e
|
@ -309,9 +309,12 @@ public class RNFirebaseNotificationManager {
|
|||
// 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) {
|
||||
Long fireDate = -1L;
|
||||
try {
|
||||
fireDate = (long) schedule.getDouble("fireDate", -1);
|
||||
} catch (ClassCastException e) {
|
||||
fireDate = schedule.getLong("fireDate", -1);
|
||||
}
|
||||
if (fireDate == -1) {
|
||||
if (promise == null) {
|
||||
Log.e(TAG, "Missing schedule information");
|
||||
|
@ -320,7 +323,6 @@ public class RNFirebaseNotificationManager {
|
|||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Scheduled alarms are cleared on restart
|
||||
// We store them so that they can be re-scheduled when the phone restarts in RNFirebaseNotificationsRebootReceiver
|
||||
|
|
Loading…
Reference in New Issue