diff options
| author | 2017-04-29 17:11:35 +0000 | |
|---|---|---|
| committer | 2017-04-29 17:11:39 +0000 | |
| commit | 0a482bda218138c6f2c03da6a374f16b8f92061d (patch) | |
| tree | 2220efc827eac1c5b01398c5276d17c2b25e268f | |
| parent | 48c0dc6c4b1a80ea134164a9acd791593f55aed6 (diff) | |
| parent | 20bd9fc81e32cafc86f3972b182b65ebdf5b1999 (diff) | |
Merge "API fixes for Companion renaming" into oc-dev
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/companion/BluetoothLeDeviceFilter.java | 73 |
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); } } |