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
This commit is contained in:
Soonil Nagarkar
2020-09-21 09:22:57 -07:00
parent 191ab1cb8a
commit 69d87137be

View File

@@ -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);
}