summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Grace Cheng <gracemc@google.com> 2022-11-30 05:40:00 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-11-30 05:40:00 +0000
commit0eef7918aab2a7582b019d88967e8437b101991c (patch)
tree5eb58c0acc77445c98fe06bb3761ee501ef28ab7
parentf80d661d613666f7be1d4de5bcfa44f197be4c22 (diff)
parent21f7ddfb6a91a138af4d5a492bcfb62952b30682 (diff)
Merge "Disables GNSS HAL when location is off for all visible users."
-rw-r--r--services/core/java/com/android/server/location/gnss/GnssLocationProvider.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
index 6f6b1c910ff0..282ad574a0ed 100644
--- a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
@@ -81,6 +81,7 @@ import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserHandle;
+import android.os.UserManager;
import android.os.WorkSource;
import android.os.WorkSource.WorkChain;
import android.provider.Settings;
@@ -930,9 +931,15 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
}
private void updateEnabled() {
- // Generally follow location setting for current user
- boolean enabled = mContext.getSystemService(LocationManager.class)
- .isLocationEnabledForUser(UserHandle.CURRENT);
+ boolean enabled = false;
+
+ // Generally follow location setting for visible users
+ LocationManager locationManager = mContext.getSystemService(LocationManager.class);
+ Set<UserHandle> visibleUserHandles =
+ mContext.getSystemService(UserManager.class).getVisibleUsers();
+ for (UserHandle visibleUserHandle : visibleUserHandles) {
+ enabled |= locationManager.isLocationEnabledForUser(visibleUserHandle);
+ }
// .. but enable anyway, if there's an active bypass request (e.g. ELS or ADAS)
enabled |= (mProviderRequest != null