Remove autovalue usage from BluetoothGattHelper.
Test: covered by existing unit tests.
Bug: 204409421
Change-Id: I727f069739c8d59e96aec5bfbfe60275b37dad71
diff --git a/nearby/service/java/com/android/server/nearby/common/bluetooth/gatt/BluetoothGattHelper.java b/nearby/service/java/com/android/server/nearby/common/bluetooth/gatt/BluetoothGattHelper.java
index 8eb96ff..170afd1 100644
--- a/nearby/service/java/com/android/server/nearby/common/bluetooth/gatt/BluetoothGattHelper.java
+++ b/nearby/service/java/com/android/server/nearby/common/bluetooth/gatt/BluetoothGattHelper.java
@@ -38,12 +38,12 @@
import com.android.server.nearby.common.bluetooth.util.BluetoothOperationExecutor.BluetoothOperationTimeoutException;
import com.android.server.nearby.common.bluetooth.util.BluetoothOperationExecutor.Operation;
-import com.google.auto.value.AutoValue;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import java.util.Arrays;
import java.util.Locale;
+import java.util.Objects;
+import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -543,22 +543,67 @@
/**
* Options for {@link #connect}.
*/
- @AutoValue
- public abstract static class ConnectionOptions {
+ public static class ConnectionOptions {
- abstract boolean autoConnect();
+ private boolean mAutoConnect;
+ private long mConnectionTimeoutMillis;
+ private Optional<Integer> mConnectionPriority;
+ private Optional<Integer> mMtu;
- abstract long connectionTimeoutMillis();
+ private ConnectionOptions(boolean autoConnect, long connectionTimeoutMillis,
+ Optional<Integer> connectionPriority,
+ Optional<Integer> mtu) {
+ this.mAutoConnect = autoConnect;
+ this.mConnectionTimeoutMillis = connectionTimeoutMillis;
+ this.mConnectionPriority = connectionPriority;
+ this.mMtu = mtu;
+ }
- abstract Optional<Integer> connectionPriority();
+ boolean autoConnect() {
+ return mAutoConnect;
+ }
- abstract Optional<Integer> mtu();
+ long connectionTimeoutMillis() {
+ return mConnectionTimeoutMillis;
+ }
+
+ Optional<Integer> connectionPriority() {
+ return mConnectionPriority;
+ }
+
+ Optional<Integer> mtu() {
+ return mMtu;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null) {
+ return false;
+ }
+ if (!(o instanceof ConnectionOptions)) {
+ return false;
+ }
+ ConnectionOptions oc = (ConnectionOptions) o;
+
+ return (this.autoConnect() == oc.autoConnect()
+ && this.connectionTimeoutMillis() == oc.connectionTimeoutMillis()
+ && this.connectionPriority().equals(oc.connectionPriority())
+ && this.mtu().equals(oc.mtu()));
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mAutoConnect, mConnectionTimeoutMillis, mConnectionPriority, mMtu);
+ }
/**
* Creates a builder of ConnectionOptions.
*/
public static Builder builder() {
- return new AutoValue_BluetoothGattHelper_ConnectionOptions.Builder()
+ return new ConnectionOptions.Builder()
.setAutoConnect(false)
.setConnectionTimeoutMillis(TimeUnit.SECONDS.toMillis(5));
}
@@ -566,33 +611,52 @@
/**
* Builder for {@link ConnectionOptions}.
*/
- @AutoValue.Builder
- public abstract static class Builder {
+ public static class Builder {
+
+ private boolean mAutoConnect;
+ private long mConnectionTimeoutMillis;
+ private Optional<Integer> mConnectionPriority = Optional.empty();
+ private Optional<Integer> mMtu = Optional.empty();
/**
* See {@link android.bluetooth.BluetoothDevice#connectGatt}.
*/
- public abstract Builder setAutoConnect(boolean autoConnect);
+ public Builder setAutoConnect(boolean autoConnect) {
+ this.mAutoConnect = autoConnect;
+ return this;
+ }
/**
* See {@link android.bluetooth.BluetoothGatt#requestConnectionPriority(int)}.
*/
- public abstract Builder setConnectionPriority(int connectionPriority);
+ public Builder setConnectionPriority(int connectionPriority) {
+ this.mConnectionPriority = Optional.of(connectionPriority);
+ return this;
+ }
/**
* See {@link android.bluetooth.BluetoothGatt#requestMtu(int)}.
*/
- public abstract Builder setMtu(int mtu);
+ public Builder setMtu(int mtu) {
+ this.mMtu = Optional.of(mtu);
+ return this;
+ }
/**
* Sets the timeout for the GATT connection.
*/
- public abstract Builder setConnectionTimeoutMillis(long connectionTimeoutMillis);
+ public Builder setConnectionTimeoutMillis(long connectionTimeoutMillis) {
+ this.mConnectionTimeoutMillis = connectionTimeoutMillis;
+ return this;
+ }
/**
* Builds ConnectionOptions.
*/
- public abstract ConnectionOptions build();
+ public ConnectionOptions build() {
+ return new ConnectionOptions(mAutoConnect, mConnectionTimeoutMillis,
+ mConnectionPriority, mMtu);
+ }
}
}
}