Add DTMF dial tone commands to CallCommandsService.
Moved over much of the code from DTMFTwelveKeyDialer except for UI code
and short-Tone. When we copy over short tone, we should be able to
delete DTMFTwelveKeyDialer.
Change-Id: Ibb954cdeb30bec99d717569f9254892661533699
diff --git a/src/com/android/phone/CallCommandService.java b/src/com/android/phone/CallCommandService.java
index f216a48..7f85404 100644
--- a/src/com/android/phone/CallCommandService.java
+++ b/src/com/android/phone/CallCommandService.java
@@ -35,11 +35,14 @@
private final Context mContext;
private final CallManager mCallManager;
private final CallModeler mCallModeler;
+ private final DTMFTonePlayer mDtmfTonePlayer;
- public CallCommandService(Context context, CallManager callManager, CallModeler callModeler) {
+ public CallCommandService(Context context, CallManager callManager, CallModeler callModeler,
+ DTMFTonePlayer dtmfTonePlayer) {
mContext = context;
mCallManager = callManager;
mCallModeler = callModeler;
+ mDtmfTonePlayer = dtmfTonePlayer;
}
/**
@@ -93,7 +96,7 @@
CallResult result = mCallModeler.getCallWithId(callId);
if (result != null) {
int state = result.getCall().getState();
- if (hold && Call.State.ACTIVE == state ) {
+ if (hold && Call.State.ACTIVE == state) {
PhoneUtils.switchHoldingAndActive(mCallManager.getFirstActiveBgCall());
} else if (!hold && Call.State.ONHOLD == state) {
PhoneUtils.switchHoldingAndActive(result.getConnection().getCall());
@@ -122,4 +125,22 @@
Log.e(TAG, "Error during speaker().", e);
}
}
+
+ @Override
+ public void playDtmfTone(char digit) {
+ try {
+ mDtmfTonePlayer.playDtmfTone(digit);
+ } catch (Exception e) {
+ Log.e(TAG, "Error playing DTMF tone.", e);
+ }
+ }
+
+ @Override
+ public void stopDtmfTone() {
+ try {
+ mDtmfTonePlayer.stopDtmfTone();
+ } catch (Exception e) {
+ Log.e(TAG, "Error stopping DTMF tone.", e);
+ }
+ }
}