Minor fixes for CTS tests
-Ensure deprecated GNSS APIs run on binder threads for backcompat.
-Normalize exception thrown on null criteria to
IllegalArgumentException.
Bug: 143110531
Test: atest LocationManagerTest
Change-Id: I962234913857cb0c5bfdf46653986ab2a55bd5ee
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java
index 010f92f..d3db9d8 100644
--- a/location/java/android/location/LocationManager.java
+++ b/location/java/android/location/LocationManager.java
@@ -2183,7 +2183,7 @@
public void removeGpsNavigationMessageListener(GpsNavigationMessageEvent.Listener listener) {}
/**
- * Registers a GNSS Navigation Message callback.
+ * Registers a GNSS Navigation Message callback which will run on a binder thread.
*
* @param callback a {@link GnssNavigationMessage.Callback} object to register.
* @return {@code true} if the callback was added successfully, {@code false} otherwise.
@@ -2194,7 +2194,7 @@
@Deprecated
public boolean registerGnssNavigationMessageCallback(
@NonNull GnssNavigationMessage.Callback callback) {
- return registerGnssNavigationMessageCallback(callback, null);
+ return registerGnssNavigationMessageCallback(Runnable::run, callback);
}
/**
diff --git a/location/java/android/location/LocationRequest.java b/location/java/android/location/LocationRequest.java
index 0902acf..0f38f7f 100644
--- a/location/java/android/location/LocationRequest.java
+++ b/location/java/android/location/LocationRequest.java
@@ -30,6 +30,8 @@
import android.os.WorkSource;
import android.util.TimeUtils;
+import com.android.internal.util.Preconditions;
+
/**
* A data object that contains quality of service parameters for requests
@@ -195,6 +197,8 @@
@NonNull
public static LocationRequest createFromDeprecatedProvider(
@NonNull String provider, long minTime, float minDistance, boolean singleShot) {
+ Preconditions.checkArgument(provider != null, "invalid null provider");
+
if (minTime < 0) minTime = 0;
if (minDistance < 0) minDistance = 0;
@@ -222,6 +226,8 @@
@NonNull
public static LocationRequest createFromDeprecatedCriteria(
@NonNull Criteria criteria, long minTime, float minDistance, boolean singleShot) {
+ Preconditions.checkArgument(criteria != null, "invalid null criteria");
+
if (minTime < 0) minTime = 0;
if (minDistance < 0) minDistance = 0;