@@ -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