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

Commit 2ade3f3f authored by Zach Johnson's avatar Zach Johnson
Browse files

Simplify metadata listener registration & unregistration

Bug: 145171640
Test: compile & run
Change-Id: I7076c1e05b3a63d115ac6c5d7eb696c8d40a2060
parent 78b26bd6
Loading
Loading
Loading
Loading
+22 −30
Original line number Diff line number Diff line
@@ -2040,7 +2040,20 @@ public class AdapterService extends Service {
            if (service == null) {
                return false;
            }
            return service.registerMetadataListener(listener, device);

            if (service.mMetadataListeners == null) {
                return false;
            }
            ArrayList<IBluetoothMetadataListener> list = service.mMetadataListeners.get(device);
            if (list == null) {
                list = new ArrayList<>();
            } else if (list.contains(listener)) {
                // The device is already registered with this listener
                return true;
            }
            list.add(listener);
            service.mMetadataListeners.put(device, list);
            return true;
        }

        @Override
@@ -2049,7 +2062,14 @@ public class AdapterService extends Service {
            if (service == null) {
                return false;
            }
            return service.unregisterMetadataListener(device);

            if (service.mMetadataListeners == null) {
                return false;
            }
            if (service.mMetadataListeners.containsKey(device)) {
                service.mMetadataListeners.remove(device);
            }
            return true;
        }

        @Override
@@ -2880,34 +2900,6 @@ public class AdapterService extends Service {
                + ctrlState + "traffic = " + Arrays.toString(data));
    }

    boolean registerMetadataListener(IBluetoothMetadataListener listener,
            BluetoothDevice device) {
        if (mMetadataListeners == null) {
            return false;
        }

        ArrayList<IBluetoothMetadataListener> list = mMetadataListeners.get(device);
        if (list == null) {
            list = new ArrayList<>();
        } else if (list.contains(listener)) {
            // The device is already registered with this listener
            return true;
        }
        list.add(listener);
        mMetadataListeners.put(device, list);
        return true;
    }

    boolean unregisterMetadataListener(BluetoothDevice device) {
        if (mMetadataListeners == null) {
            return false;
        }
        if (mMetadataListeners.containsKey(device)) {
            mMetadataListeners.remove(device);
        }
        return true;
    }

    boolean setMetadata(BluetoothDevice device, int key, byte[] value) {
        if (value.length > BluetoothDevice.METADATA_MAX_LENGTH) {
            Log.e(TAG, "setMetadata: value length too long " + value.length);