am bd874b8b: Merge "AudioManager: fix audio device callback list access" into mnc-dev
* commit 'bd874b8be717110148e2b284f35d166b11c1fe7d': AudioManager: fix audio device callback list access
This commit is contained in:
@@ -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,21 +3924,20 @@ 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) {
|
if (handler != null) {
|
||||||
handler = delegate.getHandler();
|
if (added_devices.length != 0) {
|
||||||
if (handler != null) {
|
handler.sendMessage(Message.obtain(handler,
|
||||||
if (added_devices.length != 0) {
|
MSG_DEVICES_DEVICES_ADDED,
|
||||||
handler.sendMessage(
|
added_devices));
|
||||||
Message.obtain(handler,MSG_DEVICES_DEVICES_ADDED, added_devices));
|
}
|
||||||
}
|
if (removed_devices.length != 0) {
|
||||||
if (removed_devices.length != 0) {
|
handler.sendMessage(Message.obtain(handler,
|
||||||
handler.sendMessage(
|
MSG_DEVICES_DEVICES_REMOVED,
|
||||||
Message.obtain(handler,MSG_DEVICES_DEVICES_REMOVED,
|
removed_devices));
|
||||||
removed_devices));
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user