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

Commit a29bcca2 authored by Eric Laurent's avatar Eric Laurent Committed by Android Git Automerger
Browse files

am c2db03b0: am bd874b8b: Merge "AudioManager: fix audio device callback list access" into mnc-dev

* commit 'c2db03b0':
  AudioManager: fix audio device callback list access
parents 41fac5e8 c2db03b0
Loading
Loading
Loading
Loading
+15 −16
Original line number Original line Diff line number Diff line
@@ -3859,8 +3859,8 @@ public class AudioManager {
     */
     */
    public void registerAudioDeviceCallback(AudioDeviceCallback callback,
    public void registerAudioDeviceCallback(AudioDeviceCallback callback,
            android.os.Handler handler) {
            android.os.Handler handler) {
        if (callback != null && !mDeviceCallbacks.containsKey(callback)) {
        synchronized (mDeviceCallbacks) {
        synchronized (mDeviceCallbacks) {
            if (callback != null && !mDeviceCallbacks.containsKey(callback)) {
                if (mDeviceCallbacks.size() == 0) {
                if (mDeviceCallbacks.size() == 0) {
                    if (mPortListener == null) {
                    if (mPortListener == null) {
                        mPortListener = new OnAmPortUpdateListener();
                        mPortListener = new OnAmPortUpdateListener();
@@ -3924,26 +3924,25 @@ public class AudioManager {
                    calcListDeltas(current_ports, mPreviousPorts, GET_DEVICES_ALL);
                    calcListDeltas(current_ports, mPreviousPorts, GET_DEVICES_ALL);


            if (added_devices.length != 0 || removed_devices.length != 0) {
            if (added_devices.length != 0 || removed_devices.length != 0) {
                Collection<NativeEventHandlerDelegate> values;
                synchronized (mDeviceCallbacks) {
                synchronized (mDeviceCallbacks) {
                    values = mDeviceCallbacks.values();
                    for (int i = 0; i < mDeviceCallbacks.size(); i++) {
                }
                        handler = mDeviceCallbacks.valueAt(i).getHandler();
                for (NativeEventHandlerDelegate delegate : values) {
                    handler = delegate.getHandler();
                        if (handler != null) {
                        if (handler != null) {
                            if (added_devices.length != 0) {
                            if (added_devices.length != 0) {
                            handler.sendMessage(
                                handler.sendMessage(Message.obtain(handler,
                                Message.obtain(handler,MSG_DEVICES_DEVICES_ADDED, added_devices));
                                                                   MSG_DEVICES_DEVICES_ADDED,
                                                                   added_devices));
                            }
                            }
                            if (removed_devices.length != 0) {
                            if (removed_devices.length != 0) {
                            handler.sendMessage(
                                handler.sendMessage(Message.obtain(handler,
                                Message.obtain(handler,MSG_DEVICES_DEVICES_REMOVED,
                                                                   MSG_DEVICES_DEVICES_REMOVED,
                                                                   removed_devices));
                                                                   removed_devices));
                            }
                            }
                        }
                        }
                    }
                    }
                }
                }
            }
            }
        }


        mPreviousPorts = current_ports;
        mPreviousPorts = current_ports;
    }
    }