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

Commit 1f862b0a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Expose ADAS APIs"

parents 8729fa24 a2f25653
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -4933,6 +4933,7 @@ package android.location {
  public final class LastLocationRequest implements android.os.Parcelable {
    method public int describeContents();
    method public boolean isAdasGnssBypass();
    method public boolean isHiddenFromAppOps();
    method public boolean isLocationSettingsIgnored();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
@@ -4943,6 +4944,7 @@ package android.location {
    ctor public LastLocationRequest.Builder();
    ctor public LastLocationRequest.Builder(@NonNull android.location.LastLocationRequest);
    method @NonNull public android.location.LastLocationRequest build();
    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LastLocationRequest.Builder setAdasGnssBypass(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LastLocationRequest.Builder setHiddenFromAppOps(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LastLocationRequest.Builder setLocationSettingsIgnored(boolean);
  }
@@ -4962,6 +4964,7 @@ package android.location {
    method @Deprecated public int getGnssBatchSize();
    method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public android.location.Location getLastKnownLocation(@NonNull String, @NonNull android.location.LastLocationRequest);
    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections);
    method public boolean isAdasGnssLocationEnabled();
    method public boolean isExtraLocationControllerPackageEnabled();
    method public boolean isLocationEnabledForUser(@NonNull android.os.UserHandle);
    method public boolean isProviderEnabledForUser(@NonNull String, @NonNull android.os.UserHandle);
@@ -4973,11 +4976,14 @@ package android.location {
    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);
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener);
    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.app.PendingIntent);
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAdasGnssLocationEnabled(boolean);
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackage(@Nullable String);
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackageEnabled(boolean);
    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle);
    method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setProviderEnabledForUser(@NonNull String, boolean, @NonNull android.os.UserHandle);
    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback);
    field public static final String ACTION_ADAS_GNSS_ENABLED_CHANGED = "android.location.action.ADAS_GNSS_ENABLED_CHANGED";
    field public static final String EXTRA_ADAS_GNSS_ENABLED = "android.location.extra.ADAS_GNSS_ENABLED";
  }
  public final class LocationRequest implements android.os.Parcelable {
@@ -4993,6 +4999,7 @@ package android.location {
    method @Deprecated @NonNull public String getProvider();
    method @Deprecated public float getSmallestDisplacement();
    method @NonNull public android.os.WorkSource getWorkSource();
    method public boolean isAdasGnssBypass();
    method public boolean isHiddenFromAppOps();
    method public boolean isLocationSettingsIgnored();
    method public boolean isLowPower();
@@ -5018,6 +5025,7 @@ package android.location {
  }
  public static final class LocationRequest.Builder {
    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LocationRequest.Builder setAdasGnssBypass(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LocationRequest.Builder setHiddenFromAppOps(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.location.LocationRequest.Builder setLocationSettingsIgnored(boolean);
    method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.location.LocationRequest.Builder setLowPower(boolean);
+14 −2
Original line number Diff line number Diff line
@@ -53,7 +53,9 @@ public final class LastLocationRequest implements Parcelable {
     *
     * @return true if this request should be ignored while updating app ops with location usage
     *
     * @hide
     */
    @SystemApi
    public boolean isHiddenFromAppOps() {
        return mHiddenFromAppOps;
    }
@@ -65,9 +67,10 @@ public final class LastLocationRequest implements Parcelable {
     * Driving Assistance Systems) application.
     *
     * @return true if all limiting factors will be ignored to satisfy GNSS request
     *
     * @hide
     */
    // TODO: make this system api
    @SystemApi
    public boolean isAdasGnssBypass() {
        return mAdasGnssBypass;
    }
@@ -78,7 +81,10 @@ public final class LastLocationRequest implements Parcelable {
     * possible limiting factors will be ignored in order to satisfy this last location request.
     *
     * @return true if all limiting factors will be ignored to satisfy this request
     *
     * @hide
     */
    @SystemApi
    public boolean isLocationSettingsIgnored() {
        return mLocationSettingsIgnored;
    }
@@ -192,7 +198,10 @@ public final class LastLocationRequest implements Parcelable {
         *
         * <p>Permissions enforcement occurs when resulting last location request is actually used,
         * not when this method is invoked.
         *
         * @hide
         */
        @SystemApi
        @RequiresPermission(Manifest.permission.UPDATE_APP_OPS_STATS)
        public @NonNull Builder setHiddenFromAppOps(boolean hiddenFromAppOps) {
            mHiddenFromAppOps = hiddenFromAppOps;
@@ -211,7 +220,7 @@ public final class LastLocationRequest implements Parcelable {
         *
         * @hide
         */
        // TODO: make this system api
        @SystemApi
        @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
        public @NonNull LastLocationRequest.Builder setAdasGnssBypass(boolean adasGnssBypass) {
            mAdasGnssBypass = adasGnssBypass;
@@ -226,7 +235,10 @@ public final class LastLocationRequest implements Parcelable {
         *
         * <p>Permissions enforcement occurs when resulting last location request is actually used,
         * not when this method is invoked.
         *
         * @hide
         */
        @SystemApi
        @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
        public @NonNull Builder setLocationSettingsIgnored(boolean locationSettingsIgnored) {
            mLocationSettingsIgnored = locationSettingsIgnored;
+4 −4
Original line number Diff line number Diff line
@@ -325,7 +325,7 @@ public class LocationManager {
     *
     * @hide
     */
    // TODO: @SystemApi
    @SystemApi
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_ADAS_GNSS_ENABLED_CHANGED =
            "android.location.action.ADAS_GNSS_ENABLED_CHANGED";
@@ -338,7 +338,7 @@ public class LocationManager {
     *
     * @hide
     */
    // TODO: @SystemApi
    @SystemApi
    public static final String EXTRA_ADAS_GNSS_ENABLED = "android.location.extra.ADAS_GNSS_ENABLED";

    /**
@@ -656,7 +656,7 @@ public class LocationManager {
     *
     * @hide
     */
    //TODO: @SystemApi
    @SystemApi
    public boolean isAdasGnssLocationEnabled() {
        try {
            return mService.isAdasGnssLocationEnabledForUser(mContext.getUser().getIdentifier());
@@ -673,7 +673,7 @@ public class LocationManager {
     *
     * @hide
     */
    // TODO: @SystemApi
    @SystemApi
    @RequiresPermission(WRITE_SECURE_SETTINGS)
    public void setAdasGnssLocationEnabled(boolean enabled) {
        try {
+2 −2
Original line number Diff line number Diff line
@@ -660,7 +660,7 @@ public final class LocationRequest implements Parcelable {
     *
     * @hide
     */
    // TODO: @SystemApi
    @SystemApi
    public boolean isAdasGnssBypass() {
        return mAdasGnssBypass;
    }
@@ -1139,7 +1139,7 @@ public final class LocationRequest implements Parcelable {
         *
         * @hide
         */
        // TODO: @SystemApi
        @SystemApi
        @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
        public @NonNull Builder setAdasGnssBypass(boolean adasGnssBypass) {
            mAdasGnssBypass = adasGnssBypass;
+0 −16
Original line number Diff line number Diff line
@@ -771,14 +771,6 @@ public class LocationManagerService extends ILocationManager.Stub implements
        // sanitize request
        LocationRequest.Builder sanitized = new LocationRequest.Builder(request);

        if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
                && GPS_PROVIDER.equals(provider)
                && ArrayUtils.contains(mContext.getResources().getStringArray(
                com.android.internal.R.array.config_locationDriverAssistancePackageNames),
                identity.getPackageName())) {
            sanitized.setAdasGnssBypass(true);
        }

        if (!CompatChanges.isChangeEnabled(LOW_POWER_EXCEPTIONS, Binder.getCallingUid())) {
            if (mContext.checkCallingPermission(permission.LOCATION_HARDWARE)
                    != PERMISSION_GRANTED) {
@@ -914,14 +906,6 @@ public class LocationManagerService extends ILocationManager.Stub implements
        // sanitize request
        LastLocationRequest.Builder sanitized = new LastLocationRequest.Builder(request);

        if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
                && GPS_PROVIDER.equals(provider)
                && ArrayUtils.contains(mContext.getResources().getStringArray(
                com.android.internal.R.array.config_locationDriverAssistancePackageNames),
                identity.getPackageName())) {
            sanitized.setAdasGnssBypass(true);
        }

        request = sanitized.build();

        // validate request