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

Commit 1335cebd authored by Ze Li's avatar Ze Li Committed by Android (Google) Code Review
Browse files

Merge "Fix the issue of removing member device when iterating." into main

parents f1fccb2b 8b9e2d68
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -298,13 +298,8 @@ public class CachedBluetoothDeviceManager {
            CachedBluetoothDevice cachedDevice = mCachedDevices.get(i);
            Set<CachedBluetoothDevice> memberDevices = cachedDevice.getMemberDevice();
            if (!memberDevices.isEmpty()) {
                for (Object it : memberDevices.toArray()) {
                    CachedBluetoothDevice memberDevice = (CachedBluetoothDevice) it;
                    // Member device exists and it is not bonded
                    if (memberDevice.getDevice().getBondState() == BluetoothDevice.BOND_NONE) {
                        cachedDevice.removeMemberDevice(memberDevice);
                    }
                }
                memberDevices.removeIf(memberDevice ->
                        memberDevice.getDevice().getBondState() == BluetoothDevice.BOND_NONE);
                return;
            }
            CachedBluetoothDevice subDevice = cachedDevice.getSubDevice();
@@ -346,11 +341,8 @@ public class CachedBluetoothDeviceManager {
                CachedBluetoothDevice cachedDevice = mCachedDevices.get(i);
                final Set<CachedBluetoothDevice> memberDevices = cachedDevice.getMemberDevice();
                if (!memberDevices.isEmpty()) {
                    for (CachedBluetoothDevice memberDevice : memberDevices) {
                        if (memberDevice.getBondState() != BluetoothDevice.BOND_BONDED) {
                            cachedDevice.removeMemberDevice(memberDevice);
                        }
                    }
                    memberDevices.removeIf(memberDevice ->
                            memberDevice.getDevice().getBondState() != BluetoothDevice.BOND_BONDED);
                } else {
                    CachedBluetoothDevice subDevice = cachedDevice.getSubDevice();
                    if (subDevice != null) {