aboutsummaryrefslogtreecommitdiff
path: root/framework/java
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2021-10-25 18:32:12 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-10-25 18:32:12 +0000
commitda36475d1526d35e18a18ee5f77e8da366e0b5e7 (patch)
tree4953ea7f4cb744f80f831cc6a1cb93d5e3d068e9 /framework/java
parent414ed02c1e153dec0a3c74f8a37a090f7b62d3d9 (diff)
parenteec2ebdc6b33798fb3799d998ca1ea5469fe6e8d (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.java18
-rw-r--r--framework/java/android/bluetooth/le/ScanFilter.java6
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.