Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3809d97a authored by Etienne Ruffieux's avatar Etienne Ruffieux
Browse files

Replaced BitUtils#maskedEquals hidden API call

Added maskedEquals method to BluetoothLeUtils to prevent
hidden API usage.

Tag: #feature
bug: 200200870
Test: Manual
Change-Id: I7517cfef0b9e058e36d8d325f4a5ec653b1f804b
parent 40f60139
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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());
    }
}
+2 −4
Original line number Diff line number Diff line
@@ -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.