Reconfigure GNSS HAL NFW proxy app list on GNSS service crash

Fixes: 134729449
Test: 1. Killed GNSS service several times and verified that the
         GNSS HAL is reconfigured.
      2. Verified on reboot the GNSS service is configured correctly.

Change-Id: Ic8b40ef2a907deef07d01ecb190291035069264d
This commit is contained in:
Anil Admal
2019-06-12 13:55:42 -07:00
parent 4cd89f0332
commit 8b83dc1718
2 changed files with 9 additions and 14 deletions

View File

@@ -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);

View File

@@ -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() {