Play local DTMF tones for post-dial actions

Bug: 10695960
Change-Id: I9d039f8a1a27c7f9371eea1a76f175ca9df3249f
diff --git a/src/com/android/phone/DTMFTonePlayer.java b/src/com/android/phone/DTMFTonePlayer.java
index 0acd114..b8adaf1 100644
--- a/src/com/android/phone/DTMFTonePlayer.java
+++ b/src/com/android/phone/DTMFTonePlayer.java
@@ -27,6 +27,7 @@
 import android.util.Log;
 
 import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.Connection.PostDialState;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.services.telephony.common.Call;
@@ -124,8 +125,25 @@
     }
 
     @Override
-    public void onPostDialWait(int callId, String chars) {
-        // no-op
+    public void onPostDialAction(PostDialState state, int callId, String remainingChars,
+            char currentChar) {
+        switch (state) {
+            case STARTED:
+                stopLocalToneIfNeeded();
+                if (!mToneMap.containsKey(currentChar)) {
+                    return;
+                }
+                startLocalToneIfNeeded(currentChar);
+                break;
+            case PAUSE:
+            case WAIT:
+            case WILD:
+            case COMPLETE:
+                stopLocalToneIfNeeded();
+                break;
+            default:
+                break;
+        }
     }
 
     /**
@@ -387,5 +405,4 @@
             Log.d(LOG_TAG, msg);
         }
     }
-
 }