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.
|
// 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.
|
// This would lead to a fireDate of 0.0 when trying to extract a Double from the bundle.
|
||||||
// Instead always try extract a Long
|
// Instead always try extract a Long
|
||||||
Long fireDate = schedule.getLong("fireDate", -1);
|
Long fireDate = -1L;
|
||||||
if (fireDate == -1) {
|
try {
|
||||||
fireDate = (long) schedule.getDouble("fireDate", -1);
|
fireDate = (long) schedule.getDouble("fireDate", -1);
|
||||||
|
} catch (ClassCastException e) {
|
||||||
|
fireDate = schedule.getLong("fireDate", -1);
|
||||||
|
}
|
||||||
if (fireDate == -1) {
|
if (fireDate == -1) {
|
||||||
if (promise == null) {
|
if (promise == null) {
|
||||||
Log.e(TAG, "Missing schedule information");
|
Log.e(TAG, "Missing schedule information");
|
||||||
|
@ -320,7 +323,6 @@ public class RNFirebaseNotificationManager {
|
||||||
}
|
}
|
||||||
return;
|
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