Merge "Blame only location observers that actually receive updates" into nyc-dev

This commit is contained in:
Svetoslav Ganov
2016-06-10 19:55:28 +00:00
committed by Android (Google) Code Review

View File

@@ -1431,6 +1431,13 @@ public class LocationManagerService extends ILocationManager.Stub {
for (UpdateRecord record : records) {
if (isCurrentProfile(UserHandle.getUserId(record.mReceiver.mUid))) {
LocationRequest locationRequest = record.mRequest;
// Don't assign battery blame for update records whose
// client has no permission to receive location data.
if (!providerRequest.locationRequests.contains(locationRequest)) {
continue;
}
if (locationRequest.getInterval() <= thresholdInterval) {
if (record.mReceiver.mWorkSource != null
&& record.mReceiver.mWorkSource.size() > 0