summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Soonil Nagarkar <sooniln@google.com> 2022-01-25 16:34:03 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-01-25 16:34:03 +0000
commit75da5071e50836a7d869fc493048c56f90ed3442 (patch)
tree9fbf7a42f49052822ebf9d569de995ce3da0d435
parent961f9be18144a6da3bda8e2cfb02fd11fe10b87a (diff)
parentabb7ac8e60932c63662b36577f6722ab1316755f (diff)
Merge "Change default LocationRequest quality"
-rw-r--r--location/java/android/location/LocationRequest.java80
1 files changed, 37 insertions, 43 deletions
diff --git a/location/java/android/location/LocationRequest.java b/location/java/android/location/LocationRequest.java
index d6e203c39870..587222a4df43 100644
--- a/location/java/android/location/LocationRequest.java
+++ b/location/java/android/location/LocationRequest.java
@@ -29,7 +29,6 @@ import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledAfter;
-import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
@@ -180,13 +179,9 @@ public final class LocationRequest implements Parcelable {
private static final long IMPLICIT_MIN_UPDATE_INTERVAL = -1;
private static final double IMPLICIT_MIN_UPDATE_INTERVAL_FACTOR = 1D / 6D;
- @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, publicAlternatives = "Use {@link "
- + "LocationManager} methods to provide the provider explicitly.")
- @Nullable private String mProvider;
+ private @Nullable String mProvider;
private @Quality int mQuality;
- @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, publicAlternatives = "Use {@link "
- + "LocationRequest} instead.")
- private long mInterval;
+ private long mIntervalMillis;
private long mMinUpdateIntervalMillis;
private long mExpireAtRealtimeMillis;
private long mDurationMillis;
@@ -195,7 +190,7 @@ public final class LocationRequest implements Parcelable {
private final long mMaxUpdateDelayMillis;
private boolean mHideFromAppOps;
private final boolean mAdasGnssBypass;
- private boolean mLocationSettingsIgnored;
+ private boolean mBypass;
private boolean mLowPower;
private @Nullable WorkSource mWorkSource;
@@ -208,9 +203,7 @@ public final class LocationRequest implements Parcelable {
@NonNull
public static LocationRequest create() {
// 60 minutes is the default legacy interval
- return new LocationRequest.Builder(60 * 60 * 1000)
- .setQuality(QUALITY_LOW_POWER)
- .build();
+ return new LocationRequest.Builder(60 * 60 * 1000).build();
}
/**
@@ -239,7 +232,7 @@ public final class LocationRequest implements Parcelable {
} else if (LocationManager.GPS_PROVIDER.equals(provider)) {
quality = QUALITY_HIGH_ACCURACY;
} else {
- quality = POWER_LOW;
+ quality = QUALITY_BALANCED_POWER_ACCURACY;
}
return new LocationRequest.Builder(intervalMillis)
@@ -291,11 +284,11 @@ public final class LocationRequest implements Parcelable {
long maxUpdateDelayMillis,
boolean hiddenFromAppOps,
boolean adasGnssBypass,
- boolean locationSettingsIgnored,
+ boolean bypass,
boolean lowPower,
WorkSource workSource) {
mProvider = provider;
- mInterval = intervalMillis;
+ mIntervalMillis = intervalMillis;
mQuality = quality;
mMinUpdateIntervalMillis = minUpdateIntervalMillis;
mExpireAtRealtimeMillis = expireAtRealtimeMillis;
@@ -305,7 +298,7 @@ public final class LocationRequest implements Parcelable {
mMaxUpdateDelayMillis = maxUpdateDelayMillis;
mHideFromAppOps = hiddenFromAppOps;
mAdasGnssBypass = adasGnssBypass;
- mLocationSettingsIgnored = locationSettingsIgnored;
+ mBypass = bypass;
mLowPower = lowPower;
mWorkSource = Objects.requireNonNull(workSource);
}
@@ -354,7 +347,7 @@ public final class LocationRequest implements Parcelable {
mQuality = QUALITY_LOW_POWER;
break;
case POWER_NONE:
- mInterval = PASSIVE_INTERVAL;
+ mIntervalMillis = PASSIVE_INTERVAL;
break;
default:
throw new IllegalArgumentException("invalid quality: " + quality);
@@ -388,9 +381,9 @@ public final class LocationRequest implements Parcelable {
millis = Long.MAX_VALUE - 1;
}
- mInterval = millis;
- if (mMinUpdateIntervalMillis > mInterval) {
- mMinUpdateIntervalMillis = mInterval;
+ mIntervalMillis = millis;
+ if (mMinUpdateIntervalMillis > mIntervalMillis) {
+ mMinUpdateIntervalMillis = mIntervalMillis;
}
return this;
}
@@ -418,7 +411,7 @@ public final class LocationRequest implements Parcelable {
* @return the desired interval of location updates
*/
public @IntRange(from = 0) long getIntervalMillis() {
- return mInterval;
+ return mIntervalMillis;
}
/**
@@ -556,11 +549,11 @@ public final class LocationRequest implements Parcelable {
*/
public @IntRange(from = 0) long getMinUpdateIntervalMillis() {
if (mMinUpdateIntervalMillis == IMPLICIT_MIN_UPDATE_INTERVAL) {
- return (long) (mInterval * IMPLICIT_MIN_UPDATE_INTERVAL_FACTOR);
+ return (long) (mIntervalMillis * IMPLICIT_MIN_UPDATE_INTERVAL_FACTOR);
} else {
// the min is only necessary in case someone use a deprecated function to mess with the
// interval or min update interval
- return min(mMinUpdateIntervalMillis, mInterval);
+ return min(mMinUpdateIntervalMillis, mIntervalMillis);
}
}
@@ -673,7 +666,7 @@ public final class LocationRequest implements Parcelable {
@Deprecated
@RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
public @NonNull LocationRequest setLocationSettingsIgnored(boolean locationSettingsIgnored) {
- mLocationSettingsIgnored = locationSettingsIgnored;
+ mBypass = locationSettingsIgnored;
return this;
}
@@ -687,7 +680,7 @@ public final class LocationRequest implements Parcelable {
*/
@SystemApi
public boolean isLocationSettingsIgnored() {
- return mLocationSettingsIgnored;
+ return mBypass;
}
/**
@@ -696,7 +689,7 @@ public final class LocationRequest implements Parcelable {
* @hide
*/
public boolean isBypass() {
- return mAdasGnssBypass || mLocationSettingsIgnored;
+ return mAdasGnssBypass || mBypass;
}
/**
@@ -796,7 +789,7 @@ public final class LocationRequest implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel parcel, int flags) {
parcel.writeString(mProvider);
- parcel.writeLong(mInterval);
+ parcel.writeLong(mIntervalMillis);
parcel.writeInt(mQuality);
parcel.writeLong(mExpireAtRealtimeMillis);
parcel.writeLong(mDurationMillis);
@@ -806,7 +799,7 @@ public final class LocationRequest implements Parcelable {
parcel.writeLong(mMaxUpdateDelayMillis);
parcel.writeBoolean(mHideFromAppOps);
parcel.writeBoolean(mAdasGnssBypass);
- parcel.writeBoolean(mLocationSettingsIgnored);
+ parcel.writeBoolean(mBypass);
parcel.writeBoolean(mLowPower);
parcel.writeTypedObject(mWorkSource, 0);
}
@@ -821,7 +814,7 @@ public final class LocationRequest implements Parcelable {
}
LocationRequest that = (LocationRequest) o;
- return mInterval == that.mInterval
+ return mIntervalMillis == that.mIntervalMillis
&& mQuality == that.mQuality
&& mExpireAtRealtimeMillis == that.mExpireAtRealtimeMillis
&& mDurationMillis == that.mDurationMillis
@@ -831,7 +824,7 @@ public final class LocationRequest implements Parcelable {
&& mMaxUpdateDelayMillis == that.mMaxUpdateDelayMillis
&& mHideFromAppOps == that.mHideFromAppOps
&& mAdasGnssBypass == that.mAdasGnssBypass
- && mLocationSettingsIgnored == that.mLocationSettingsIgnored
+ && mBypass == that.mBypass
&& mLowPower == that.mLowPower
&& Objects.equals(mProvider, that.mProvider)
&& Objects.equals(mWorkSource, that.mWorkSource);
@@ -839,7 +832,7 @@ public final class LocationRequest implements Parcelable {
@Override
public int hashCode() {
- return Objects.hash(mProvider, mInterval, mWorkSource);
+ return Objects.hash(mProvider, mIntervalMillis, mWorkSource);
}
@NonNull
@@ -850,9 +843,9 @@ public final class LocationRequest implements Parcelable {
if (mProvider != null) {
s.append(mProvider).append(" ");
}
- if (mInterval != PASSIVE_INTERVAL) {
+ if (mIntervalMillis != PASSIVE_INTERVAL) {
s.append("@");
- TimeUtils.formatDuration(mInterval, s);
+ TimeUtils.formatDuration(mIntervalMillis, s);
switch (mQuality) {
case QUALITY_HIGH_ACCURACY:
@@ -879,14 +872,14 @@ public final class LocationRequest implements Parcelable {
s.append(", maxUpdates=").append(mMaxUpdates);
}
if (mMinUpdateIntervalMillis != IMPLICIT_MIN_UPDATE_INTERVAL
- && mMinUpdateIntervalMillis < mInterval) {
+ && mMinUpdateIntervalMillis < mIntervalMillis) {
s.append(", minUpdateInterval=");
TimeUtils.formatDuration(mMinUpdateIntervalMillis, s);
}
if (mMinUpdateDistanceMeters > 0.0) {
s.append(", minUpdateDistance=").append(mMinUpdateDistanceMeters);
}
- if (mMaxUpdateDelayMillis / 2 > mInterval) {
+ if (mMaxUpdateDelayMillis / 2 > mIntervalMillis) {
s.append(", maxUpdateDelay=");
TimeUtils.formatDuration(mMaxUpdateDelayMillis, s);
}
@@ -899,8 +892,8 @@ public final class LocationRequest implements Parcelable {
if (mAdasGnssBypass) {
s.append(", adasGnssBypass");
}
- if (mLocationSettingsIgnored) {
- s.append(", settingsBypass");
+ if (mBypass) {
+ s.append(", bypass");
}
if (mWorkSource != null && !mWorkSource.isEmpty()) {
s.append(", ").append(mWorkSource);
@@ -923,7 +916,7 @@ public final class LocationRequest implements Parcelable {
private long mMaxUpdateDelayMillis;
private boolean mHiddenFromAppOps;
private boolean mAdasGnssBypass;
- private boolean mLocationSettingsIgnored;
+ private boolean mBypass;
private boolean mLowPower;
@Nullable private WorkSource mWorkSource;
@@ -943,7 +936,7 @@ public final class LocationRequest implements Parcelable {
mMaxUpdateDelayMillis = 0;
mHiddenFromAppOps = false;
mAdasGnssBypass = false;
- mLocationSettingsIgnored = false;
+ mBypass = false;
mLowPower = false;
mWorkSource = null;
}
@@ -952,7 +945,7 @@ public final class LocationRequest implements Parcelable {
* Creates a new Builder with all parameters copied from the given location request.
*/
public Builder(@NonNull LocationRequest locationRequest) {
- mIntervalMillis = locationRequest.mInterval;
+ mIntervalMillis = locationRequest.mIntervalMillis;
mQuality = locationRequest.mQuality;
mDurationMillis = locationRequest.mDurationMillis;
mMaxUpdates = locationRequest.mMaxUpdates;
@@ -961,7 +954,7 @@ public final class LocationRequest implements Parcelable {
mMaxUpdateDelayMillis = locationRequest.mMaxUpdateDelayMillis;
mHiddenFromAppOps = locationRequest.mHideFromAppOps;
mAdasGnssBypass = locationRequest.mAdasGnssBypass;
- mLocationSettingsIgnored = locationRequest.mLocationSettingsIgnored;
+ mBypass = locationRequest.mBypass;
mLowPower = locationRequest.mLowPower;
mWorkSource = locationRequest.mWorkSource;
@@ -1160,14 +1153,15 @@ public final class LocationRequest implements Parcelable {
@SystemApi
@RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
public @NonNull Builder setLocationSettingsIgnored(boolean locationSettingsIgnored) {
- mLocationSettingsIgnored = locationSettingsIgnored;
+ mBypass = locationSettingsIgnored;
return this;
}
/**
* It set to true, indicates that extreme trade-offs should be made if possible to save
* power for this request. This usually involves specialized hardware modes which can
- * greatly affect the quality of locations. Defaults to false.
+ * greatly affect the quality of locations. Not all devices may support this. Defaults to
+ * false.
*
* <p>Permissions enforcement occurs when resulting location request is actually used, not
* when this method is invoked.
@@ -1227,7 +1221,7 @@ public final class LocationRequest implements Parcelable {
mMaxUpdateDelayMillis,
mHiddenFromAppOps,
mAdasGnssBypass,
- mLocationSettingsIgnored,
+ mBypass,
mLowPower,
new WorkSource(mWorkSource));
}