55
66package org.microg.gms.maps.mapbox
77
8+ import android.Manifest.permission.ACCESS_COARSE_LOCATION
9+ import android.Manifest.permission.ACCESS_FINE_LOCATION
810import android.app.PendingIntent
911import android.content.Context
1012import android.os.Looper
13+ import androidx.annotation.RequiresPermission
1114import com.google.android.gms.location.LocationListener
1215import com.google.android.gms.location.LocationRequest
1316import com.google.android.gms.location.LocationServices
@@ -21,13 +24,15 @@ class GoogleLocationEngine(context: Context) : LocationEngine {
2124 private val listenerMap: MutableMap <LocationEngineCallback <LocationEngineResult >, LocationListener > = hashMapOf()
2225 private val client = LocationServices .getFusedLocationProviderClient(context)
2326
27+ @RequiresPermission(anyOf = [ACCESS_COARSE_LOCATION , ACCESS_FINE_LOCATION ])
2428 override fun getLastLocation (callback : LocationEngineCallback <LocationEngineResult >) {
2529 client.lastLocation.addOnCompleteListener {
2630 if (it.isSuccessful) callback.onSuccess(LocationEngineResult .create(it.result))
2731 else callback.onFailure(it.exception)
2832 }
2933 }
3034
35+ @RequiresPermission(anyOf = [ACCESS_COARSE_LOCATION , ACCESS_FINE_LOCATION ])
3136 override fun requestLocationUpdates (request : LocationEngineRequest , callback : LocationEngineCallback <LocationEngineResult >, looper : Looper ? ) {
3237 listenerMap[callback] = listenerMap[callback] ? : LocationListener { callback.onSuccess(LocationEngineResult .create(it)) }
3338 client.requestLocationUpdates(
@@ -48,6 +53,7 @@ class GoogleLocationEngine(context: Context) : LocationEngine {
4853 )
4954 }
5055
56+ @RequiresPermission(anyOf = [ACCESS_COARSE_LOCATION , ACCESS_FINE_LOCATION ])
5157 override fun requestLocationUpdates (request : LocationEngineRequest , pendingIntent : PendingIntent ? ) {
5258 throw UnsupportedOperationException ()
5359 }
0 commit comments