diff options
author | 2022-11-30 05:40:00 +0000 | |
---|---|---|
committer | 2022-11-30 05:40:00 +0000 | |
commit | 0eef7918aab2a7582b019d88967e8437b101991c (patch) | |
tree | 5eb58c0acc77445c98fe06bb3761ee501ef28ab7 | |
parent | f80d661d613666f7be1d4de5bcfa44f197be4c22 (diff) | |
parent | 21f7ddfb6a91a138af4d5a492bcfb62952b30682 (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.java | 13 |
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 |