Open
Description
Problem
// JustBeforeLaunchAlarmReceiver
repository.getNextLaunch()
.first()
.invoke()
.takeIf { it != null && it.tentativeMaxPrecision == DatePrecision.hour }
?: run {
log("Could not get next launch from database. Not scheduling notification")
return
}
Broadcast receivers for Launch alarms use the first item received in the Flow<Resource<Launch>
or Flow<Resource<List<Launch>>
for showing the notifications. This first item is always Resource.Loading
.
Hence the invoke()
operator always produces null and notifications are never scheduled.
Solution
Change the call from first()
to last()
.