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
This commit is contained in:
Soonil Nagarkar
2019-04-15 13:22:52 -07:00
parent 6836a1b9d1
commit 44efeaef4d
4 changed files with 19 additions and 5 deletions

View File

@@ -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"],

View File

@@ -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<java.lang.String>);
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<java.lang.String>);
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<com.android.location.provider.LocationRequestUnbundled> getLocationRequests();
method public boolean getReportLocation();
method public boolean isLocationSettingsIgnored();
method @RequiresApi(android.os.Build.VERSION_CODES.Q) public boolean isLocationSettingsIgnored();
}
}

View File

@@ -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<String> 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;
}

View File

@@ -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;
}