Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ef6da85 authored by Soonil Nagarkar's avatar Soonil Nagarkar Committed by Android (Google) Code Review
Browse files

Merge "Include attribution tag in identifying providers"

parents 0854032d dcb05abb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4416,7 +4416,8 @@ package android.location {
    method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle);
    method public boolean isProviderEnabledForUser(@NonNull String, @NonNull android.os.UserHandle);
    method @Deprecated @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@NonNull String);
    method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String);
    method @Deprecated @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.READ_DEVICE_CONFIG) public boolean isProviderPackage(@Nullable String, @NonNull String, @Nullable String);
    method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.LOCATION_HARDWARE, android.Manifest.permission.UPDATE_APP_OPS_STATS}) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler);
    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public boolean registerGnssMeasurementsCallback(@NonNull android.location.GnssRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.GnssMeasurementsEvent.Callback);
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
+10 −10
Original line number Diff line number Diff line
@@ -78,21 +78,21 @@ interface ILocationManager

    @nullable List<GnssAntennaInfo> getGnssAntennaInfos();

    void registerGnssStatusCallback(in IGnssStatusListener callback, String packageName, String attributionTag);
    void registerGnssStatusCallback(in IGnssStatusListener callback, String packageName, @nullable String attributionTag);
    void unregisterGnssStatusCallback(in IGnssStatusListener callback);

    void registerGnssNmeaCallback(in IGnssNmeaListener callback, String packageName, String attributionTag);
    void registerGnssNmeaCallback(in IGnssNmeaListener callback, String packageName, @nullable String attributionTag);
    void unregisterGnssNmeaCallback(in IGnssNmeaListener callback);

    void addGnssMeasurementsListener(in GnssMeasurementRequest request, in IGnssMeasurementsListener listener, String packageName, String attributionTag);
    void addGnssMeasurementsListener(in GnssMeasurementRequest request, in IGnssMeasurementsListener listener, String packageName, @nullable String attributionTag);
    void removeGnssMeasurementsListener(in IGnssMeasurementsListener listener);
    void injectGnssMeasurementCorrections(in GnssMeasurementCorrections corrections);

    void addGnssNavigationMessageListener(in IGnssNavigationMessageListener listener, String packageName, String attributionTag);
    void addGnssNavigationMessageListener(in IGnssNavigationMessageListener listener, String packageName, @nullable String attributionTag);
    void removeGnssNavigationMessageListener(in IGnssNavigationMessageListener listener);

    int getGnssBatchSize();
    void startGnssBatch(long periodNanos, in ILocationListener listener, String packageName, String attributionTag, String listenerId);
    void startGnssBatch(long periodNanos, in ILocationListener listener, String packageName, @nullable String attributionTag, @nullable String listenerId);
    void flushGnssBatch();
    void stopGnssBatch();

@@ -101,7 +101,7 @@ interface ILocationManager
    List<String> getProviders(in Criteria criteria, boolean enabledOnly);
    String getBestProvider(in Criteria criteria, boolean enabledOnly);
    ProviderProperties getProviderProperties(String provider);
    boolean isProviderPackage(String provider, String packageName);
    boolean isProviderPackage(@nullable String provider, String packageName, @nullable String attributionTag);
    List<String> getProviderPackages(String provider);

    void setExtraLocationControllerPackage(String packageName);
@@ -113,10 +113,10 @@ interface ILocationManager
    boolean isLocationEnabledForUser(int userId);
    void setLocationEnabledForUser(boolean enabled, int userId);

    void addTestProvider(String name, in ProviderProperties properties, String packageName, String attributionTag);
    void removeTestProvider(String provider, String packageName, String attributionTag);
    void setTestProviderLocation(String provider, in Location location, String packageName, String attributionTag);
    void setTestProviderEnabled(String provider, boolean enabled, String packageName, String attributionTag);
    void addTestProvider(String name, in ProviderProperties properties, String packageName, @nullable String attributionTag);
    void removeTestProvider(String provider, String packageName, @nullable String attributionTag);
    void setTestProviderLocation(String provider, in Location location, String packageName, @nullable String attributionTag);
    void setTestProviderEnabled(String provider, boolean enabled, String packageName, @nullable String attributionTag);

    LocationTime getGnssTimeMillis();

+29 −8
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.WeakHashMap;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
@@ -1840,17 +1841,13 @@ public class LocationManager {
     * otherwise.
     *
     * @hide
     * @deprecated Prefer {@link #isProviderPackage(String, String)} instead.
     * @deprecated Prefer {@link #isProviderPackage(String, String, String)} instead.
     */
    @Deprecated
    @SystemApi
    @RequiresPermission(Manifest.permission.READ_DEVICE_CONFIG)
    public boolean isProviderPackage(@NonNull String packageName) {
        try {
            return mService.isProviderPackage(null, packageName);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
        return isProviderPackage(null, packageName, null);
    }

    /**
@@ -1861,13 +1858,37 @@ public class LocationManager {
     * @param provider a provider listed by {@link #getAllProviders()} or null
     * @param packageName the package name to test if it is a provider
     * @return true if the given arguments correspond to a provider
     *
     * @deprecated Use {@link #isProviderPackage(String, String, String)} instead.
     *
     * @hide
     */
    @Deprecated
    @SystemApi
    @RequiresPermission(Manifest.permission.READ_DEVICE_CONFIG)
    public boolean isProviderPackage(@Nullable String provider, @NonNull String packageName) {
        return isProviderPackage(provider, packageName, null);
    }

    /**
     * Returns true if the given provider corresponds to the given package name. If the given
     * provider is null, this will return true if any provider corresponds to the given package
     * name and/or attribution tag. If attribution tag is non-null, the provider identity must match
     * both the given package name and attribution tag.
     *
     * @param provider a provider listed by {@link #getAllProviders()} or null
     * @param packageName the package name to test if it is a provider
     * @param attributionTag an optional attribution tag within the given package
     * @return true if the given arguments correspond to a provider
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.READ_DEVICE_CONFIG)
    public boolean isProviderPackage(@Nullable String provider, @NonNull String packageName,
            @Nullable String attributionTag) {
        try {
            return mService.isProviderPackage(provider, packageName);
            return mService.isProviderPackage(provider, Objects.requireNonNull(packageName),
                    attributionTag);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -1878,7 +1899,7 @@ public class LocationManager {
     * and an empty list if no package is associated with the provider.
     *
     * @hide
     * @deprecated Prefer {@link #isProviderPackage(String, String)} instead.
     * @deprecated Prefer {@link #isProviderPackage(String, String, String)} instead.
     */
    @TestApi
    @Deprecated
+7 −3
Original line number Diff line number Diff line
@@ -201,11 +201,15 @@ public final class CallerIdentity {
            return false;
        }
        CallerIdentity that = (CallerIdentity) o;
        return mUid == that.mUid
        return equalsIgnoringListenerId(that) && Objects.equals(mListenerId, that.mListenerId);
    }

    public boolean equalsIgnoringListenerId(CallerIdentity that) {
        return that != null
                && mUid == that.mUid
                && mPid == that.mPid
                && mPackageName.equals(that.mPackageName)
                && Objects.equals(mAttributionTag, that.mAttributionTag)
                && Objects.equals(mListenerId, that.mListenerId);
                && Objects.equals(mAttributionTag, that.mAttributionTag);
    }

    @Override
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
    <uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />

    <application
            android:label="@string/app_label"
Loading