Merge "Ensure UWB conforms to API guidelines" am: 0070e26a5e am: a0e1666a74
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1518203 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I561ea72833cbadcae45cff01edf310fee80c6532
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
package android.uwb;
|
package android.uwb;
|
||||||
|
|
||||||
import android.annotation.FloatRange;
|
import android.annotation.FloatRange;
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
@@ -109,7 +110,7 @@ public final class AngleMeasurement implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
dest.writeDouble(mRadians);
|
dest.writeDouble(mRadians);
|
||||||
dest.writeDouble(mErrorRadians);
|
dest.writeDouble(mErrorRadians);
|
||||||
dest.writeDouble(mConfidenceLevel);
|
dest.writeDouble(mConfidenceLevel);
|
||||||
@@ -146,6 +147,7 @@ public final class AngleMeasurement implements Parcelable {
|
|||||||
* @param radians angle in radians
|
* @param radians angle in radians
|
||||||
* @throws IllegalArgumentException if angle exceeds allowed limits of [-Math.PI, +Math.PI]
|
* @throws IllegalArgumentException if angle exceeds allowed limits of [-Math.PI, +Math.PI]
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setRadians(double radians) {
|
public Builder setRadians(double radians) {
|
||||||
if (radians < -Math.PI || radians > Math.PI) {
|
if (radians < -Math.PI || radians > Math.PI) {
|
||||||
throw new IllegalArgumentException("Invalid radians: " + radians);
|
throw new IllegalArgumentException("Invalid radians: " + radians);
|
||||||
@@ -160,6 +162,7 @@ public final class AngleMeasurement implements Parcelable {
|
|||||||
* @param errorRadians error of the angle in radians
|
* @param errorRadians error of the angle in radians
|
||||||
* @throws IllegalArgumentException if the error exceeds the allowed limits of [0, +Math.PI]
|
* @throws IllegalArgumentException if the error exceeds the allowed limits of [0, +Math.PI]
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setErrorRadians(double errorRadians) {
|
public Builder setErrorRadians(double errorRadians) {
|
||||||
if (errorRadians < 0.0 || errorRadians > Math.PI) {
|
if (errorRadians < 0.0 || errorRadians > Math.PI) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
@@ -175,6 +178,7 @@ public final class AngleMeasurement implements Parcelable {
|
|||||||
* @param confidenceLevel level of confidence of the angle measurement
|
* @param confidenceLevel level of confidence of the angle measurement
|
||||||
* @throws IllegalArgumentException if the error exceeds the allowed limits of [0.0, 1.0]
|
* @throws IllegalArgumentException if the error exceeds the allowed limits of [0.0, 1.0]
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setConfidenceLevel(double confidenceLevel) {
|
public Builder setConfidenceLevel(double confidenceLevel) {
|
||||||
if (confidenceLevel < 0.0 || confidenceLevel > 1.0) {
|
if (confidenceLevel < 0.0 || confidenceLevel > 1.0) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
@@ -189,6 +193,7 @@ public final class AngleMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @throws IllegalStateException if angle, error, or confidence values are missing
|
* @throws IllegalStateException if angle, error, or confidence values are missing
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public AngleMeasurement build() {
|
public AngleMeasurement build() {
|
||||||
if (Double.isNaN(mRadians)) {
|
if (Double.isNaN(mRadians)) {
|
||||||
throw new IllegalStateException("Angle is not set");
|
throw new IllegalStateException("Angle is not set");
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
|
|||||||
* @return the azimuth {@link AngleMeasurement}
|
* @return the azimuth {@link AngleMeasurement}
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public AngleMeasurement getAzimuth() {
|
public AngleMeasurement getAzimuthAngleMeasurement() {
|
||||||
return mAzimuthAngleMeasurement;
|
return mAzimuthAngleMeasurement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
|
|||||||
* @return altitude {@link AngleMeasurement} or null when this is not available
|
* @return altitude {@link AngleMeasurement} or null when this is not available
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public AngleMeasurement getAltitude() {
|
public AngleMeasurement getAltitudeAngleMeasurement() {
|
||||||
return mAltitudeAngleMeasurement;
|
return mAltitudeAngleMeasurement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,8 +85,8 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
|
|||||||
|
|
||||||
if (obj instanceof AngleOfArrivalMeasurement) {
|
if (obj instanceof AngleOfArrivalMeasurement) {
|
||||||
AngleOfArrivalMeasurement other = (AngleOfArrivalMeasurement) obj;
|
AngleOfArrivalMeasurement other = (AngleOfArrivalMeasurement) obj;
|
||||||
return mAzimuthAngleMeasurement.equals(other.getAzimuth())
|
return mAzimuthAngleMeasurement.equals(other.getAzimuthAngleMeasurement())
|
||||||
&& mAltitudeAngleMeasurement.equals(other.getAltitude());
|
&& mAltitudeAngleMeasurement.equals(other.getAltitudeAngleMeasurement());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -105,7 +105,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
dest.writeParcelable(mAzimuthAngleMeasurement, flags);
|
dest.writeParcelable(mAzimuthAngleMeasurement, flags);
|
||||||
dest.writeParcelable(mAltitudeAngleMeasurement, flags);
|
dest.writeParcelable(mAltitudeAngleMeasurement, flags);
|
||||||
}
|
}
|
||||||
@@ -143,6 +143,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param azimuthAngle azimuth angle
|
* @param azimuthAngle azimuth angle
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setAzimuthAngleMeasurement(@NonNull AngleMeasurement azimuthAngle) {
|
public Builder setAzimuthAngleMeasurement(@NonNull AngleMeasurement azimuthAngle) {
|
||||||
mAzimuthAngleMeasurement = azimuthAngle;
|
mAzimuthAngleMeasurement = azimuthAngle;
|
||||||
return this;
|
return this;
|
||||||
@@ -153,6 +154,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param altitudeAngle altitude angle
|
* @param altitudeAngle altitude angle
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setAltitudeAngleMeasurement(@NonNull AngleMeasurement altitudeAngle) {
|
public Builder setAltitudeAngleMeasurement(@NonNull AngleMeasurement altitudeAngle) {
|
||||||
mAltitudeAngleMeasurement = altitudeAngle;
|
mAltitudeAngleMeasurement = altitudeAngle;
|
||||||
return this;
|
return this;
|
||||||
@@ -163,6 +165,7 @@ public final class AngleOfArrivalMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @throws IllegalStateException if the required azimuth angle is not provided
|
* @throws IllegalStateException if the required azimuth angle is not provided
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public AngleOfArrivalMeasurement build() {
|
public AngleOfArrivalMeasurement build() {
|
||||||
if (mAzimuthAngleMeasurement == null) {
|
if (mAzimuthAngleMeasurement == null) {
|
||||||
throw new IllegalStateException("Azimuth angle measurement is not set");
|
throw new IllegalStateException("Azimuth angle measurement is not set");
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.uwb;
|
package android.uwb;
|
||||||
|
|
||||||
import android.annotation.FloatRange;
|
import android.annotation.FloatRange;
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
@@ -106,7 +107,7 @@ public final class DistanceMeasurement implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
dest.writeDouble(mMeters);
|
dest.writeDouble(mMeters);
|
||||||
dest.writeDouble(mErrorMeters);
|
dest.writeDouble(mErrorMeters);
|
||||||
dest.writeDouble(mConfidenceLevel);
|
dest.writeDouble(mConfidenceLevel);
|
||||||
@@ -143,6 +144,7 @@ public final class DistanceMeasurement implements Parcelable {
|
|||||||
* @param meters distance in meters
|
* @param meters distance in meters
|
||||||
* @throws IllegalArgumentException if meters is NaN
|
* @throws IllegalArgumentException if meters is NaN
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setMeters(double meters) {
|
public Builder setMeters(double meters) {
|
||||||
if (Double.isNaN(meters)) {
|
if (Double.isNaN(meters)) {
|
||||||
throw new IllegalArgumentException("meters cannot be NaN");
|
throw new IllegalArgumentException("meters cannot be NaN");
|
||||||
@@ -157,6 +159,7 @@ public final class DistanceMeasurement implements Parcelable {
|
|||||||
* @param errorMeters distance error in meters
|
* @param errorMeters distance error in meters
|
||||||
* @throws IllegalArgumentException if error is negative or NaN
|
* @throws IllegalArgumentException if error is negative or NaN
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setErrorMeters(double errorMeters) {
|
public Builder setErrorMeters(double errorMeters) {
|
||||||
if (Double.isNaN(errorMeters) || errorMeters < 0.0) {
|
if (Double.isNaN(errorMeters) || errorMeters < 0.0) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
@@ -172,6 +175,7 @@ public final class DistanceMeasurement implements Parcelable {
|
|||||||
* @param confidenceLevel the confidence level in the distance measurement
|
* @param confidenceLevel the confidence level in the distance measurement
|
||||||
* @throws IllegalArgumentException if confidence level is not in the range of [0.0, 1.0]
|
* @throws IllegalArgumentException if confidence level is not in the range of [0.0, 1.0]
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setConfidenceLevel(double confidenceLevel) {
|
public Builder setConfidenceLevel(double confidenceLevel) {
|
||||||
if (confidenceLevel < 0.0 || confidenceLevel > 1.0) {
|
if (confidenceLevel < 0.0 || confidenceLevel > 1.0) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
@@ -186,6 +190,7 @@ public final class DistanceMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @throws IllegalStateException if meters, error, or confidence are not set
|
* @throws IllegalStateException if meters, error, or confidence are not set
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public DistanceMeasurement build() {
|
public DistanceMeasurement build() {
|
||||||
if (Double.isNaN(mMeters)) {
|
if (Double.isNaN(mMeters)) {
|
||||||
throw new IllegalStateException("Meters cannot be NaN");
|
throw new IllegalStateException("Meters cannot be NaN");
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
return mRemoteDeviceAddress;
|
return mRemoteDeviceAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef(value = {
|
@IntDef(value = {
|
||||||
RANGING_STATUS_SUCCESS,
|
RANGING_STATUS_SUCCESS,
|
||||||
@@ -115,7 +118,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
* {@link #RANGING_STATUS_SUCCESS}
|
* {@link #RANGING_STATUS_SUCCESS}
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public DistanceMeasurement getDistance() {
|
public DistanceMeasurement getDistanceMeasurement() {
|
||||||
return mDistanceMeasurement;
|
return mDistanceMeasurement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,7 +129,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
* {@link #RANGING_STATUS_SUCCESS}
|
* {@link #RANGING_STATUS_SUCCESS}
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public AngleOfArrivalMeasurement getAngleOfArrival() {
|
public AngleOfArrivalMeasurement getAngleOfArrivalMeasurement() {
|
||||||
return mAngleOfArrivalMeasurement;
|
return mAngleOfArrivalMeasurement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,8 +147,8 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
return mRemoteDeviceAddress.equals(other.getRemoteDeviceAddress())
|
return mRemoteDeviceAddress.equals(other.getRemoteDeviceAddress())
|
||||||
&& mStatus == other.getStatus()
|
&& mStatus == other.getStatus()
|
||||||
&& mElapsedRealtimeNanos == other.getElapsedRealtimeNanos()
|
&& mElapsedRealtimeNanos == other.getElapsedRealtimeNanos()
|
||||||
&& mDistanceMeasurement.equals(other.getDistance())
|
&& mDistanceMeasurement.equals(other.getDistanceMeasurement())
|
||||||
&& mAngleOfArrivalMeasurement.equals(other.getAngleOfArrival());
|
&& mAngleOfArrivalMeasurement.equals(other.getAngleOfArrivalMeasurement());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -165,7 +168,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
dest.writeParcelable(mRemoteDeviceAddress, flags);
|
dest.writeParcelable(mRemoteDeviceAddress, flags);
|
||||||
dest.writeInt(mStatus);
|
dest.writeInt(mStatus);
|
||||||
dest.writeLong(mElapsedRealtimeNanos);
|
dest.writeLong(mElapsedRealtimeNanos);
|
||||||
@@ -210,6 +213,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param remoteDeviceAddress remote device's address
|
* @param remoteDeviceAddress remote device's address
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setRemoteDeviceAddress(@NonNull UwbAddress remoteDeviceAddress) {
|
public Builder setRemoteDeviceAddress(@NonNull UwbAddress remoteDeviceAddress) {
|
||||||
mRemoteDeviceAddress = remoteDeviceAddress;
|
mRemoteDeviceAddress = remoteDeviceAddress;
|
||||||
return this;
|
return this;
|
||||||
@@ -220,6 +224,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param status the status of the ranging measurement
|
* @param status the status of the ranging measurement
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setStatus(@Status int status) {
|
public Builder setStatus(@Status int status) {
|
||||||
mStatus = status;
|
mStatus = status;
|
||||||
return this;
|
return this;
|
||||||
@@ -230,6 +235,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param elapsedRealtimeNanos time the ranging measurement occurred
|
* @param elapsedRealtimeNanos time the ranging measurement occurred
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setElapsedRealtimeNanos(long elapsedRealtimeNanos) {
|
public Builder setElapsedRealtimeNanos(long elapsedRealtimeNanos) {
|
||||||
if (elapsedRealtimeNanos < 0) {
|
if (elapsedRealtimeNanos < 0) {
|
||||||
throw new IllegalArgumentException("elapsedRealtimeNanos must be >= 0");
|
throw new IllegalArgumentException("elapsedRealtimeNanos must be >= 0");
|
||||||
@@ -243,6 +249,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param distanceMeasurement the distance measurement for this ranging measurement
|
* @param distanceMeasurement the distance measurement for this ranging measurement
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setDistanceMeasurement(@NonNull DistanceMeasurement distanceMeasurement) {
|
public Builder setDistanceMeasurement(@NonNull DistanceMeasurement distanceMeasurement) {
|
||||||
mDistanceMeasurement = distanceMeasurement;
|
mDistanceMeasurement = distanceMeasurement;
|
||||||
return this;
|
return this;
|
||||||
@@ -254,6 +261,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
* @param angleOfArrivalMeasurement the angle of arrival measurement for this ranging
|
* @param angleOfArrivalMeasurement the angle of arrival measurement for this ranging
|
||||||
* measurement
|
* measurement
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder setAngleOfArrivalMeasurement(
|
public Builder setAngleOfArrivalMeasurement(
|
||||||
@NonNull AngleOfArrivalMeasurement angleOfArrivalMeasurement) {
|
@NonNull AngleOfArrivalMeasurement angleOfArrivalMeasurement) {
|
||||||
mAngleOfArrivalMeasurement = angleOfArrivalMeasurement;
|
mAngleOfArrivalMeasurement = angleOfArrivalMeasurement;
|
||||||
@@ -268,6 +276,7 @@ public final class RangingMeasurement implements Parcelable {
|
|||||||
* elapsedRealtimeNanos of the measurement is invalid, or
|
* elapsedRealtimeNanos of the measurement is invalid, or
|
||||||
* if no remote device address is set
|
* if no remote device address is set
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public RangingMeasurement build() {
|
public RangingMeasurement build() {
|
||||||
if (mStatus != RANGING_STATUS_SUCCESS) {
|
if (mStatus != RANGING_STATUS_SUCCESS) {
|
||||||
if (mDistanceMeasurement != null) {
|
if (mDistanceMeasurement != null) {
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public final class RangingReport implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
dest.writeTypedList(mRangingMeasurements);
|
dest.writeTypedList(mRangingMeasurements);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,6 +113,7 @@ public final class RangingReport implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param rangingMeasurement a ranging measurement
|
* @param rangingMeasurement a ranging measurement
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder addMeasurement(@NonNull RangingMeasurement rangingMeasurement) {
|
public Builder addMeasurement(@NonNull RangingMeasurement rangingMeasurement) {
|
||||||
mMeasurements.add(rangingMeasurement);
|
mMeasurements.add(rangingMeasurement);
|
||||||
return this;
|
return this;
|
||||||
@@ -123,6 +124,7 @@ public final class RangingReport implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param rangingMeasurements {@link List} of {@link RangingMeasurement}s to add
|
* @param rangingMeasurements {@link List} of {@link RangingMeasurement}s to add
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public Builder addMeasurements(@NonNull List<RangingMeasurement> rangingMeasurements) {
|
public Builder addMeasurements(@NonNull List<RangingMeasurement> rangingMeasurements) {
|
||||||
mMeasurements.addAll(rangingMeasurements);
|
mMeasurements.addAll(rangingMeasurements);
|
||||||
return this;
|
return this;
|
||||||
@@ -133,6 +135,7 @@ public final class RangingReport implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @throws IllegalStateException if measurements are not in monotonically increasing order
|
* @throws IllegalStateException if measurements are not in monotonically increasing order
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
public RangingReport build() {
|
public RangingReport build() {
|
||||||
// Verify that all measurement timestamps are monotonically increasing
|
// Verify that all measurement timestamps are monotonically increasing
|
||||||
RangingMeasurement prevMeasurement = null;
|
RangingMeasurement prevMeasurement = null;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.uwb;
|
package android.uwb;
|
||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -50,8 +51,11 @@ public final class RangingSession implements AutoCloseable {
|
|||||||
* @param session the newly opened {@link RangingSession}
|
* @param session the newly opened {@link RangingSession}
|
||||||
* @param sessionInfo session specific parameters from lower layers
|
* @param sessionInfo session specific parameters from lower layers
|
||||||
*/
|
*/
|
||||||
void onOpenSuccess(RangingSession session, PersistableBundle sessionInfo);
|
void onOpenSuccess(@NonNull RangingSession session, @NonNull PersistableBundle sessionInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef(value = {
|
@IntDef(value = {
|
||||||
CLOSE_REASON_UNKNOWN,
|
CLOSE_REASON_UNKNOWN,
|
||||||
@@ -125,7 +129,7 @@ public final class RangingSession implements AutoCloseable {
|
|||||||
*
|
*
|
||||||
* @param rangingReport ranging report for this interval's measurements
|
* @param rangingReport ranging report for this interval's measurements
|
||||||
*/
|
*/
|
||||||
void onReportReceived(RangingReport rangingReport);
|
void onReportReceived(@NonNull RangingReport rangingReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public final class UwbAddress implements Parcelable {
|
|||||||
* {@link #SHORT_ADDRESS_BYTE_LENGTH} or {@link #EXTENDED_ADDRESS_BYTE_LENGTH} bytes
|
* {@link #SHORT_ADDRESS_BYTE_LENGTH} or {@link #EXTENDED_ADDRESS_BYTE_LENGTH} bytes
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public static UwbAddress fromBytes(@NonNull byte[] address) throws IllegalArgumentException {
|
public static UwbAddress fromBytes(@NonNull byte[] address) {
|
||||||
if (address.length != SHORT_ADDRESS_BYTE_LENGTH
|
if (address.length != SHORT_ADDRESS_BYTE_LENGTH
|
||||||
&& address.length != EXTENDED_ADDRESS_BYTE_LENGTH) {
|
&& address.length != EXTENDED_ADDRESS_BYTE_LENGTH) {
|
||||||
throw new IllegalArgumentException("Invalid UwbAddress length " + address.length);
|
throw new IllegalArgumentException("Invalid UwbAddress length " + address.length);
|
||||||
@@ -107,7 +107,7 @@ public final class UwbAddress implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
dest.writeInt(mAddressBytes.length);
|
dest.writeInt(mAddressBytes.length);
|
||||||
dest.writeByteArray(mAddressBytes);
|
dest.writeByteArray(mAddressBytes);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,9 @@ public final class UwbManager {
|
|||||||
* Interface for receiving UWB adapter state changes
|
* Interface for receiving UWB adapter state changes
|
||||||
*/
|
*/
|
||||||
public interface AdapterStateCallback {
|
public interface AdapterStateCallback {
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef(value = {
|
@IntDef(value = {
|
||||||
STATE_CHANGED_REASON_SESSION_STARTED,
|
STATE_CHANGED_REASON_SESSION_STARTED,
|
||||||
@@ -195,6 +198,9 @@ public final class UwbManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef(value = {
|
@IntDef(value = {
|
||||||
ANGLE_OF_ARRIVAL_SUPPORT_TYPE_NONE,
|
ANGLE_OF_ARRIVAL_SUPPORT_TYPE_NONE,
|
||||||
@@ -387,7 +393,7 @@ public final class UwbManager {
|
|||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public AutoCloseable openRangingSession(@NonNull PersistableBundle parameters,
|
public AutoCloseable openRangingSession(@NonNull PersistableBundle parameters,
|
||||||
@NonNull Executor executor,
|
@NonNull @CallbackExecutor Executor executor,
|
||||||
@NonNull RangingSession.Callback callbacks) {
|
@NonNull RangingSession.Callback callbacks) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,8 +48,8 @@ public class AngleOfArrivalMeasurementTest {
|
|||||||
builder.setAzimuthAngleMeasurement(azimuth);
|
builder.setAzimuthAngleMeasurement(azimuth);
|
||||||
AngleOfArrivalMeasurement measurement = tryBuild(builder, true);
|
AngleOfArrivalMeasurement measurement = tryBuild(builder, true);
|
||||||
|
|
||||||
assertEquals(azimuth, measurement.getAzimuth());
|
assertEquals(azimuth, measurement.getAzimuthAngleMeasurement());
|
||||||
assertEquals(altitude, measurement.getAltitude());
|
assertEquals(altitude, measurement.getAltitudeAngleMeasurement());
|
||||||
}
|
}
|
||||||
|
|
||||||
private AngleMeasurement getAngleMeasurement(double radian, double error, double confidence) {
|
private AngleMeasurement getAngleMeasurement(double radian, double error, double confidence) {
|
||||||
|
|||||||
@@ -63,8 +63,8 @@ public class RangingMeasurementTest {
|
|||||||
assertEquals(status, measurement.getStatus());
|
assertEquals(status, measurement.getStatus());
|
||||||
assertEquals(address, measurement.getRemoteDeviceAddress());
|
assertEquals(address, measurement.getRemoteDeviceAddress());
|
||||||
assertEquals(time, measurement.getElapsedRealtimeNanos());
|
assertEquals(time, measurement.getElapsedRealtimeNanos());
|
||||||
assertEquals(angleMeasurement, measurement.getAngleOfArrival());
|
assertEquals(angleMeasurement, measurement.getAngleOfArrivalMeasurement());
|
||||||
assertEquals(distanceMeasurement, measurement.getDistance());
|
assertEquals(distanceMeasurement, measurement.getDistanceMeasurement());
|
||||||
}
|
}
|
||||||
|
|
||||||
private RangingMeasurement tryBuild(RangingMeasurement.Builder builder,
|
private RangingMeasurement tryBuild(RangingMeasurement.Builder builder,
|
||||||
|
|||||||
Reference in New Issue
Block a user