Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +23 −14 Original line number Diff line number Diff line Loading @@ -69,9 +69,9 @@ public class LocalMediaManager implements BluetoothCallback { private MediaDevice mOnTransferBluetoothDevice; @VisibleForTesting List<MediaDevice> mMediaDevices = new ArrayList<>(); List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); @VisibleForTesting List<MediaDevice> mDisconnectedMediaDevices = new ArrayList<>(); List<MediaDevice> mDisconnectedMediaDevices = new CopyOnWriteArrayList<>(); @VisibleForTesting MediaDevice mPhoneDevice; @VisibleForTesting Loading Loading @@ -207,6 +207,7 @@ public class LocalMediaManager implements BluetoothCallback { public void stopScan() { mInfoMediaManager.unregisterCallback(mMediaDeviceCallback); mInfoMediaManager.stopScan(); unRegisterDeviceAttributeChangeCallback(); } /** Loading Loading @@ -397,22 +398,26 @@ public class LocalMediaManager implements BluetoothCallback { } private List<MediaDevice> buildDisconnectedBluetoothDevice() { for (MediaDevice device : mDisconnectedMediaDevices) { ((BluetoothMediaDevice) device).getCachedDevice() .unregisterCallback(mDeviceAttributeChangeCallback); } mDisconnectedMediaDevices.clear(); final List<BluetoothDevice> bluetoothDevices = mBluetoothAdapter.getMostRecentlyConnectedDevices(); final CachedBluetoothDeviceManager cachedDeviceManager = mLocalBluetoothManager.getCachedDeviceManager(); final List<CachedBluetoothDevice> cachedBluetoothDeviceList = new ArrayList<>(); for (BluetoothDevice device : bluetoothDevices) { final CachedBluetoothDevice cachedDevice = cachedDeviceManager.findDevice(device); if (cachedDevice != null) { if (cachedDevice.getBondState() == BluetoothDevice.BOND_BONDED && !cachedDevice.isConnected()) { cachedBluetoothDeviceList.add(cachedDevice); } } } unRegisterDeviceAttributeChangeCallback(); mDisconnectedMediaDevices.clear(); for (CachedBluetoothDevice cachedDevice : cachedBluetoothDeviceList) { final MediaDevice mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, null, null, mPackageName); Loading @@ -421,8 +426,6 @@ public class LocalMediaManager implements BluetoothCallback { mDisconnectedMediaDevices.add(mediaDevice); } } } } return new ArrayList<>(mDisconnectedMediaDevices); } Loading Loading @@ -473,6 +476,12 @@ public class LocalMediaManager implements BluetoothCallback { } } private void unRegisterDeviceAttributeChangeCallback() { for (MediaDevice device : mDisconnectedMediaDevices) { ((BluetoothMediaDevice) device).getCachedDevice() .unregisterCallback(mDeviceAttributeChangeCallback); } } /** * Callback for notifying device information updating Loading Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +23 −14 Original line number Diff line number Diff line Loading @@ -69,9 +69,9 @@ public class LocalMediaManager implements BluetoothCallback { private MediaDevice mOnTransferBluetoothDevice; @VisibleForTesting List<MediaDevice> mMediaDevices = new ArrayList<>(); List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); @VisibleForTesting List<MediaDevice> mDisconnectedMediaDevices = new ArrayList<>(); List<MediaDevice> mDisconnectedMediaDevices = new CopyOnWriteArrayList<>(); @VisibleForTesting MediaDevice mPhoneDevice; @VisibleForTesting Loading Loading @@ -207,6 +207,7 @@ public class LocalMediaManager implements BluetoothCallback { public void stopScan() { mInfoMediaManager.unregisterCallback(mMediaDeviceCallback); mInfoMediaManager.stopScan(); unRegisterDeviceAttributeChangeCallback(); } /** Loading Loading @@ -397,22 +398,26 @@ public class LocalMediaManager implements BluetoothCallback { } private List<MediaDevice> buildDisconnectedBluetoothDevice() { for (MediaDevice device : mDisconnectedMediaDevices) { ((BluetoothMediaDevice) device).getCachedDevice() .unregisterCallback(mDeviceAttributeChangeCallback); } mDisconnectedMediaDevices.clear(); final List<BluetoothDevice> bluetoothDevices = mBluetoothAdapter.getMostRecentlyConnectedDevices(); final CachedBluetoothDeviceManager cachedDeviceManager = mLocalBluetoothManager.getCachedDeviceManager(); final List<CachedBluetoothDevice> cachedBluetoothDeviceList = new ArrayList<>(); for (BluetoothDevice device : bluetoothDevices) { final CachedBluetoothDevice cachedDevice = cachedDeviceManager.findDevice(device); if (cachedDevice != null) { if (cachedDevice.getBondState() == BluetoothDevice.BOND_BONDED && !cachedDevice.isConnected()) { cachedBluetoothDeviceList.add(cachedDevice); } } } unRegisterDeviceAttributeChangeCallback(); mDisconnectedMediaDevices.clear(); for (CachedBluetoothDevice cachedDevice : cachedBluetoothDeviceList) { final MediaDevice mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, null, null, mPackageName); Loading @@ -421,8 +426,6 @@ public class LocalMediaManager implements BluetoothCallback { mDisconnectedMediaDevices.add(mediaDevice); } } } } return new ArrayList<>(mDisconnectedMediaDevices); } Loading Loading @@ -473,6 +476,12 @@ public class LocalMediaManager implements BluetoothCallback { } } private void unRegisterDeviceAttributeChangeCallback() { for (MediaDevice device : mDisconnectedMediaDevices) { ((BluetoothMediaDevice) device).getCachedDevice() .unregisterCallback(mDeviceAttributeChangeCallback); } } /** * Callback for notifying device information updating Loading