summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Svetoslav Ganov <svetoslavganov@google.com> 2016-06-10 19:55:28 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-06-10 19:55:29 +0000
commit4e85376fe16e8719b465c262ead189a8b4619dcc (patch)
treea2eb25e0a86afa2f70dd1d3c017f86178aed2df5
parentf4de8dd77cd4256a525d9b5ea69575e7df5bc9d2 (diff)
parente998c73c3380f525b218cd95a3d3f575935c5222 (diff)
Merge "Blame only location observers that actually receive updates" into nyc-dev
-rw-r--r--services/core/java/com/android/server/LocationManagerService.java7
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