forked from upstream-mirrors/OpenTracks
Differentiating between GPS provider unavailable and disabled - unavailable, in some implementations (such as Samsung's) just means it doesn't have a fix.
(Fixes issue 505)
This commit is contained in:
@@ -24,7 +24,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* External data source manager, which converts system-level events into My Tracks data events.
|
* External data source manager, which converts system-level events into My Tracks data events.
|
||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @author Rodrigo Damazio
|
||||||
*/
|
*/
|
||||||
class DataSourceManager {
|
class DataSourceManager {
|
||||||
@@ -36,6 +36,7 @@ class DataSourceManager {
|
|||||||
void notifyPointsUpdated();
|
void notifyPointsUpdated();
|
||||||
void notifyPreferenceChanged(String key);
|
void notifyPreferenceChanged(String key);
|
||||||
void notifyLocationProviderEnabled(boolean enabled);
|
void notifyLocationProviderEnabled(boolean enabled);
|
||||||
|
void notifyLocationProviderAvailable(boolean available);
|
||||||
void notifyLocationChanged(Location loc);
|
void notifyLocationChanged(Location loc);
|
||||||
void notifyHeadingChanged(float heading);
|
void notifyHeadingChanged(float heading);
|
||||||
}
|
}
|
||||||
@@ -93,7 +94,7 @@ class DataSourceManager {
|
|||||||
public void onStatusChanged(String provider, int status, Bundle extras) {
|
public void onStatusChanged(String provider, int status, Bundle extras) {
|
||||||
if (!LocationManager.GPS_PROVIDER.equals(provider)) return;
|
if (!LocationManager.GPS_PROVIDER.equals(provider)) return;
|
||||||
|
|
||||||
listener.notifyLocationProviderEnabled(status == LocationProvider.AVAILABLE);
|
listener.notifyLocationProviderAvailable(status == LocationProvider.AVAILABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -168,7 +169,7 @@ class DataSourceManager {
|
|||||||
neededListeners.remove(ListenerDataType.SAMPLED_OUT_POINT_UPDATES);
|
neededListeners.remove(ListenerDataType.SAMPLED_OUT_POINT_UPDATES);
|
||||||
neededListeners.add(ListenerDataType.POINT_UPDATES);
|
neededListeners.add(ListenerDataType.POINT_UPDATES);
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(TAG, "Updating internal listeners to types " + neededListeners);
|
Log.d(TAG, "Updating internal listeners to types " + neededListeners);
|
||||||
|
|
||||||
// Unnecessary = registered - needed
|
// Unnecessary = registered - needed
|
||||||
|
|||||||
@@ -129,6 +129,12 @@ public class TrackDataHub {
|
|||||||
TrackDataHub.this.notifyFixType();
|
TrackDataHub.this.notifyFixType();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notifyLocationProviderAvailable(boolean available) {
|
||||||
|
hasFix = available;
|
||||||
|
TrackDataHub.this.notifyFixType();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyLocationChanged(Location loc) {
|
public void notifyLocationChanged(Location loc) {
|
||||||
TrackDataHub.this.notifyLocationChanged(loc,
|
TrackDataHub.this.notifyLocationChanged(loc,
|
||||||
|
|||||||
Reference in New Issue
Block a user