Merge "Replaced BitUtils#maskedEquals hidden API call" am: 3d4a7e57fe

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1868764

Change-Id: I372ed61007b38bdc82f92d7e7f42a6f62f004961
This commit is contained in:
Treehugger Robot
2021-10-25 17:56:47 +00:00
committed by Automerger Merge Worker
2 changed files with 20 additions and 4 deletions

View File

@@ -24,6 +24,7 @@ import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.UUID;
/** /**
* Helper class for Bluetooth LE utils. * 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());
}
} }

View File

@@ -28,8 +28,6 @@ import android.os.Parcel;
import android.os.ParcelUuid; import android.os.ParcelUuid;
import android.os.Parcelable; import android.os.Parcelable;
import com.android.internal.util.BitUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -448,7 +446,7 @@ public final class ScanFilter implements Parcelable {
// Check if the uuid pattern matches the particular service uuid. // Check if the uuid pattern matches the particular service uuid.
private static boolean matchesServiceUuid(UUID uuid, UUID mask, UUID data) { 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. // Check if the solicitation uuid pattern matches the particular service solicitation uuid.
private static boolean matchesServiceSolicitationUuid(UUID solicitationUuid, private static boolean matchesServiceSolicitationUuid(UUID solicitationUuid,
UUID solicitationUuidMask, UUID data) { 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. // Check whether the data pattern matches the parsed data.