diff options
4 files changed, 9 insertions, 1 deletions
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 19aa41d..814b9ba 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -229,6 +229,7 @@ <string name="loc_last">Last known</string> <string name="loc_net">Network</string> <string name="loc_fused">Fused</string> + <string name="loc_low_power">Low-power</string> <string name="loc_gps">GPS</string> <string name="loc_sat">Sat</string> <string name="loc_trying">Trying to Locate</string> diff --git a/main/src/cgeo/geocaching/enumerations/LocationProviderType.java b/main/src/cgeo/geocaching/enumerations/LocationProviderType.java index e6024aa..a6f0114 100644 --- a/main/src/cgeo/geocaching/enumerations/LocationProviderType.java +++ b/main/src/cgeo/geocaching/enumerations/LocationProviderType.java @@ -6,6 +6,7 @@ public enum LocationProviderType { GPS(R.string.loc_gps), NETWORK(R.string.loc_net), FUSED(R.string.loc_fused), + LOW_POWER(R.string.loc_low_power), LAST(R.string.loc_last); public final int resourceId; diff --git a/main/src/cgeo/geocaching/playservices/LocationProvider.java b/main/src/cgeo/geocaching/playservices/LocationProvider.java index ab5e4af..a1edb7a 100644 --- a/main/src/cgeo/geocaching/playservices/LocationProvider.java +++ b/main/src/cgeo/geocaching/playservices/LocationProvider.java @@ -117,6 +117,7 @@ public class LocationProvider extends LooperCallbacks<IGeoData> implements Conne @Override public void onLocationChanged(final Location location) { + location.setProvider(lowPower ? GeoData.LOW_POWER_PROVIDER : GeoData.FUSED_PROVIDER); subscriber.onNext(new GeoData(location)); } } diff --git a/main/src/cgeo/geocaching/sensors/GeoData.java b/main/src/cgeo/geocaching/sensors/GeoData.java index 6739854..1291d3c 100644 --- a/main/src/cgeo/geocaching/sensors/GeoData.java +++ b/main/src/cgeo/geocaching/sensors/GeoData.java @@ -9,6 +9,8 @@ import android.location.LocationManager; public class GeoData extends Location implements IGeoData { public static final String INITIAL_PROVIDER = "initial"; + public static final String FUSED_PROVIDER = "fused"; + public static final String LOW_POWER_PROVIDER = "low-power"; public GeoData(final Location location) { super(location); @@ -27,9 +29,12 @@ public class GeoData extends Location implements IGeoData { return LocationProviderType.NETWORK; } // LocationManager.FUSED_PROVIDER constant is not available at API level 9 - if (provider.equals("fused")) { + if (provider.equals(FUSED_PROVIDER)) { return LocationProviderType.FUSED; } + if (provider.equals(LOW_POWER_PROVIDER)) { + return LocationProviderType.LOW_POWER; + } return LocationProviderType.LAST; } |
