Loading services/java/com/android/server/LocationManagerService.java +16 −4 Original line number Diff line number Diff line Loading @@ -1540,7 +1540,8 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } private static boolean shouldBroadcastSafe(Location loc, Location lastLoc, UpdateRecord record) { private static boolean shouldBroadcastSafe( Location loc, Location lastLoc, UpdateRecord record, long now) { // Always broadcast the first update if (lastLoc == null) { return true; Loading @@ -1561,6 +1562,16 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } } // Check whether sufficient number of udpates is left if (record.mRequest.getNumUpdates() <= 0) { return false; } // Check whether the expiry date has passed if (record.mRequest.getExpireAt() < now) { return false; } return true; } Loading Loading @@ -1640,7 +1651,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } if (notifyLocation != null) { Location lastLoc = r.mLastFixBroadcast; if ((lastLoc == null) || shouldBroadcastSafe(notifyLocation, lastLoc, r)) { if ((lastLoc == null) || shouldBroadcastSafe(notifyLocation, lastLoc, r, now)) { if (lastLoc == null) { lastLoc = new Location(notifyLocation); r.mLastFixBroadcast = lastLoc; Loading @@ -1651,6 +1662,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run Slog.w(TAG, "RemoteException calling onLocationChanged on " + receiver); receiverDead = true; } r.mRequest.decrementNumUpdates(); } } Loading @@ -1666,7 +1678,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } // track expired records if (r.mRequest.getNumUpdates() == 0 || r.mRequest.getExpireAt() < now) { if (r.mRequest.getNumUpdates() <= 0 || r.mRequest.getExpireAt() < now) { if (deadUpdateRecords == null) { deadUpdateRecords = new ArrayList<UpdateRecord>(); } Loading Loading
services/java/com/android/server/LocationManagerService.java +16 −4 Original line number Diff line number Diff line Loading @@ -1540,7 +1540,8 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } private static boolean shouldBroadcastSafe(Location loc, Location lastLoc, UpdateRecord record) { private static boolean shouldBroadcastSafe( Location loc, Location lastLoc, UpdateRecord record, long now) { // Always broadcast the first update if (lastLoc == null) { return true; Loading @@ -1561,6 +1562,16 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } } // Check whether sufficient number of udpates is left if (record.mRequest.getNumUpdates() <= 0) { return false; } // Check whether the expiry date has passed if (record.mRequest.getExpireAt() < now) { return false; } return true; } Loading Loading @@ -1640,7 +1651,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } if (notifyLocation != null) { Location lastLoc = r.mLastFixBroadcast; if ((lastLoc == null) || shouldBroadcastSafe(notifyLocation, lastLoc, r)) { if ((lastLoc == null) || shouldBroadcastSafe(notifyLocation, lastLoc, r, now)) { if (lastLoc == null) { lastLoc = new Location(notifyLocation); r.mLastFixBroadcast = lastLoc; Loading @@ -1651,6 +1662,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run Slog.w(TAG, "RemoteException calling onLocationChanged on " + receiver); receiverDead = true; } r.mRequest.decrementNumUpdates(); } } Loading @@ -1666,7 +1678,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run } // track expired records if (r.mRequest.getNumUpdates() == 0 || r.mRequest.getExpireAt() < now) { if (r.mRequest.getNumUpdates() <= 0 || r.mRequest.getExpireAt() < now) { if (deadUpdateRecords == null) { deadUpdateRecords = new ArrayList<UpdateRecord>(); } Loading