use LocationListenerCompat to fix crash on Android API < 30

This commit is contained in:
johan12345
2022-08-07 13:31:41 +02:00
parent 581d0c07ec
commit cf20ab8d82

View File

@@ -26,6 +26,7 @@ import androidx.car.app.validation.HostValidator
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import androidx.core.location.LocationListenerCompat
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import net.vonforst.evmap.R
@@ -169,6 +170,10 @@ class EVMapSession(val cas: CarAppService) : Session(), DefaultLifecycleObserver
}
}
private val phoneLocationListener = LocationListenerCompat {
this.updateLocation(it)
}
@RequiresPermission(anyOf = [Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION])
private fun requestPhoneLocationUpdates() {
val location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER)
@@ -177,7 +182,7 @@ class EVMapSession(val cas: CarAppService) : Session(), DefaultLifecycleObserver
LocationManager.GPS_PROVIDER,
1000,
1f,
this::updateLocation
phoneLocationListener
)
}
@@ -197,7 +202,7 @@ class EVMapSession(val cas: CarAppService) : Session(), DefaultLifecycleObserver
@RequiresPermission(anyOf = [Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION])
private fun removePhoneLocationUpdates() {
locationManager.removeUpdates(this::updateLocation)
locationManager.removeUpdates(phoneLocationListener)
}
@SuppressLint("MissingPermission")