diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index f28bce5d5e7b7..e7636ae8acb43 100644 --- a/services/core/java/com/android/server/location/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/GnssLocationProvider.java @@ -937,7 +937,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements mGnssNavigationMessageProvider.onGpsEnabledChanged(); mGnssBatchingProvider.enable(); if (mGnssVisibilityControl != null) { - mGnssVisibilityControl.onGpsEnabledChanged(/* isEnabled= */true); + mGnssVisibilityControl.onGpsEnabledChanged(/* isEnabled= */ true); } } else { setGpsEnabled(false); diff --git a/services/core/java/com/android/server/location/GnssVisibilityControl.java b/services/core/java/com/android/server/location/GnssVisibilityControl.java index 3ee941920f480..ea4f9c4568565 100644 --- a/services/core/java/com/android/server/location/GnssVisibilityControl.java +++ b/services/core/java/com/android/server/location/GnssVisibilityControl.java @@ -151,7 +151,6 @@ class GnssVisibilityControl { } private void handleInitialize() { - disableNfwLocationAccess(); // Disable until config properties are loaded. listenForProxyAppsPackageUpdates(); } @@ -261,25 +260,21 @@ class GnssVisibilityControl { return false; } - private void handleGpsEnabledChanged(boolean isEnabled) { - if (DEBUG) Log.d(TAG, "handleGpsEnabledChanged, isEnabled: " + isEnabled); - - if (mIsGpsEnabled == isEnabled) { - return; + private void handleGpsEnabledChanged(boolean isGpsEnabled) { + if (DEBUG) { + Log.d(TAG, "handleGpsEnabledChanged, mIsGpsEnabled: " + mIsGpsEnabled + + ", isGpsEnabled: " + isGpsEnabled); } - mIsGpsEnabled = isEnabled; + // The proxy app list in the GNSS HAL needs to be configured if it restarts after + // a crash. So, update HAL irrespective of the previous GPS enabled state. + mIsGpsEnabled = isGpsEnabled; if (!mIsGpsEnabled) { disableNfwLocationAccess(); return; } - // When GNSS was disabled, we already set the proxy app list to empty in GNSS HAL. - // Update only if the proxy app list is not empty. - String[] locationPermissionEnabledProxyApps = getLocationPermissionEnabledProxyApps(); - if (locationPermissionEnabledProxyApps.length != 0) { - setNfwLocationAccessProxyAppsInGnssHal(locationPermissionEnabledProxyApps); - } + setNfwLocationAccessProxyAppsInGnssHal(getLocationPermissionEnabledProxyApps()); } private void disableNfwLocationAccess() {