summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt2
-rw-r--r--wifi/java/android/net/wifi/rtt/ResponderLocation.java4
-rw-r--r--wifi/tests/src/android/net/wifi/rtt/ResponderLocationTest.java25
3 files changed, 29 insertions, 2 deletions
diff --git a/api/current.txt b/api/current.txt
index 65f0f36433ec..07a8ea7aa33a 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -31821,7 +31821,7 @@ package android.net.wifi.rtt {
method public boolean isLciSubelementValid();
method public boolean isZaxisSubelementValid();
method @Nullable public android.location.Address toCivicLocationAddress();
- method @Nullable public android.util.SparseArray toCivicLocationSparseArray();
+ method @Nullable public android.util.SparseArray<java.lang.String> toCivicLocationSparseArray();
method @NonNull public android.location.Location toLocation();
method public void writeToParcel(android.os.Parcel, int);
field public static final int ALTITUDE_FLOORS = 2; // 0x2
diff --git a/wifi/java/android/net/wifi/rtt/ResponderLocation.java b/wifi/java/android/net/wifi/rtt/ResponderLocation.java
index 970a75d7c418..218b2dcae71d 100644
--- a/wifi/java/android/net/wifi/rtt/ResponderLocation.java
+++ b/wifi/java/android/net/wifi/rtt/ResponderLocation.java
@@ -21,6 +21,7 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.location.Address;
import android.location.Location;
@@ -1367,7 +1368,8 @@ public final class ResponderLocation implements Parcelable {
*
*/
@Nullable
- public SparseArray toCivicLocationSparseArray() {
+ @SuppressLint("ChangedType")
+ public SparseArray<String> toCivicLocationSparseArray() {
if (mCivicLocation != null && mCivicLocation.isValid()) {
return mCivicLocation.toSparseArray();
} else {
diff --git a/wifi/tests/src/android/net/wifi/rtt/ResponderLocationTest.java b/wifi/tests/src/android/net/wifi/rtt/ResponderLocationTest.java
index b02eebbe9a01..271339cecf1e 100644
--- a/wifi/tests/src/android/net/wifi/rtt/ResponderLocationTest.java
+++ b/wifi/tests/src/android/net/wifi/rtt/ResponderLocationTest.java
@@ -20,6 +20,7 @@ import android.location.Address;
import android.location.Location;
import android.net.MacAddress;
import android.os.Parcel;
+import android.util.SparseArray;
import android.webkit.MimeTypeMap;
import static junit.framework.Assert.assertEquals;
@@ -505,6 +506,30 @@ public class ResponderLocationTest {
}
/**
+ * Test that a Civic Location sparseArray can be extracted from a valid lcr buffer.
+ */
+ @Test
+ public void testLcrTestCivicLocationSparseArray() {
+ byte[] testLciBuffer = concatenateArrays(sTestLciIeHeader, sTestLciSE);
+ byte[] testLcrBuffer =
+ concatenateArrays(sTestLcrBufferHeader, sTestCivicLocationSEWithAddress);
+ ResponderLocation responderLocation = new ResponderLocation(testLciBuffer, testLcrBuffer);
+
+ boolean valid = responderLocation.isValid();
+ SparseArray<String> civicLocationSparseArray = responderLocation
+ .toCivicLocationSparseArray();
+
+ assertTrue(valid);
+ assertEquals("15", civicLocationSparseArray.get(CivicLocationKeys.HNO));
+ assertEquals("Alto",
+ civicLocationSparseArray.get(CivicLocationKeys.PRIMARY_ROAD_NAME));
+ assertEquals("Road",
+ civicLocationSparseArray.get(CivicLocationKeys.STREET_NAME_POST_MODIFIER));
+ assertEquals("Mtn View", civicLocationSparseArray.get(CivicLocationKeys.CITY));
+ assertEquals("94043", civicLocationSparseArray.get(CivicLocationKeys.POSTAL_CODE));
+ }
+
+ /**
* Test that a URL can be extracted from a valid lcr buffer with a map image subelement.
*/
@Test