Lukasz Kalnik
07/29/2024, 4:33 PMtrySend()
inside of a callbackFlow {}
Builder. I'm getting the following exception:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object kotlinx.coroutines.channels.ChannelResult.unbox-impl()' on a null object reference
Lukasz Kalnik
07/29/2024, 4:35 PMcallbackFlow {
timeoutTimer?.cancelTimer()
timeoutTimer = LifecycleAwareTimer { onTimeout?.invoke() }
timeoutTimer?.startTimer(timeoutInSeconds * 1000L)
locationCallback = object : LocationCallback() {
override fun onLocationResult(location: LocationResult) {
location.lastLocation?.let {
if (it.accuracy <= minAcceptableAccuracyMeters) {
timeoutTimer?.cancelTimer()
trySend(LocationState.Success(it))
}
}
}
}.apply {
if ((permissionChecker.locationPermissionsGranted && permissionChecker.hasGPS && permissionChecker.isGPSTurnedOn)) {
fusedLocationProvider.requestLocationUpdates(locationRequest, this, Looper.getMainLooper())
.addOnFailureListener { e ->
trySend(LocationState.Failure.Generic)
close(e)
}
} else {
trySend(LocationState.Failure.LocationPermissionsNotGranted)
}
}
awaitClose { stopEmittingLocationUpdates() }
}
Lukasz Kalnik
07/29/2024, 4:36 PMtrySend(LocationState.Success(it))