Merge "Last position improvements for GeofenceManager" into jb-mr1-dev

This commit is contained in:
Victoria Lease
2012-10-08 15:14:49 -07:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 6 deletions

View File

@@ -1414,9 +1414,8 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
long now = SystemClock.elapsedRealtime();
String provider = (passive ? LocationManager.PASSIVE_PROVIDER : location.getProvider());
ArrayList<UpdateRecord> records = mRecordsByProvider.get(provider);
if (records == null || records.size() == 0) return;
// Skip if the provider is unknown.
LocationProviderInterface p = mProvidersByName.get(provider);
if (p == null) return;
@@ -1437,6 +1436,10 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
}
lastLocation.set(location);
// Skip if there are no UpdateRecords for this provider.
ArrayList<UpdateRecord> records = mRecordsByProvider.get(provider);
if (records == null || records.size() == 0) return;
// Fetch coarse location
Location coarseLocation = null;
if (noGPSLocation != null && !noGPSLocation.equals(lastNoGPSLocation)) {

View File

@@ -58,7 +58,6 @@ public class GeofenceManager implements LocationListener, PendingIntent.OnFinish
private Object mLock = new Object();
// access to members below is synchronized on mLock
private Location mLastLocation;
private List<GeofenceState> mFences = new LinkedList<GeofenceState>();
public GeofenceManager(Context context, LocationBlacklist blacklist) {
@@ -77,7 +76,8 @@ public class GeofenceManager implements LocationListener, PendingIntent.OnFinish
public void addFence(LocationRequest request, Geofence geofence, PendingIntent intent, int uid,
String packageName) {
GeofenceState state = new GeofenceState(geofence, mLastLocation,
Location lastLocation = mLocationManager.getLastLocation();
GeofenceState state = new GeofenceState(geofence, lastLocation,
request.getExpireAt(), packageName, intent);
synchronized (mLock) {
@@ -146,8 +146,6 @@ public class GeofenceManager implements LocationListener, PendingIntent.OnFinish
List<PendingIntent> exitIntents = new LinkedList<PendingIntent>();
synchronized (mLock) {
mLastLocation = location;
removeExpiredFencesLocked();
for (GeofenceState state : mFences) {