Audio routing part 2
- Added WIRED_HEADSET and SPEAKER to AudioModes
- Added WiredHeadsetManager class
- AudioRouter now listens to WiredHeadsetManager and PhoneUtils for
speakerphone
- AudioRouter maintains state across earpiece,headset,bluetooth,speaker
- Most code copied from InCallScreen for speaker logic
- CallHandlerService listens to audioRouter for audio states
- Moved Wired headset logic from phoneglobals to wiredheadsetmanager
- Better toString for logging Call objects
Change-Id: Iebc8c83934ce5eff6f1918b0610804fadb163b43
diff --git a/src/com/android/phone/CallHandlerServiceProxy.java b/src/com/android/phone/CallHandlerServiceProxy.java
index 165e693..ad69d80 100644
--- a/src/com/android/phone/CallHandlerServiceProxy.java
+++ b/src/com/android/phone/CallHandlerServiceProxy.java
@@ -48,19 +48,22 @@
(PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
- private Context mContext;
- private CallModeler mCallModeler;
- private ServiceConnection mConnection;
- private ICallHandlerService mCallHandlerService;
+ private AudioRouter mAudioRouter;
private CallCommandService mCallCommandService;
+ private CallModeler mCallModeler;
+ private Context mContext;
+ private ICallHandlerService mCallHandlerService;
+ private ServiceConnection mConnection;
public CallHandlerServiceProxy(Context context, CallModeler callModeler,
- CallCommandService callCommandService) {
+ CallCommandService callCommandService, AudioRouter audioRouter) {
mContext = context;
mCallCommandService = callCommandService;
mCallModeler = callModeler;
+ mAudioRouter = audioRouter;
setupServiceConnection();
+ mAudioRouter.addAudioModeListener(this);
mCallModeler.addListener(this);
// start the whole process
@@ -108,6 +111,8 @@
if (mCallHandlerService != null) {
try {
+ if (DBG) Log.d(TAG, "onSupportAudioModeChange");
+
mCallHandlerService.onAudioModeChange(newMode);
} catch (RemoteException e) {
Log.e(TAG, "Remote exception handling onAudioModeChange", e);
@@ -115,6 +120,19 @@
}
}
+ @Override
+ public void onSupportedAudioModeChange(int modeMask) {
+ if (mCallHandlerService != null) {
+ try {
+ if (DBG) Log.d(TAG, "onSupportAudioModeChange: " + AudioMode.toString(modeMask));
+
+ mCallHandlerService.onSupportedAudioModeChange(modeMask);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Remote exception handling onAudioModeChange", e);
+ }
+ }
+ }
+
/**
* Sets up the connection with ICallHandlerService
*/