From 49097c0b99c0fda9f5343406d28027a726bb94ee Mon Sep 17 00:00:00 2001 From: Wyatt Riley Date: Thu, 15 Mar 2018 09:14:43 -0700 Subject: [PATCH] GNSS Model Name constant string and comment updates Addressing API review feedback Removed string, returning Null instead Updated comments Bug: 73951626 Test: Runs on device w/GnssLogger Change-Id: I54d05a7ae000e9ff52ec1f6646f83aed7de81b94 --- api/current.txt | 1 - .../android/location/LocationManager.java | 19 +++++++++---------- .../server/LocationManagerService.java | 4 +++- .../server/location/GnssLocationProvider.java | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/api/current.txt b/api/current.txt index 2113d5d54f599..20477860517ac 100644 --- a/api/current.txt +++ b/api/current.txt @@ -21793,7 +21793,6 @@ package android.location { method public void unregisterGnssMeasurementsCallback(android.location.GnssMeasurementsEvent.Callback); method public void unregisterGnssNavigationMessageCallback(android.location.GnssNavigationMessage.Callback); method public void unregisterGnssStatusCallback(android.location.GnssStatus.Callback); - field public static final java.lang.String GNSS_HARDWARE_MODEL_NAME_UNKNOWN = "Model Name Unknown"; field public static final java.lang.String GPS_PROVIDER = "gps"; field public static final java.lang.String KEY_LOCATION_CHANGED = "location"; field public static final java.lang.String KEY_PROVIDER_ENABLED = "providerEnabled"; diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index 2dd8c36f11653..2312ae4d05a77 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -23,6 +23,7 @@ import static android.Manifest.permission.WRITE_SECURE_SETTINGS; import android.Manifest; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.RequiresFeature; import android.annotation.RequiresPermission; import android.annotation.SuppressLint; @@ -233,12 +234,6 @@ public class LocationManager { public static final String HIGH_POWER_REQUEST_CHANGE_ACTION = "android.location.HIGH_POWER_REQUEST_CHANGE"; - /** - * The value returned by {@link LocationManager#getGnssHardwareModelName()} when the hardware - * does not support providing the actual value. - */ - public static final String GNSS_HARDWARE_MODEL_NAME_UNKNOWN = "Model Name Unknown"; - /** * Broadcast intent action for Settings app to inject a footer at the bottom of location * settings. @@ -2176,7 +2171,9 @@ public class LocationManager { /** * Returns the model year of the GNSS hardware and software build. * - * May return 0 if the model year is less than 2016. + *

More details, such as build date, may be available in {@link #getGnssHardwareModelName()}. + * + *

May return 0 if the model year is less than 2016. */ public int getGnssYearOfHardware() { try { @@ -2190,10 +2187,12 @@ public class LocationManager { * Returns the Model Name (including Vendor and Hardware/Software Version) of the GNSS hardware * driver. * - * Will return {@link LocationManager#GNSS_HARDWARE_MODEL_NAME_UNKNOWN} when the GNSS hardware - * abstraction layer does not support providing this value. + *

No device-specific serial number or ID is returned from this API. + * + *

Will return null when the GNSS hardware abstraction layer does not support providing + * this value. */ - @NonNull + @Nullable public String getGnssHardwareModelName() { try { return mService.getGnssHardwareModelName(); diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index 65e90bad41a72..19e5cc62fb159 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -19,6 +19,7 @@ package com.android.server; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.PendingIntent; @@ -1161,11 +1162,12 @@ public class LocationManagerService extends ILocationManager.Stub { * Returns the model name of the GNSS hardware. */ @Override + @Nullable public String getGnssHardwareModelName() { if (mGnssSystemInfoProvider != null) { return mGnssSystemInfoProvider.getGnssHardwareModelName(); } else { - return LocationManager.GNSS_HARDWARE_MODEL_NAME_UNKNOWN; + return null; } } diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index 729ac0c686626..87904b035bc19 100644 --- a/services/core/java/com/android/server/location/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/GnssLocationProvider.java @@ -470,7 +470,7 @@ public class GnssLocationProvider implements LocationProviderInterface { // Volatile for simple inter-thread sync on these values. private volatile int mHardwareYear = 0; - private volatile String mHardwareModelName = LocationManager.GNSS_HARDWARE_MODEL_NAME_UNKNOWN; + private volatile String mHardwareModelName; // Set lower than the current ITAR limit of 600m/s to allow this to trigger even if GPS HAL // stops output right at 600m/s, depriving this of the information of a device that reaches