diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java index ec4921872..8ff4c50a4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java @@ -80,6 +80,7 @@ public class DeviceSettingsPreferenceConst { public static final String PREF_DEVICE_GPS_UPDATE = "banglejs_gps_update"; public static final String PREF_DEVICE_GPS_UPDATE_INTERVAL = "banglejs_gps_update_interval"; + public static final String PREF_DEVICE_GPS_USE_NETWORK_ONLY = "banglejs_gps_use_network_only"; public static final String PREF_DEVICE_INTERNET_ACCESS = "device_internet_access"; public static final String PREF_DEVICE_INTENTS = "device_intents"; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java index a7ebf21d2..a438dc633 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java @@ -21,6 +21,7 @@ import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.Dev import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_BANGLEJS_TEXT_BITMAP_SIZE; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DEVICE_GPS_UPDATE; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DEVICE_GPS_UPDATE_INTERVAL; +import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DEVICE_GPS_USE_NETWORK_ONLY; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DEVICE_INTENTS; import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DEVICE_INTERNET_ACCESS; import static nodomain.freeyourgadget.gadgetbridge.database.DBHelper.getUser; @@ -948,11 +949,14 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport { if(devicePrefs.getBoolean(PREF_DEVICE_GPS_UPDATE, false)) { int intervalLength = devicePrefs.getInt(PREF_DEVICE_GPS_UPDATE_INTERVAL, 1000); LOG.info("Setup location listener with an update interval of " + intervalLength + " ms"); - - try { - GBLocationManager.start(getContext(), this, LocationProviderType.GPS, intervalLength); - } catch (IllegalArgumentException e) { - LOG.warn("GPS provider could not be started", e); + boolean onlyUseNetworkGPS = devicePrefs.getBoolean(PREF_DEVICE_GPS_USE_NETWORK_ONLY, false); + LOG.info("Using combined GPS and NETWORK based location: " + onlyUseNetworkGPS); + if (!onlyUseNetworkGPS) { + try { + GBLocationManager.start(getContext(), this, LocationProviderType.GPS, intervalLength); + } catch (IllegalArgumentException e) { + LOG.warn("GPS provider could not be started", e); + } } try { diff --git a/app/src/main/res/xml/devicesettings_banglejs.xml b/app/src/main/res/xml/devicesettings_banglejs.xml index 5b337370d..f9d8df776 100644 --- a/app/src/main/res/xml/devicesettings_banglejs.xml +++ b/app/src/main/res/xml/devicesettings_banglejs.xml @@ -13,6 +13,14 @@ android:key="banglejs_gps_update_interval" android:summary="This option is only active, if the gps data of the phone is being used. This option sets the interval in ms how often the gps position is being updated" android:title="GPS data update interval in ms" /> + +