diff options
| author | 2016-06-10 19:55:28 +0000 | |
|---|---|---|
| committer | 2016-06-10 19:55:29 +0000 | |
| commit | 4e85376fe16e8719b465c262ead189a8b4619dcc (patch) | |
| tree | a2eb25e0a86afa2f70dd1d3c017f86178aed2df5 | |
| parent | f4de8dd77cd4256a525d9b5ea69575e7df5bc9d2 (diff) | |
| parent | e998c73c3380f525b218cd95a3d3f575935c5222 (diff) | |
Merge "Blame only location observers that actually receive updates" into nyc-dev
| -rw-r--r-- | services/core/java/com/android/server/LocationManagerService.java | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index e0b49603ac4f..36ec2eb9a192 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -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 |