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

Commit c4b770ab authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Handle null identity address in SdpManager" into main

parents 85d7dce7 fc71f20f
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -224,6 +224,18 @@ public final class Utils {
        return String.format("XX:XX:XX:XX:%02X:%02X", address[4], address[5]);
    }

    /**
     * Returns the correct device address to be used for connections over BR/EDR transport.
     *
     * @param address the device address for which to obtain the connection address
     * @param service the adapter service to make the identity address retrieval call
     * @return either identity address or device address in String format
     */
    public static String getBrEdrAddress(String address, AdapterService service) {
        String identity = service.getIdentityAddress(address);
        return identity != null ? identity : address;
    }

    /**
     * Returns the correct device address to be used for connections over BR/EDR transport.
     *
+14 −4
Original line number Diff line number Diff line
@@ -143,11 +143,16 @@ public class SdpManager {

        SdpSearchInstance getSearchInstance(byte[] address, byte[] uuidBytes) {
            String addressString = Utils.getAddressStringFromByte(address);
            addressString = mAdapterService.getIdentityAddress(addressString);
            addressString =
                    Flags.identityAddressNullIfUnknown()
                            ? Utils.getBrEdrAddress(addressString, mAdapterService)
                            : mAdapterService.getIdentityAddress(addressString);
            ParcelUuid uuid = Utils.byteArrayToUuid(uuidBytes)[0];
            for (SdpSearchInstance inst : mList) {
                String instAddressString =
                        mAdapterService.getIdentityAddress(inst.getDevice().getAddress());
                        Flags.identityAddressNullIfUnknown()
                                ? Utils.getBrEdrAddress(inst.getDevice(), mAdapterService)
                                : mAdapterService.getIdentityAddress(inst.getDevice().getAddress());
                if (instAddressString.equals(addressString) && inst.getUuid().equals(uuid)) {
                    return inst;
                }
@@ -156,10 +161,15 @@ public class SdpManager {
        }

        boolean isSearching(BluetoothDevice device, ParcelUuid uuid) {
            String addressString = mAdapterService.getIdentityAddress(device.getAddress());
            String addressString =
                    Flags.identityAddressNullIfUnknown()
                            ? Utils.getBrEdrAddress(device, mAdapterService)
                            : mAdapterService.getIdentityAddress(device.getAddress());
            for (SdpSearchInstance inst : mList) {
                String instAddressString =
                        mAdapterService.getIdentityAddress(inst.getDevice().getAddress());
                        Flags.identityAddressNullIfUnknown()
                                ? Utils.getBrEdrAddress(inst.getDevice(), mAdapterService)
                                : mAdapterService.getIdentityAddress(inst.getDevice().getAddress());
                if (instAddressString != null
                        && instAddressString.equals(addressString)
                        && inst.getUuid().equals(uuid)) {