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

Commit 5e35b2d0 authored by Hall Liu's avatar Hall Liu
Browse files

Modify LocationAccessPolicy to use LocationManager

Remove the direct settings lookup since it's been deprecated.

Bug: 72886046
Test: run CTS
Change-Id: I00f11f46f20f86e91147b1232263b6c9a5d8c6b4
(cherry picked from commit d7a1c9dd)
parent 9b29e5ca
Loading
Loading
Loading
Loading
+8 −12
Original line number Original line Diff line number Diff line
@@ -21,31 +21,25 @@ import android.annotation.NonNull;
import android.annotation.UserIdInt;
import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.AppOpsManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.content.pm.UserInfo;
import android.location.LocationManager;
import android.location.LocationManager;
import android.os.Binder;
import android.os.Binder;
import android.os.Build;
import android.os.Process;
import android.os.Process;
import android.os.Trace;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.UserManager;
import android.provider.Settings;
import android.util.Log;
import android.util.SparseBooleanArray;


import java.util.HashMap;
import java.util.List;
import java.util.List;
import java.util.Map;


/**
/**
 * Helper for performing location access checks.
 * Helper for performing location access checks.
 * @hide
 * @hide
 */
 */
public final class LocationAccessPolicy {
public final class LocationAccessPolicy {
    private static final String LOG_TAG = LocationAccessPolicy.class.getSimpleName();
    /**
    /**
     * API to determine if the caller has permissions to get cell location.
     * API to determine if the caller has permissions to get cell location.
     *
     *
@@ -94,10 +88,12 @@ public final class LocationAccessPolicy {
    }
    }


    private static boolean isLocationModeEnabled(@NonNull Context context, @UserIdInt int userId) {
    private static boolean isLocationModeEnabled(@NonNull Context context, @UserIdInt int userId) {
        int locationMode = Settings.Secure.getIntForUser(context.getContentResolver(),
        LocationManager locationManager = context.getSystemService(LocationManager.class);
                Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF, userId);
        if (locationManager == null) {
        return locationMode != Settings.Secure.LOCATION_MODE_OFF
            Log.w(LOG_TAG, "Couldn't get location manager, denying location access");
                && locationMode != Settings.Secure.LOCATION_MODE_SENSORS_ONLY;
            return false;
        }
        return locationManager.isLocationEnabledForUser(UserHandle.of(userId));
    }
    }


    private static boolean checkInteractAcrossUsersFull(@NonNull Context context) {
    private static boolean checkInteractAcrossUsersFull(@NonNull Context context) {