Merge "Use the new DTMF post-dial APIs" into lmp-preview-dev
diff --git a/src/com/android/services/telephony/PstnConnection.java b/src/com/android/services/telephony/PstnConnection.java
index 6f2c07f..b11c9d0 100644
--- a/src/com/android/services/telephony/PstnConnection.java
+++ b/src/com/android/services/telephony/PstnConnection.java
@@ -95,6 +95,15 @@
         super.onDisconnect();
     }
 
+    @Override
+    public void onPostDialContinue(boolean proceed) {
+        if (proceed) {
+            getOriginalConnection().proceedAfterWaitChar();
+        } else {
+            getOriginalConnection().cancelPostDial();
+        }
+    }
+
     protected Phone getPhone() {
         return mPhone;
     }
diff --git a/src/com/android/services/telephony/PstnConnectionService.java b/src/com/android/services/telephony/PstnConnectionService.java
index 8ac6ee9..21ee41c 100644
--- a/src/com/android/services/telephony/PstnConnectionService.java
+++ b/src/com/android/services/telephony/PstnConnectionService.java
@@ -19,14 +19,14 @@
 import android.net.Uri;
 
 import android.telephony.DisconnectCause;
+import android.telecomm.Connection;
+import android.telecomm.ConnectionRequest;
+import android.telecomm.Response;
 import android.telephony.PhoneNumberUtils;
 
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.Phone;
 import com.android.phone.Constants;
-import android.telecomm.Connection;
-import android.telecomm.ConnectionRequest;
-import android.telecomm.Response;
 
 import java.util.HashSet;
 import java.util.Set;
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index c17b8f6..76d4291 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -22,6 +22,7 @@
 import android.text.TextUtils;
 
 import com.android.internal.telephony.CallStateException;
+import com.android.internal.telephony.Connection.PostDialListener;
 import com.android.internal.telephony.Phone;
 
 import android.telecomm.Connection;
@@ -125,7 +126,19 @@
         }
 
         try {
-            respondWithResult(request, response, createTelephonyConnection(request, connection));
+            final TelephonyConnection telephonyConnection =
+                    createTelephonyConnection(request, connection);
+            respondWithResult(request, response, telephonyConnection);
+
+            final com.android.internal.telephony.Connection connectionCopy = connection;
+            PostDialListener postDialListener = new PostDialListener() {
+                @Override
+                public void onPostDialWait() {
+                    TelephonyConnectionService.this.onPostDialWait(telephonyConnection,
+                            connectionCopy.getRemainingPostDialString());
+                }
+            };
+            connection.addPostDialListener(postDialListener);
         } catch (Exception e) {
             Log.e(this, e, "Call to createConnection failed with exception");
             respondWithError(
@@ -216,6 +229,7 @@
                 sKnownConnections.remove(connection);
             }
         });
+
         return telephonyConnection;
     }