Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86568d70 authored by Brad Larson's avatar Brad Larson Committed by Jean-Baptiste Queru
Browse files

Use isLocationProviderEnabled to test for enabled providers



LocationManagerService was just checking if the string of (comma-separated)
Location Providers contained the provider we were interested in.  This works
fine in normal cases, but breaks if we add a provider such as test_network.
Enabling test_network causes LocationManagerService to think that the network
provider is also enabled.

The code in Settings.Secure.isLocationProviderEnabled() checks for the commas
in the string as well, to make sure that a provider name which is a substring
of another provider name won't cause problems.  It also centralizes the code
which reads the string.

Signed-off-by: default avatarBrad Larson <brad.larson@garmin.com>

Change-Id: I00dfe7c2b09739ed4c8ed07c6167e409b0bf7d13
parent af7c9782
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -552,10 +552,8 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
        }
        // Use system settings
        ContentResolver resolver = mContext.getContentResolver();
        String allowedProviders = Settings.Secure.getString(resolver,
           Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

        return ((allowedProviders != null) && (allowedProviders.contains(provider)));
        return Settings.Secure.isLocationProviderEnabled(resolver, provider);
    }

    private void checkPermissionsSafe(String provider) {