Toggle speakerphone when user un/docks from car/desk dock.
Bug: 18301017
Bug: 14996126
Change-Id: I82a4ee3114bbdd08d5d83bc7a3518c6856973072
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 3732a4f..896b1a9 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -118,6 +118,7 @@
new ConcurrentHashMap<CallsManagerListener, Boolean>(16, 0.9f, 1));
private final HeadsetMediaButton mHeadsetMediaButton;
private final WiredHeadsetManager mWiredHeadsetManager;
+ private final DockManager mDockManager;
private final TtyManager mTtyManager;
private final ProximitySensorManager mProximitySensorManager;
private final PhoneStateBroadcaster mPhoneStateBroadcaster;
@@ -164,7 +165,9 @@
mMissedCallNotifier = missedCallNotifier;
StatusBarNotifier statusBarNotifier = new StatusBarNotifier(context, this);
mWiredHeadsetManager = new WiredHeadsetManager(context);
- mCallAudioManager = new CallAudioManager(context, statusBarNotifier, mWiredHeadsetManager);
+ mDockManager = new DockManager(context);
+ mCallAudioManager = new CallAudioManager(
+ context, statusBarNotifier, mWiredHeadsetManager, mDockManager);
InCallTonePlayer.Factory playerFactory = new InCallTonePlayer.Factory(mCallAudioManager);
mRinger = new Ringer(mCallAudioManager, this, playerFactory, context);
mHeadsetMediaButton = new HeadsetMediaButton(context, this);
@@ -592,9 +595,15 @@
call.setHandle(uriHandle);
call.setGatewayInfo(gatewayInfo);
- call.setStartWithSpeakerphoneOn(speakerphoneOn);
call.setVideoState(videoState);
+ if (speakerphoneOn) {
+ Log.i(this, "%s Starting with speakerphone as requested", call);
+ } else {
+ Log.i(this, "%s Starting with speakerphone because car is docked.", call);
+ }
+ call.setStartWithSpeakerphoneOn(speakerphoneOn || mDockManager.isDocked());
+
boolean isEmergencyCall = TelephonyUtil.shouldProcessAsEmergency(mContext,
call.getHandle());
if (isEmergencyCall) {