diff options
| author | Treehugger Robot <treehugger-gerrit@google.com> | 2021-10-25 18:32:12 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-10-25 18:32:12 +0000 |
| commit | da36475d1526d35e18a18ee5f77e8da366e0b5e7 (patch) | |
| tree | 4953ea7f4cb744f80f831cc6a1cb93d5e3d068e9 /framework/java | |
| parent | 414ed02c1e153dec0a3c74f8a37a090f7b62d3d9 (diff) | |
| parent | eec2ebdc6b33798fb3799d998ca1ea5469fe6e8d (diff) | |
Merge "Replaced BitUtils#maskedEquals hidden API call" am: 9dbdb46fac am: f1d8cbb46c am: eec2ebdc6b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1868764
Change-Id: Id7eaef10ca6740681567e31dbc7019163139d7b3
Diffstat (limited to 'framework/java')
| -rw-r--r-- | framework/java/android/bluetooth/le/BluetoothLeUtils.java | 18 | ||||
| -rw-r--r-- | framework/java/android/bluetooth/le/ScanFilter.java | 6 |
2 files changed, 20 insertions, 4 deletions
diff --git a/framework/java/android/bluetooth/le/BluetoothLeUtils.java b/framework/java/android/bluetooth/le/BluetoothLeUtils.java index 6381f557c1..ed50b09597 100644 --- a/framework/java/android/bluetooth/le/BluetoothLeUtils.java +++ b/framework/java/android/bluetooth/le/BluetoothLeUtils.java @@ -24,6 +24,7 @@ import java.util.Iterator; import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.UUID; /** * Helper class for Bluetooth LE utils. @@ -137,4 +138,21 @@ public class BluetoothLeUtils { } } + /** + * Compares two UUIDs with a UUID mask. + * + * @param data first {@link #UUID} to compare. + * @param uuid second {@link #UUID} to compare. + * @param mask mask {@link #UUID}. + * @return true if both UUIDs are equals when masked, false otherwise. + */ + static boolean maskedEquals(UUID data, UUID uuid, UUID mask) { + if (mask == null) { + return Objects.equals(data, uuid); + } + return (data.getLeastSignificantBits() & mask.getLeastSignificantBits()) + == (uuid.getLeastSignificantBits() & mask.getLeastSignificantBits()) + && (data.getMostSignificantBits() & mask.getMostSignificantBits()) + == (uuid.getMostSignificantBits() & mask.getMostSignificantBits()); + } } diff --git a/framework/java/android/bluetooth/le/ScanFilter.java b/framework/java/android/bluetooth/le/ScanFilter.java index 8ff018121a..b059193ae0 100644 --- a/framework/java/android/bluetooth/le/ScanFilter.java +++ b/framework/java/android/bluetooth/le/ScanFilter.java @@ -28,8 +28,6 @@ import android.os.Parcel; import android.os.ParcelUuid; import android.os.Parcelable; -import com.android.internal.util.BitUtils; - import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -448,7 +446,7 @@ public final class ScanFilter implements Parcelable { // Check if the uuid pattern matches the particular service uuid. private static boolean matchesServiceUuid(UUID uuid, UUID mask, UUID data) { - return BitUtils.maskedEquals(data, uuid, mask); + return BluetoothLeUtils.maskedEquals(data, uuid, mask); } /** @@ -478,7 +476,7 @@ public final class ScanFilter implements Parcelable { // Check if the solicitation uuid pattern matches the particular service solicitation uuid. private static boolean matchesServiceSolicitationUuid(UUID solicitationUuid, UUID solicitationUuidMask, UUID data) { - return BitUtils.maskedEquals(data, solicitationUuid, solicitationUuidMask); + return BluetoothLeUtils.maskedEquals(data, solicitationUuid, solicitationUuidMask); } // Check whether the data pattern matches the parsed data. |
