private static final int EVENT_DATA_ROAMING_DISCONNECTED = 10;
private static final int EVENT_DATA_ROAMING_OK = 11;
private static final int EVENT_UNSOL_CDMA_INFO_RECORD = 12;
- private static final int EVENT_TTY_PREFERRED_MODE_CHANGED = 13;
- private static final int EVENT_TTY_MODE_GET = 14;
- private static final int EVENT_TTY_MODE_SET = 15;
+ private static final int EVENT_DOCK_STATE_CHANGED = 13;
++ private static final int EVENT_TTY_PREFERRED_MODE_CHANGED = 14;
++ private static final int EVENT_TTY_MODE_GET = 15;
++ private static final int EVENT_TTY_MODE_SET = 16;
// The MMI codes are also used by the InCallScreen.
public static final int MMI_INITIATE = 51;
//TODO: handle message here;
break;
+ case EVENT_DOCK_STATE_CHANGED:
+ // If the phone is docked/undocked during a call, and no wired or BT headset
+ // is connected: turn on/off the speaker accordingly.
+ boolean inDockMode = false;
+ if (mDockState == Intent.EXTRA_DOCK_STATE_DESK ||
+ mDockState == Intent.EXTRA_DOCK_STATE_CAR) {
+ inDockMode = true;
+ }
+ if (VDBG) Log.d(LOG_TAG, "received EVENT_DOCK_STATE_CHANGED. Phone inDock = "
+ + inDockMode);
+
+ phoneState = phone.getState();
+ if (phoneState == Phone.State.OFFHOOK &&
+ !isHeadsetPlugged() &&
+ !(mBtHandsfree != null && mBtHandsfree.isAudioOn())) {
+ PhoneUtils.turnOnSpeaker(getApplicationContext(), inDockMode, true);
+
+ if (mInCallScreen != null) {
+ mInCallScreen.requestUpdateTouchUi();
+ }
+ }
++
+ case EVENT_TTY_PREFERRED_MODE_CHANGED:
+ // TTY mode is only applied if a headset is connected
+ int ttyMode;
+ if (isHeadsetPlugged()) {
+ ttyMode = mPreferredTtyMode;
+ } else {
+ ttyMode = Phone.TTY_MODE_OFF;
+ }
+ phone.setTTYMode(ttyMode, mHandler.obtainMessage(EVENT_TTY_MODE_SET));
+ break;
+
+ case EVENT_TTY_MODE_GET:
+ handleQueryTTYModeResponse(msg);
+ break;
+
+ case EVENT_TTY_MODE_SET:
+ handleSetTTYModeResponse(msg);
break;
}
}
Log.e(LOG_TAG, "Error! Emergency Callback Mode not supported for " +
phone.getPhoneName() + " phones");
}
+ } else if (action.equals(Intent.ACTION_DOCK_EVENT)) {
+ mDockState = intent.getIntExtra(Intent.EXTRA_DOCK_STATE,
+ Intent.EXTRA_DOCK_STATE_UNDOCKED);
+ if (VDBG) Log.d(LOG_TAG, "ACTION_DOCK_EVENT -> mDockState = " + mDockState);
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_DOCK_STATE_CHANGED, 0));
+ } else if (action.equals(TtyIntent.TTY_PREFERRED_MODE_CHANGE_ACTION)) {
+ mPreferredTtyMode = intent.getIntExtra(TtyIntent.TTY_PREFFERED_MODE,
+ Phone.TTY_MODE_OFF);
+ if (VDBG) Log.d(LOG_TAG, "mReceiver: TTY_PREFERRED_MODE_CHANGE_ACTION");
+ if (VDBG) Log.d(LOG_TAG, " mode: " + mPreferredTtyMode);
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_TTY_PREFERRED_MODE_CHANGED, 0));
}
}
}