Skip to content

Commit 0214f2b

Browse files
author
Eric Laurent
committed
AudioService: undock audio glitch - DO NOT MERGE
merge from master: "AudioService: improve low end dock audio control Low end docks have a menu to enable use of audio for media: automatically enabling/disabling use of audio when the dock is connected/disconnected is useless and can be the source of audio glitches. Bug 7463620." Change-Id: I3b7e7ebe660bb3f0e4367d2a3ed63ee76f78fe58
1 parent cd3231f commit 0214f2b

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

media/java/android/media/AudioService.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,8 @@ public void onError(int error) {
436436

437437
private boolean mDockAudioMediaEnabled = true;
438438

439+
private int mDockState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
440+
439441
///////////////////////////////////////////////////////////////////////////
440442
// Construction
441443
///////////////////////////////////////////////////////////////////////////
@@ -3758,13 +3760,7 @@ public void onReceive(Context context, Intent intent) {
37583760
config = AudioSystem.FORCE_BT_CAR_DOCK;
37593761
break;
37603762
case Intent.EXTRA_DOCK_STATE_LE_DESK:
3761-
synchronized (mSettingsLock) {
3762-
if (mDockAudioMediaEnabled) {
3763-
config = AudioSystem.FORCE_ANALOG_DOCK;
3764-
} else {
3765-
config = AudioSystem.FORCE_NONE;
3766-
}
3767-
}
3763+
config = AudioSystem.FORCE_ANALOG_DOCK;
37683764
break;
37693765
case Intent.EXTRA_DOCK_STATE_HE_DESK:
37703766
config = AudioSystem.FORCE_DIGITAL_DOCK;
@@ -3773,8 +3769,14 @@ public void onReceive(Context context, Intent intent) {
37733769
default:
37743770
config = AudioSystem.FORCE_NONE;
37753771
}
3776-
3777-
AudioSystem.setForceUse(AudioSystem.FOR_DOCK, config);
3772+
// Low end docks have a menu to enable or disable audio
3773+
// (see mDockAudioMediaEnabled)
3774+
if (!((dockState == Intent.EXTRA_DOCK_STATE_LE_DESK) ||
3775+
((dockState == Intent.EXTRA_DOCK_STATE_UNDOCKED) &&
3776+
(mDockState == Intent.EXTRA_DOCK_STATE_LE_DESK)))) {
3777+
AudioSystem.setForceUse(AudioSystem.FOR_DOCK, config);
3778+
}
3779+
mDockState = dockState;
37783780
} else if (action.equals(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED)) {
37793781
state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE,
37803782
BluetoothProfile.STATE_DISCONNECTED);

0 commit comments

Comments
 (0)