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

Commit 980c7f2d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Use app ops string string when checking ops."

parents 1433f50d b86334fa
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -1549,6 +1549,22 @@ public class LocationManagerService extends ILocationManager.Stub {
        return -1;
    }

    private static String resolutionLevelToOpStr(int allowedResolutionLevel) {
        switch(allowedResolutionLevel) {
            case RESOLUTION_LEVEL_COARSE:
                return AppOpsManager.OPSTR_COARSE_LOCATION;
            case RESOLUTION_LEVEL_FINE:
                return AppOpsManager.OPSTR_FINE_LOCATION;
            case RESOLUTION_LEVEL_NONE:
                // The client is not allowed to get any location, so both FINE and COARSE ops will
                // be denied. Pick the most restrictive one to be safe.
                return AppOpsManager.OPSTR_FINE_LOCATION;
            default:
                // Use the most restrictive ops if not sure.
                return AppOpsManager.OPSTR_FINE_LOCATION;
        }
    }

    boolean reportLocationAccessNoThrow(
            int pid, int uid, String packageName, int allowedResolutionLevel) {
        int op = resolutionLevelToOp(allowedResolutionLevel);
@@ -2295,7 +2311,7 @@ public class LocationManagerService extends ILocationManager.Stub {
                }

                // Don't return stale location to apps with foreground-only location permission.
                String op = getResolutionPermission(allowedResolutionLevel);
                String op = resolutionLevelToOpStr(allowedResolutionLevel);
                long locationAgeMs = SystemClock.elapsedRealtime() -
                        location.getElapsedRealtimeNanos() / NANOS_PER_MILLI;
                if ((locationAgeMs > mLastLocationMaxAgeMs)