diff options
author | 2020-12-23 08:25:13 -0800 | |
---|---|---|
committer | 2020-12-28 10:50:50 -0800 | |
commit | b76a3541a1036484a52d6171c0823cb70b21e193 (patch) | |
tree | 886a0c725ddfb4fdc7d40dab9d78bfdaa76dcde5 /location/lib/java | |
parent | 36ca6d3452868f9076c2a76c6a3d00a31bf17440 (diff) |
Replace LocationProvider with ProviderProperties
LocationProvider cannot represent unknown properties, which is currently
causing problems with getProvider() which may return null even when a
particular provider exists. Instead provide isProvider() to query
whether a provider exists, and getProviderProperties() to query a
provider's properties.
Bug: 176232308
Test: atest CtsLocationNoneTestCases
Change-Id: Ic42cc953624be116616b0b997e18356247fdf288
Diffstat (limited to 'location/lib/java')
-rw-r--r-- | location/lib/java/com/android/location/provider/LocationProviderBase.java | 8 | ||||
-rw-r--r-- | location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java | 3 |
2 files changed, 3 insertions, 8 deletions
diff --git a/location/lib/java/com/android/location/provider/LocationProviderBase.java b/location/lib/java/com/android/location/provider/LocationProviderBase.java index 54d806671e86..47e425629783 100644 --- a/location/lib/java/com/android/location/provider/LocationProviderBase.java +++ b/location/lib/java/com/android/location/provider/LocationProviderBase.java @@ -23,6 +23,7 @@ import android.location.Location; import android.location.LocationManager; import android.location.LocationProvider; import android.location.LocationResult; +import android.location.ProviderProperties; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.os.IBinder; @@ -35,7 +36,6 @@ import androidx.annotation.RequiresApi; import com.android.internal.location.ILocationProvider; import com.android.internal.location.ILocationProviderManager; -import com.android.internal.location.ProviderProperties; import com.android.internal.location.ProviderRequest; import java.io.FileDescriptor; @@ -372,11 +372,7 @@ public abstract class LocationProviderBase { public void setLocationProviderManager(ILocationProviderManager manager) { synchronized (mBinder) { try { - if (mPackageName != null || mAttributionTag != null) { - manager.onSetIdentity(mPackageName, mAttributionTag); - } - manager.onSetProperties(mProperties); - manager.onSetAllowed(mAllowed); + manager.onInitialize(mAllowed, mProperties, mPackageName, mAttributionTag); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } catch (RuntimeException e) { diff --git a/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java b/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java index 21ee5f465c48..9d8ccdf62ca5 100644 --- a/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java +++ b/location/lib/java/com/android/location/provider/ProviderPropertiesUnbundled.java @@ -17,8 +17,7 @@ package com.android.location.provider; import android.annotation.NonNull; - -import com.android.internal.location.ProviderProperties; +import android.location.ProviderProperties; import java.util.Objects; |