summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Sharkey <jsharkey@google.com> 2017-04-29 17:11:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-04-29 17:11:39 +0000
commit0a482bda218138c6f2c03da6a374f16b8f92061d (patch)
tree2220efc827eac1c5b01398c5276d17c2b25e268f
parent48c0dc6c4b1a80ea134164a9acd791593f55aed6 (diff)
parent20bd9fc81e32cafc86f3972b182b65ebdf5b1999 (diff)
Merge "API fixes for Companion renaming" into oc-dev
-rw-r--r--api/current.txt2
-rw-r--r--api/system-current.txt2
-rw-r--r--api/test-current.txt2
-rw-r--r--core/java/android/companion/BluetoothLeDeviceFilter.java73
4 files changed, 41 insertions, 38 deletions
diff --git a/api/current.txt b/api/current.txt
index 3519707c9089..206eeffce96c 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -8284,7 +8284,7 @@ package android.companion {
method public android.companion.BluetoothLeDeviceFilter build();
method public android.companion.BluetoothLeDeviceFilter.Builder setNamePattern(java.util.regex.Pattern);
method public android.companion.BluetoothLeDeviceFilter.Builder setRawDataFilter(byte[], byte[]);
- method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(java.lang.String, java.lang.String, int, int, boolean);
+ method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(java.lang.String, java.lang.String, int, int, java.nio.ByteOrder);
method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromName(java.lang.String, java.lang.String, int, int);
method public android.companion.BluetoothLeDeviceFilter.Builder setScanFilter(android.bluetooth.le.ScanFilter);
}
diff --git a/api/system-current.txt b/api/system-current.txt
index 390f66ed2f90..22c8cd3c1a3c 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -8785,7 +8785,7 @@ package android.companion {
method public android.companion.BluetoothLeDeviceFilter build();
method public android.companion.BluetoothLeDeviceFilter.Builder setNamePattern(java.util.regex.Pattern);
method public android.companion.BluetoothLeDeviceFilter.Builder setRawDataFilter(byte[], byte[]);
- method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(java.lang.String, java.lang.String, int, int, boolean);
+ method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(java.lang.String, java.lang.String, int, int, java.nio.ByteOrder);
method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromName(java.lang.String, java.lang.String, int, int);
method public android.companion.BluetoothLeDeviceFilter.Builder setScanFilter(android.bluetooth.le.ScanFilter);
}
diff --git a/api/test-current.txt b/api/test-current.txt
index bd1e7b095de5..98ee73f3b7a8 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -8315,7 +8315,7 @@ package android.companion {
method public android.companion.BluetoothLeDeviceFilter build();
method public android.companion.BluetoothLeDeviceFilter.Builder setNamePattern(java.util.regex.Pattern);
method public android.companion.BluetoothLeDeviceFilter.Builder setRawDataFilter(byte[], byte[]);
- method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(java.lang.String, java.lang.String, int, int, boolean);
+ method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromBytes(java.lang.String, java.lang.String, int, int, java.nio.ByteOrder);
method public android.companion.BluetoothLeDeviceFilter.Builder setRenameFromName(java.lang.String, java.lang.String, int, int);
method public android.companion.BluetoothLeDeviceFilter.Builder setScanFilter(android.bluetooth.le.ScanFilter);
}
diff --git a/core/java/android/companion/BluetoothLeDeviceFilter.java b/core/java/android/companion/BluetoothLeDeviceFilter.java
index 7a9ba1c3f402..7fb768c67386 100644
--- a/core/java/android/companion/BluetoothLeDeviceFilter.java
+++ b/core/java/android/companion/BluetoothLeDeviceFilter.java
@@ -38,6 +38,7 @@ import com.android.internal.util.BitUtils;
import com.android.internal.util.ObjectUtils;
import com.android.internal.util.Preconditions;
+import java.nio.ByteOrder;
import java.util.Arrays;
import java.util.Objects;
import java.util.regex.Pattern;
@@ -61,15 +62,15 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
private final String mRenamePrefix;
private final String mRenameSuffix;
private final int mRenameBytesFrom;
- private final int mRenameBytesTo;
+ private final int mRenameBytesLength;
private final int mRenameNameFrom;
- private final int mRenameNameTo;
+ private final int mRenameNameLength;
private final boolean mRenameBytesReverseOrder;
private BluetoothLeDeviceFilter(Pattern namePattern, ScanFilter scanFilter,
byte[] rawDataFilter, byte[] rawDataFilterMask, String renamePrefix,
- String renameSuffix, int renameBytesFrom, int renameBytesTo,
- int renameNameFrom, int renameNameTo, boolean renameBytesReverseOrder) {
+ String renameSuffix, int renameBytesFrom, int renameBytesLength,
+ int renameNameFrom, int renameNameLength, boolean renameBytesReverseOrder) {
mNamePattern = namePattern;
mScanFilter = ObjectUtils.firstNotNull(scanFilter, ScanFilter.EMPTY);
mRawDataFilter = rawDataFilter;
@@ -77,9 +78,9 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
mRenamePrefix = renamePrefix;
mRenameSuffix = renameSuffix;
mRenameBytesFrom = renameBytesFrom;
- mRenameBytesTo = renameBytesTo;
+ mRenameBytesLength = renameBytesLength;
mRenameNameFrom = renameNameFrom;
- mRenameNameTo = renameNameTo;
+ mRenameNameLength = renameNameLength;
mRenameBytesReverseOrder = renameBytesReverseOrder;
}
@@ -125,8 +126,8 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
}
/** @hide */
- public int getRenameBytesTo() {
- return mRenameBytesTo;
+ public int getRenameBytesLength() {
+ return mRenameBytesLength;
}
/** @hide */
@@ -145,7 +146,7 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
if (mRenameBytesFrom >= 0) {
final byte[] bytes = sr.getScanRecord().getBytes();
int startInclusive = mRenameBytesFrom;
- int endInclusive = mRenameBytesTo - 1;
+ int endInclusive = mRenameBytesFrom + mRenameBytesLength -1;
int initial = mRenameBytesReverseOrder ? endInclusive : startInclusive;
int step = mRenameBytesReverseOrder ? -1 : 1;
for (int i = initial; startInclusive <= i && i <= endInclusive; i += step) {
@@ -154,7 +155,7 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
} else {
sb.append(
getDeviceDisplayNameInternal(sr.getDevice())
- .substring(mRenameNameFrom, mRenameNameTo));
+ .substring(mRenameNameFrom, mRenameNameFrom + mRenameNameLength));
}
return sb.append(TextUtils.emptyIfNull(mRenameSuffix)).toString();
}
@@ -188,7 +189,9 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
if (o == null || getClass() != o.getClass()) return false;
BluetoothLeDeviceFilter that = (BluetoothLeDeviceFilter) o;
return mRenameBytesFrom == that.mRenameBytesFrom &&
- mRenameBytesTo == that.mRenameBytesTo &&
+ mRenameBytesLength == that.mRenameBytesLength &&
+ mRenameNameFrom == that.mRenameNameFrom &&
+ mRenameNameLength == that.mRenameNameLength &&
mRenameBytesReverseOrder == that.mRenameBytesReverseOrder &&
Objects.equals(mNamePattern, that.mNamePattern) &&
Objects.equals(mScanFilter, that.mScanFilter) &&
@@ -201,8 +204,8 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
@Override
public int hashCode() {
return Objects.hash(mNamePattern, mScanFilter, mRawDataFilter, mRawDataFilterMask,
- mRenamePrefix, mRenameSuffix, mRenameBytesFrom, mRenameBytesTo,
- mRenameBytesReverseOrder);
+ mRenamePrefix, mRenameSuffix, mRenameBytesFrom, mRenameBytesLength,
+ mRenameNameFrom, mRenameNameLength, mRenameBytesReverseOrder);
}
@Override
@@ -214,9 +217,9 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
dest.writeString(mRenamePrefix);
dest.writeString(mRenameSuffix);
dest.writeInt(mRenameBytesFrom);
- dest.writeInt(mRenameBytesTo);
+ dest.writeInt(mRenameBytesLength);
dest.writeInt(mRenameNameFrom);
- dest.writeInt(mRenameNameTo);
+ dest.writeInt(mRenameNameLength);
dest.writeBoolean(mRenameBytesReverseOrder);
}
@@ -235,9 +238,9 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
", mRenamePrefix='" + mRenamePrefix + '\'' +
", mRenameSuffix='" + mRenameSuffix + '\'' +
", mRenameBytesFrom=" + mRenameBytesFrom +
- ", mRenameBytesTo=" + mRenameBytesTo +
+ ", mRenameBytesLength=" + mRenameBytesLength +
", mRenameNameFrom=" + mRenameNameFrom +
- ", mRenameNameTo=" + mRenameNameTo +
+ ", mRenameNameLength=" + mRenameNameLength +
", mRenameBytesReverseOrder=" + mRenameBytesReverseOrder +
'}';
}
@@ -264,7 +267,7 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
if (renamePrefix != null) {
if (bytesFrom >= 0) {
builder.setRenameFromBytes(renamePrefix, suffix, bytesFrom, bytesTo,
- bytesReverseOrder);
+ bytesReverseOrder ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN);
} else {
builder.setRenameFromName(renamePrefix, suffix, nameFrom, nameTo);
}
@@ -293,9 +296,9 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
private String mRenamePrefix;
private String mRenameSuffix;
private int mRenameBytesFrom = -1;
- private int mRenameBytesTo;
+ private int mRenameBytesLength;
private int mRenameNameFrom = -1;
- private int mRenameNameTo;
+ private int mRenameNameLength;
private boolean mRenameBytesReverseOrder = false;
/**
@@ -355,19 +358,19 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
* @param prefix to be displayed before the byte data
* @param suffix to be displayed after the byte data
* @param bytesFrom the start byte index to be displayed (inclusive)
- * @param bytesTo the end byte index to be displayed (exclusive)
- * @param bytesReverseOrder if true, the byte order of the provided range will be flipped
- * when displaying
+ * @param bytesLength the number of bytes to be displayed from the given index
+ * @param byteOrder whether the given range of bytes is big endian (will be displayed
+ * in same order) or little endian (will be flipped before displaying)
* @return self for chaining
*/
@NonNull
public Builder setRenameFromBytes(@NonNull String prefix, @NonNull String suffix,
- int bytesFrom, int bytesTo, boolean bytesReverseOrder) {
+ int bytesFrom, int bytesLength, ByteOrder byteOrder) {
checkRenameNotSet();
- checkRangeNotEmpty(bytesFrom, bytesTo);
+ checkRangeNotEmpty(bytesLength);
mRenameBytesFrom = bytesFrom;
- mRenameBytesTo = bytesTo;
- mRenameBytesReverseOrder = bytesReverseOrder;
+ mRenameBytesLength = bytesLength;
+ mRenameBytesReverseOrder = byteOrder == ByteOrder.LITTLE_ENDIAN;
return setRename(prefix, suffix);
}
@@ -383,16 +386,16 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
* @param prefix to be displayed before the byte data
* @param suffix to be displayed after the byte data
* @param nameFrom the start name character index to be displayed (inclusive)
- * @param nameTo the end name character index to be displayed (exclusive)
+ * @param nameLength the number of characters to be displayed from the given index
* @return self for chaining
*/
@NonNull
public Builder setRenameFromName(@NonNull String prefix, @NonNull String suffix,
- int nameFrom, int nameTo) {
+ int nameFrom, int nameLength) {
checkRenameNotSet();
- checkRangeNotEmpty(nameFrom, nameTo);
+ checkRangeNotEmpty(nameLength);
mRenameNameFrom = nameFrom;
- mRenameNameTo = nameTo;
+ mRenameNameLength = nameLength;
mRenameBytesReverseOrder = false;
return setRename(prefix, suffix);
}
@@ -401,8 +404,8 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
checkState(mRenamePrefix == null, "Renaming rule can only be set once");
}
- private void checkRangeNotEmpty(int bytesFrom, int bytesTo) {
- checkArgument(bytesFrom < bytesTo, "Range must be non-empty");
+ private void checkRangeNotEmpty(int length) {
+ checkArgument(length > 0, "Range must be non-empty");
}
@NonNull
@@ -423,8 +426,8 @@ public final class BluetoothLeDeviceFilter implements DeviceFilter<ScanResult> {
return new BluetoothLeDeviceFilter(mNamePattern, mScanFilter,
mRawDataFilter, mRawDataFilterMask,
mRenamePrefix, mRenameSuffix,
- mRenameBytesFrom, mRenameBytesTo,
- mRenameNameFrom, mRenameNameTo,
+ mRenameBytesFrom, mRenameBytesLength,
+ mRenameNameFrom, mRenameNameLength,
mRenameBytesReverseOrder);
}
}