From 44efeaef4da29e1d0a9add7b89151ff0f12ff148 Mon Sep 17 00:00:00 2001 From: Soonil Nagarkar Date: Mon, 15 Apr 2019 13:22:52 -0700 Subject: [PATCH] Add RequiresApi annotations to LocationProvider Ensures that lint tests can run properly from client code which uses this library. Bug: 130188099 Test: manual Change-Id: I1d3c8e486c38633d73c405f2c6f9b350ef1e6946 --- location/lib/Android.bp | 3 +++ location/lib/api/current.txt | 10 +++++----- .../com/android/location/provider/LocationProviderBase.java | 7 +++++++ .../android/location/provider/ProviderRequestUnbundled.java | 4 ++++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/location/lib/Android.bp b/location/lib/Android.bp index 35f287737d17..16f1428d2ee2 100644 --- a/location/lib/Android.bp +++ b/location/lib/Android.bp @@ -17,6 +17,9 @@ java_sdk_library { name: "com.android.location.provider", srcs: ["java/**/*.java"], + libs: [ + "androidx.annotation_annotation", + ], api_packages: ["com.android.location.provider"], srcs_lib: "framework", srcs_lib_whitelist_dirs: ["location/java"], diff --git a/location/lib/api/current.txt b/location/lib/api/current.txt index d1b39b350d73..5471bea549f4 100644 --- a/location/lib/api/current.txt +++ b/location/lib/api/current.txt @@ -9,7 +9,7 @@ package com.android.location.provider { public abstract class LocationProviderBase { ctor public LocationProviderBase(String, com.android.location.provider.ProviderPropertiesUnbundled); method public android.os.IBinder getBinder(); - method public boolean isEnabled(); + method @RequiresApi(android.os.Build.VERSION_CODES.Q) public boolean isEnabled(); method @Deprecated protected void onDisable(); method @Deprecated protected void onDump(java.io.FileDescriptor, java.io.PrintWriter, String[]); method @Deprecated protected void onEnable(); @@ -19,9 +19,9 @@ package com.android.location.provider { method protected boolean onSendExtraCommand(@Nullable String, @Nullable android.os.Bundle); method protected abstract void onSetRequest(com.android.location.provider.ProviderRequestUnbundled, android.os.WorkSource); method public void reportLocation(android.location.Location); - method public void setAdditionalProviderPackages(java.util.List); - method public void setEnabled(boolean); - method public void setProperties(com.android.location.provider.ProviderPropertiesUnbundled); + method @RequiresApi(android.os.Build.VERSION_CODES.Q) public void setAdditionalProviderPackages(java.util.List); + method @RequiresApi(android.os.Build.VERSION_CODES.Q) public void setEnabled(boolean); + method @RequiresApi(android.os.Build.VERSION_CODES.Q) public void setProperties(com.android.location.provider.ProviderPropertiesUnbundled); field public static final String EXTRA_NO_GPS_LOCATION = "noGPSLocation"; field public static final String FUSED_PROVIDER = "fused"; } @@ -48,7 +48,7 @@ package com.android.location.provider { method public long getInterval(); method public java.util.List getLocationRequests(); method public boolean getReportLocation(); - method public boolean isLocationSettingsIgnored(); + method @RequiresApi(android.os.Build.VERSION_CODES.Q) public boolean isLocationSettingsIgnored(); } } diff --git a/location/lib/java/com/android/location/provider/LocationProviderBase.java b/location/lib/java/com/android/location/provider/LocationProviderBase.java index fa113a8aa3ef..6bde3a884c30 100644 --- a/location/lib/java/com/android/location/provider/LocationProviderBase.java +++ b/location/lib/java/com/android/location/provider/LocationProviderBase.java @@ -22,6 +22,7 @@ import android.location.ILocationManager; import android.location.Location; import android.location.LocationManager; import android.location.LocationProvider; +import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; @@ -29,6 +30,8 @@ import android.os.ServiceManager; import android.os.WorkSource; import android.util.Log; +import androidx.annotation.RequiresApi; + import com.android.internal.location.ILocationProvider; import com.android.internal.location.ILocationProviderManager; import com.android.internal.location.ProviderProperties; @@ -125,6 +128,7 @@ public abstract class LocationProviderBase { * taken into account in the parent's enabled/disabled state. For most providers, it is expected * that they will be always enabled. */ + @RequiresApi(VERSION_CODES.Q) public void setEnabled(boolean enabled) { synchronized (mBinder) { if (mEnabled == enabled) { @@ -148,6 +152,7 @@ public abstract class LocationProviderBase { * Sets the provider properties that may be queried by clients. Generally speaking, providers * should try to avoid changing their properties after construction. */ + @RequiresApi(VERSION_CODES.Q) public void setProperties(ProviderPropertiesUnbundled properties) { synchronized (mBinder) { mProperties = properties.getProviderProperties(); @@ -170,6 +175,7 @@ public abstract class LocationProviderBase { * providing location. This will inform location services to treat the other packages as * location providers as well. */ + @RequiresApi(VERSION_CODES.Q) public void setAdditionalProviderPackages(List packageNames) { synchronized (mBinder) { mAdditionalProviderPackages.clear(); @@ -190,6 +196,7 @@ public abstract class LocationProviderBase { * Returns true if this provider has been set as enabled. This will be true unless explicitly * set otherwise. */ + @RequiresApi(VERSION_CODES.Q) public boolean isEnabled() { return mEnabled; } diff --git a/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java b/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java index febbf1b23e0c..d12d6b777856 100644 --- a/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java +++ b/location/lib/java/com/android/location/provider/ProviderRequestUnbundled.java @@ -17,6 +17,9 @@ package com.android.location.provider; import android.location.LocationRequest; +import android.os.Build; + +import androidx.annotation.RequiresApi; import com.android.internal.location.ProviderRequest; @@ -46,6 +49,7 @@ public final class ProviderRequestUnbundled { return mRequest.interval; } + @RequiresApi(Build.VERSION_CODES.Q) public boolean isLocationSettingsIgnored() { return mRequest.locationSettingsIgnored; } -- 2.11.0