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

Commit 9ebcf055 authored by Maggie's avatar Maggie
Browse files

Fix location INTERACT_ACROSS_USERS bug

Use UserHandle.getCallingUserId in LocationManager.isProviderEnabled

Bug: 72430849
Test: Manual
Change-Id: I1ddfc4fd308889b1f2247df038d22e2f7b08da74
parent d2c4f7f6
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2570,7 +2570,7 @@ public class LocationManagerService extends ILocationManager.Stub {
        // Check INTERACT_ACROSS_USERS permission if userId is not current user id.
        checkInteractAcrossUsersPermission(userId);

        // enable all location providers
        // Enable or disable all location providers
        synchronized (mLock) {
            for(String provider : getAllProviders()) {
                setProviderEnabledForUser(provider, enabled, userId);
@@ -2586,10 +2586,10 @@ public class LocationManagerService extends ILocationManager.Stub {
     */
    @Override
    public boolean isLocationEnabledForUser(int userId) {

        // Check INTERACT_ACROSS_USERS permission if userId is not current user id.
        checkInteractAcrossUsersPermission(userId);

        // If at least one location provider is enabled, return true
        synchronized (mLock) {
            for (String provider : getAllProviders()) {
                if (isProviderEnabledForUser(provider, userId)) {
@@ -2602,7 +2602,7 @@ public class LocationManagerService extends ILocationManager.Stub {

    @Override
    public boolean isProviderEnabled(String provider) {
        return isProviderEnabledForUser(provider, UserHandle.myUserId());
        return isProviderEnabledForUser(provider, UserHandle.getCallingUserId());
    }

    /**