Added location looper thread

This commit is contained in:
max-klaus 2021-02-19 14:16:22 +03:00
parent 1a230ab3d3
commit cb556beb2b

View file

@ -1,6 +1,7 @@
package net.osmand.plus; package net.osmand.plus;
import android.location.Location; import android.location.Location;
import android.os.HandlerThread;
import android.os.Looper; import android.os.Looper;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -32,6 +33,8 @@ public class LocationServiceHelperImpl extends LocationServiceHelper {
private final OsmandApplication app; private final OsmandApplication app;
private final HandlerThread mHandlerThread = new HandlerThread("LocationServiceHelperThread");
// FusedLocationProviderClient - Main class for receiving location updates. // FusedLocationProviderClient - Main class for receiving location updates.
private final FusedLocationProviderClient fusedLocationProviderClient; private final FusedLocationProviderClient fusedLocationProviderClient;
@ -46,6 +49,7 @@ public class LocationServiceHelperImpl extends LocationServiceHelper {
public LocationServiceHelperImpl(@NonNull OsmandApplication app) { public LocationServiceHelperImpl(@NonNull OsmandApplication app) {
this.app = app; this.app = app;
mHandlerThread.start();
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(app); fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(app);
@ -100,7 +104,7 @@ public class LocationServiceHelperImpl extends LocationServiceHelper {
// request location updates // request location updates
try { try {
fusedLocationProviderClient.requestLocationUpdates( fusedLocationProviderClient.requestLocationUpdates(
fusedLocationRequest, fusedLocationCallback, Looper.myLooper()); fusedLocationRequest, fusedLocationCallback, mHandlerThread.getLooper());
} catch (SecurityException e) { } catch (SecurityException e) {
LOG.debug("Location service permission not granted"); LOG.debug("Location service permission not granted");
throw e; throw e;