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

Commit b14e54e4 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Handle null identity address in SdpManager" into main am: c4b770ab am: 77247dd1

parents b5a322d6 77247dd1
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)) {