Don't use GPS when manual sharing has been choosen

This commit is contained in:
Mieszko Wrzeszczyński 2019-01-02 09:03:44 +01:00
parent 4fd2795377
commit 0bf3d147f0

View File

@ -65,11 +65,17 @@ public class BackgroundLocalizationService extends Service {
private Handler mHandler = new Handler();
private Runnable mStatusChecker;
private FusedLocationProviderClient mFusedLocationClient;
private Location fakeLoc = null;
public BackgroundLocalizationService() {
providers.add(LocationManager.GPS_PROVIDER);
providers.add(LocationManager.NETWORK_PROVIDER);
providers.add(LocationManager.PASSIVE_PROVIDER);
fakeLoc = new Location("");
fakeLoc.setLatitude(0);
fakeLoc.setLongitude(0);
fakeLoc.setAltitude(0);
}
@Override
@ -112,9 +118,13 @@ public class BackgroundLocalizationService extends Service {
if (!stopService) {
mStatusChecker = () -> {
try {
if (PrefUtils.getLocationLevel(getApplicationContext()).equals(SharingLevel.MANUAL.toString())) {
sendCoordinateToBackend(fakeLoc);
} else {
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
getLocalizationFromListeners();
changeBackgroundMode();
}
} finally {
mFusedLocationClient = null;
destroyLocationListeners();
@ -231,7 +241,6 @@ public class BackgroundLocalizationService extends Service {
String locationLevel = PrefUtils.getLocationLevel(getApplicationContext());
String status = (PrefUtils.isStatusEnabled(getApplicationContext())) ? PrefUtils.getUserStatus(getApplicationContext()) : "";
if (locationLevel.equals(SharingLevel.PRESENCE.toString())) {
if (!MapUtils.checkIfCoordinateIsValid(latitude, longitude)) {
return null;