diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/rtt/ResponderLocation.java | 4 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/rtt/ResponderLocationTest.java | 25 |
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 |