From ec6ec82ef5519196880c611de1dea3e9e52794c2 Mon Sep 17 00:00:00 2001 From: Anil Admal Date: Fri, 19 Apr 2019 15:24:16 -0700 Subject: [PATCH] Change getGnssCapabilites() return type to @NonNull Fixes: 130802725 Test: Manual Change-Id: I01c3f2aa593c3b5f08b57b77960afc21bb155da7 --- api/system-current.txt | 2 +- location/java/android/location/LocationManager.java | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index d15d00682817f..873c87c8baf30 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3396,7 +3396,7 @@ package android.location { method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch(); method @Nullable public String getExtraLocationControllerPackage(); method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int getGnssBatchSize(); - method @Nullable public android.location.GnssCapabilities getGnssCapabilities(); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public android.location.GnssCapabilities getGnssCapabilities(); method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections); method public boolean isExtraLocationControllerPackageEnabled(); method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle); diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index af60e3c672884..7a17505efa07b 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -1986,17 +1986,19 @@ public class LocationManager { } /** - * Returns the supported capabilities of the GNSS chipset or {@code null} if there is an error - * in obtaining the capabilities. + * Returns the supported capabilities of the GNSS chipset. + * + * @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present. * * @hide */ @SystemApi - public @Nullable GnssCapabilities getGnssCapabilities() { + @RequiresPermission(ACCESS_FINE_LOCATION) + public @NonNull GnssCapabilities getGnssCapabilities() { try { long gnssCapabilities = mGnssMeasurementCallbackTransport.getGnssCapabilities(); if (gnssCapabilities == GnssCapabilities.INVALID_CAPABILITIES) { - return null; + gnssCapabilities = 0L; } return GnssCapabilities.of(gnssCapabilities); } catch (RemoteException e) {