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;
}