aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-08-19 00:20:44 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-08-19 00:21:39 +0200
commit862e4a8b3e26cd4067812a075f914bc73db4564c (patch)
treeda488c969675660db0d4e1024ae3ca5eea05fc8a
parent2e6495a5576201a72dd70052bcff1c686aaa49da (diff)
downloadcgeo-862e4a8b3e26cd4067812a075f914bc73db4564c.zip
cgeo-862e4a8b3e26cd4067812a075f914bc73db4564c.tar.gz
cgeo-862e4a8b3e26cd4067812a075f914bc73db4564c.tar.bz2
Distinguish visually between low-power and regular fused providers
-rw-r--r--main/res/values/strings.xml1
-rw-r--r--main/src/cgeo/geocaching/enumerations/LocationProviderType.java1
-rw-r--r--main/src/cgeo/geocaching/playservices/LocationProvider.java1
-rw-r--r--main/src/cgeo/geocaching/sensors/GeoData.java7
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;
}