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

Commit be6ed5aa authored by Soonil Nagarkar's avatar Soonil Nagarkar
Browse files

Add batching APIs and Location.equals()

-Moves batching APIs from SystemApi to Public, and makes them
multi-client safe.
-Adds equals/hashcode to Location.

Bug: 171512333
Test: manual + presubmit
Change-Id: I6ee28f8229fdf49386cd370ea785de63b97e7cde
parent fded2b6d
Loading
Loading
Loading
Loading
+22 −2
Original line number Diff line number Diff line
@@ -23964,7 +23964,7 @@ package android.location {
    method public float getBearingAccuracyDegrees();
    method public long getElapsedRealtimeNanos();
    method public double getElapsedRealtimeUncertaintyNanos();
    method public android.os.Bundle getExtras();
    method @Deprecated public android.os.Bundle getExtras();
    method public double getLatitude();
    method public double getLongitude();
    method public String getProvider();
@@ -23993,7 +23993,7 @@ package android.location {
    method public void setBearingAccuracyDegrees(float);
    method public void setElapsedRealtimeNanos(long);
    method public void setElapsedRealtimeUncertaintyNanos(double);
    method public void setExtras(android.os.Bundle);
    method @Deprecated public void setExtras(android.os.Bundle);
    method public void setLatitude(double);
    method public void setLongitude(double);
    method public void setProvider(String);
@@ -24009,7 +24009,9 @@ package android.location {
  }
  public interface LocationListener {
    method public default void onFlushComplete(int);
    method public void onLocationChanged(@NonNull android.location.Location);
    method public default void onLocationChanged(@NonNull android.location.LocationResult);
    method public default void onProviderDisabled(@NonNull String);
    method public default void onProviderEnabled(@NonNull String);
    method @Deprecated public default void onStatusChanged(String, int, android.os.Bundle);
@@ -24057,6 +24059,8 @@ package android.location {
    method public void removeTestProvider(@NonNull String);
    method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeUpdates(@NonNull android.location.LocationListener);
    method public void removeUpdates(@NonNull android.app.PendingIntent);
    method public void requestFlush(@NonNull String, @NonNull android.location.LocationListener, int);
    method public void requestFlush(@NonNull String, @NonNull android.app.PendingIntent, int);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull android.location.LocationListener);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener);
@@ -24082,7 +24086,9 @@ package android.location {
    field public static final String EXTRA_PROVIDER_ENABLED = "android.location.extra.PROVIDER_ENABLED";
    field public static final String EXTRA_PROVIDER_NAME = "android.location.extra.PROVIDER_NAME";
    field public static final String GPS_PROVIDER = "gps";
    field public static final String KEY_FLUSH_COMPLETE = "flushComplete";
    field public static final String KEY_LOCATION_CHANGED = "location";
    field public static final String KEY_LOCATION_RESULT = "locationResult";
    field public static final String KEY_PROVIDER_ENABLED = "providerEnabled";
    field public static final String KEY_PROXIMITY_ENTERING = "entering";
    field @Deprecated public static final String KEY_STATUS_CHANGED = "status";
@@ -24113,6 +24119,7 @@ package android.location {
    method public int describeContents();
    method @IntRange(from=1) public long getDurationMillis();
    method @IntRange(from=0) public long getIntervalMillis();
    method @IntRange(from=0) public long getMaxUpdateDelayMillis();
    method @IntRange(from=1, to=java.lang.Integer.MAX_VALUE) public int getMaxUpdates();
    method @FloatRange(from=0, to=java.lang.Float.MAX_VALUE) public float getMinUpdateDistanceMeters();
    method @IntRange(from=0) public long getMinUpdateIntervalMillis();
@@ -24132,12 +24139,25 @@ package android.location {
    method @NonNull public android.location.LocationRequest.Builder clearMinUpdateIntervalMillis();
    method @NonNull public android.location.LocationRequest.Builder setDurationMillis(@IntRange(from=1) long);
    method @NonNull public android.location.LocationRequest.Builder setIntervalMillis(@IntRange(from=0) long);
    method @NonNull public android.location.LocationRequest.Builder setMaxUpdateDelayMillis(@IntRange(from=0) long);
    method @NonNull public android.location.LocationRequest.Builder setMaxUpdates(@IntRange(from=1, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.location.LocationRequest.Builder setMinUpdateDistanceMeters(@FloatRange(from=0, to=java.lang.Float.MAX_VALUE) float);
    method @NonNull public android.location.LocationRequest.Builder setMinUpdateIntervalMillis(@IntRange(from=0) long);
    method @NonNull public android.location.LocationRequest.Builder setQuality(int);
  }
  public final class LocationResult implements android.os.Parcelable {
    method @NonNull public java.util.List<android.location.Location> asList();
    method @NonNull public static android.location.LocationResult create(@NonNull android.location.Location);
    method @NonNull public static android.location.LocationResult create(@NonNull java.util.List<android.location.Location>);
    method public int describeContents();
    method @NonNull public android.location.Location get(@IntRange(from=0) int);
    method @NonNull public android.location.Location getLastLocation();
    method @IntRange(from=1) public int size();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.LocationResult> CREATOR;
  }
  public interface OnNmeaMessageListener {
    method public void onNmeaMessage(String, long);
  }
+8 −4
Original line number Diff line number Diff line
@@ -4164,17 +4164,17 @@ package android.location {
  }
  public class LocationManager {
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch();
    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch();
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void getCurrentLocation(@NonNull android.location.LocationRequest, @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.location.Location>);
    method @Nullable public String getExtraLocationControllerPackage();
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int getGnssBatchSize();
    method @Deprecated public int getGnssBatchSize();
    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections);
    method public boolean isExtraLocationControllerPackageEnabled();
    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 @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler);
    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 @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.LOCATION_HARDWARE}) 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);
    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);
@@ -4183,7 +4183,7 @@ package android.location {
    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 @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback);
    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback);
  }
  public final class LocationRequest implements android.os.Parcelable {
@@ -4230,6 +4230,10 @@ package android.location {
    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.location.LocationRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
  }
  public final class LocationResult implements android.os.Parcelable {
    method @NonNull public static android.location.LocationResult wrap(@NonNull android.location.Location);
  }
}
package android.media {
+22 −2
Original line number Diff line number Diff line
@@ -23946,7 +23946,7 @@ package android.location {
    method public float getBearingAccuracyDegrees();
    method public long getElapsedRealtimeNanos();
    method public double getElapsedRealtimeUncertaintyNanos();
    method public android.os.Bundle getExtras();
    method @Deprecated public android.os.Bundle getExtras();
    method public double getLatitude();
    method public double getLongitude();
    method public String getProvider();
@@ -23975,7 +23975,7 @@ package android.location {
    method public void setBearingAccuracyDegrees(float);
    method public void setElapsedRealtimeNanos(long);
    method public void setElapsedRealtimeUncertaintyNanos(double);
    method public void setExtras(android.os.Bundle);
    method @Deprecated public void setExtras(android.os.Bundle);
    method public void setLatitude(double);
    method public void setLongitude(double);
    method public void setProvider(String);
@@ -23991,7 +23991,9 @@ package android.location {
  }
  public interface LocationListener {
    method public default void onFlushComplete(int);
    method public void onLocationChanged(@NonNull android.location.Location);
    method public default void onLocationChanged(@NonNull android.location.LocationResult);
    method public default void onProviderDisabled(@NonNull String);
    method public default void onProviderEnabled(@NonNull String);
    method @Deprecated public default void onStatusChanged(String, int, android.os.Bundle);
@@ -24039,6 +24041,8 @@ package android.location {
    method public void removeTestProvider(@NonNull String);
    method @RequiresPermission(anyOf={"android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION"}, apis="..22") public void removeUpdates(@NonNull android.location.LocationListener);
    method public void removeUpdates(@NonNull android.app.PendingIntent);
    method public void requestFlush(@NonNull String, @NonNull android.location.LocationListener, int);
    method public void requestFlush(@NonNull String, @NonNull android.app.PendingIntent, int);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull android.location.LocationListener);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@NonNull String, long, float, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener);
@@ -24064,7 +24068,9 @@ package android.location {
    field public static final String EXTRA_PROVIDER_ENABLED = "android.location.extra.PROVIDER_ENABLED";
    field public static final String EXTRA_PROVIDER_NAME = "android.location.extra.PROVIDER_NAME";
    field public static final String GPS_PROVIDER = "gps";
    field public static final String KEY_FLUSH_COMPLETE = "flushComplete";
    field public static final String KEY_LOCATION_CHANGED = "location";
    field public static final String KEY_LOCATION_RESULT = "locationResult";
    field public static final String KEY_PROVIDER_ENABLED = "providerEnabled";
    field public static final String KEY_PROXIMITY_ENTERING = "entering";
    field @Deprecated public static final String KEY_STATUS_CHANGED = "status";
@@ -24095,6 +24101,7 @@ package android.location {
    method public int describeContents();
    method @IntRange(from=1) public long getDurationMillis();
    method @IntRange(from=0) public long getIntervalMillis();
    method @IntRange(from=0) public long getMaxUpdateDelayMillis();
    method @IntRange(from=1, to=java.lang.Integer.MAX_VALUE) public int getMaxUpdates();
    method @FloatRange(from=0, to=java.lang.Float.MAX_VALUE) public float getMinUpdateDistanceMeters();
    method @IntRange(from=0) public long getMinUpdateIntervalMillis();
@@ -24114,12 +24121,25 @@ package android.location {
    method @NonNull public android.location.LocationRequest.Builder clearMinUpdateIntervalMillis();
    method @NonNull public android.location.LocationRequest.Builder setDurationMillis(@IntRange(from=1) long);
    method @NonNull public android.location.LocationRequest.Builder setIntervalMillis(@IntRange(from=0) long);
    method @NonNull public android.location.LocationRequest.Builder setMaxUpdateDelayMillis(@IntRange(from=0) long);
    method @NonNull public android.location.LocationRequest.Builder setMaxUpdates(@IntRange(from=1, to=java.lang.Integer.MAX_VALUE) int);
    method @NonNull public android.location.LocationRequest.Builder setMinUpdateDistanceMeters(@FloatRange(from=0, to=java.lang.Float.MAX_VALUE) float);
    method @NonNull public android.location.LocationRequest.Builder setMinUpdateIntervalMillis(@IntRange(from=0) long);
    method @NonNull public android.location.LocationRequest.Builder setQuality(int);
  }
  public final class LocationResult implements android.os.Parcelable {
    method @NonNull public java.util.List<android.location.Location> asList();
    method @NonNull public static android.location.LocationResult create(@NonNull android.location.Location);
    method @NonNull public static android.location.LocationResult create(@NonNull java.util.List<android.location.Location>);
    method public int describeContents();
    method @NonNull public android.location.Location get(@IntRange(from=0) int);
    method @NonNull public android.location.Location getLastLocation();
    method @IntRange(from=1) public int size();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.location.LocationResult> CREATOR;
  }
  public interface OnNmeaMessageListener {
    method public void onNmeaMessage(String, long);
  }
+8 −4
Original line number Diff line number Diff line
@@ -4104,17 +4104,17 @@ package android.location {
  }
  public class LocationManager {
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch();
    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void flushGnssBatch();
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void getCurrentLocation(@NonNull android.location.LocationRequest, @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.location.Location>);
    method @Nullable public String getExtraLocationControllerPackage();
    method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public int getGnssBatchSize();
    method @Deprecated public int getGnssBatchSize();
    method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void injectGnssMeasurementCorrections(@NonNull android.location.GnssMeasurementCorrections);
    method public boolean isExtraLocationControllerPackageEnabled();
    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 @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean registerGnssBatchedLocationCallback(long, boolean, @NonNull android.location.BatchedLocationCallback, @Nullable android.os.Handler);
    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 @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.LOCATION_HARDWARE}) 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);
    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);
@@ -4123,7 +4123,7 @@ package android.location {
    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 @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback);
    method @Deprecated @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean unregisterGnssBatchedLocationCallback(@NonNull android.location.BatchedLocationCallback);
  }
  public final class LocationRequest implements android.os.Parcelable {
@@ -4170,6 +4170,10 @@ package android.location {
    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.location.LocationRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
  }
  public final class LocationResult implements android.os.Parcelable {
    method @NonNull public static android.location.LocationResult wrap(@NonNull android.location.Location);
  }
}
package android.media {
+3 −2
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package android.location;

import android.location.Location;
import android.location.LocationResult;
import android.os.IRemoteCallback;

/**
@@ -24,6 +24,7 @@ import android.os.IRemoteCallback;
 */
oneway interface ILocationListener
{
    void onLocationChanged(in Location location, in @nullable IRemoteCallback onCompleteCallback);
    void onLocationChanged(in LocationResult locationResult, in @nullable IRemoteCallback onCompleteCallback);
    void onProviderEnabledChanged(String provider, boolean enabled);
    void onFlushComplete(int requestCode);
}
Loading