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

Commit 69d87137 authored by Soonil Nagarkar's avatar Soonil Nagarkar
Browse files

Improve LocationRequest appcompat

Fix a bug where we were overstrict in validating legacy location
requests, and didn't cover all possible legacy inputs. Specifically,
clients that pass in Long.MAX_VALUE as the interval - unclear why any
client would want to do this, but nevertheless, it was allowed.

Bug: 168927418
Test: presubmit
Change-Id: Iaa604da6dee9e860f13abe0a74853579f757e249
parent 191ab1cb
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.Manifest.permission.LOCATION_HARDWARE;
import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
import static android.location.LocationRequest.createFromDeprecatedCriteria;
import static android.location.LocationRequest.createFromDeprecatedProvider;

import static com.android.internal.util.ConcurrentUtils.DIRECT_EXECUTOR;

@@ -1024,9 +1026,7 @@ public class LocationManager {

        requestLocationUpdates(
                provider,
                new LocationRequest.Builder(minTimeMs)
                        .setMinUpdateDistanceMeters(minDistanceM)
                        .build(),
                createFromDeprecatedProvider(provider, minTimeMs, minDistanceM, false),
                executor,
                listener);
    }
@@ -1085,10 +1085,7 @@ public class LocationManager {

        requestLocationUpdates(
                FUSED_PROVIDER,
                new LocationRequest.Builder(minTimeMs)
                        .setQuality(criteria)
                        .setMinUpdateDistanceMeters(minDistanceM)
                        .build(),
                createFromDeprecatedCriteria(criteria, minTimeMs, minDistanceM, false),
                executor,
                listener);
    }
@@ -1116,9 +1113,7 @@ public class LocationManager {

        requestLocationUpdates(
                provider,
                new LocationRequest.Builder(minTimeMs)
                        .setMinUpdateDistanceMeters(minDistanceM)
                        .build(),
                createFromDeprecatedProvider(provider, minTimeMs, minDistanceM, false),
                pendingIntent);
    }

@@ -1144,10 +1139,7 @@ public class LocationManager {
        Preconditions.checkArgument(criteria != null, "invalid null criteria");
        requestLocationUpdates(
                FUSED_PROVIDER,
                new LocationRequest.Builder(minTimeMs)
                        .setQuality(criteria)
                        .setMinUpdateDistanceMeters(minDistanceM)
                        .build(),
                createFromDeprecatedCriteria(criteria, minTimeMs, minDistanceM, false),
                pendingIntent);
    }