diff options
| -rw-r--r-- | media/java/android/media/AudioPortEventHandler.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/media/java/android/media/AudioPortEventHandler.java b/media/java/android/media/AudioPortEventHandler.java index f9a4b1e90ad2..6d9d6265f5e7 100644 --- a/media/java/android/media/AudioPortEventHandler.java +++ b/media/java/android/media/AudioPortEventHandler.java @@ -19,10 +19,12 @@ package android.media; import android.annotation.UnsupportedAppUsage; import android.os.Handler; import android.os.HandlerThread; -import android.os.Looper; import android.os.Message; -import java.util.ArrayList; + +import com.android.internal.annotations.GuardedBy; + import java.lang.ref.WeakReference; +import java.util.ArrayList; /** * The AudioPortEventHandler handles AudioManager.OnAudioPortUpdateListener callbacks @@ -33,6 +35,9 @@ import java.lang.ref.WeakReference; class AudioPortEventHandler { private Handler mHandler; private HandlerThread mHandlerThread; + private final Object mLock = new Object(); + + @GuardedBy("mLock") private final ArrayList<AudioManager.OnAudioPortUpdateListener> mListeners = new ArrayList<AudioManager.OnAudioPortUpdateListener>(); @@ -53,7 +58,7 @@ class AudioPortEventHandler { private long mJniCallback; void init() { - synchronized (this) { + synchronized (mLock) { if (mHandler != null) { return; } @@ -66,7 +71,7 @@ class AudioPortEventHandler { @Override public void handleMessage(Message msg) { ArrayList<AudioManager.OnAudioPortUpdateListener> listeners; - synchronized (this) { + synchronized (mLock) { if (msg.what == AUDIOPORT_EVENT_NEW_LISTENER) { listeners = new ArrayList<AudioManager.OnAudioPortUpdateListener>(); if (mListeners.contains(msg.obj)) { @@ -152,7 +157,7 @@ class AudioPortEventHandler { private native void native_finalize(); void registerListener(AudioManager.OnAudioPortUpdateListener l) { - synchronized (this) { + synchronized (mLock) { mListeners.add(l); } if (mHandler != null) { @@ -162,7 +167,7 @@ class AudioPortEventHandler { } void unregisterListener(AudioManager.OnAudioPortUpdateListener l) { - synchronized (this) { + synchronized (mLock) { mListeners.remove(l); } } |