Merge "Pipe through RTT signaling to Telephony" am: ef25afe8f4 am: 09986838ff am: 554a6dc64f
am: 4a29b4e0f9
Change-Id: I58d7360c175e2040431e579b9aadc77277fd1bc8
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index b5dcba6..9ac40fd 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -50,6 +50,7 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
+import com.android.internal.telephony.imsphone.ImsPhoneConnection;
import com.android.phone.ImsUtil;
import com.android.phone.PhoneGlobals;
import com.android.phone.PhoneUtils;
@@ -417,6 +418,20 @@
public void onConnectionEvent(String event, Bundle extras) {
sendConnectionEvent(event, extras);
}
+
+ @Override
+ public void onRttModifyRequestReceived() {
+ sendRemoteRttRequest();
+ }
+
+ @Override
+ public void onRttModifyResponseReceived(int status) {
+ if (status == RttModifyStatus.SESSION_MODIFY_REQUEST_SUCCESS) {
+ sendRttInitiationSuccess();
+ } else {
+ sendRttInitiationFailure(status);
+ }
+ }
};
protected com.android.internal.telephony.Connection mOriginalConnection;
@@ -618,6 +633,31 @@
}
}
+ @Override
+ public void onStartRtt(RttTextStream textStream) {
+ if (isImsConnection()) {
+ ImsPhoneConnection originalConnection = (ImsPhoneConnection) mOriginalConnection;
+ originalConnection.sendRttModifyRequest(textStream);
+ } else {
+ Log.w(this, "onStartRtt - not in IMS, so RTT cannot be enabled.");
+ }
+ }
+
+ @Override
+ public void onStopRtt() {
+ // This is not supported by carriers/vendor yet. No-op for now.
+ }
+
+ @Override
+ public void handleRttUpgradeResponse(RttTextStream textStream) {
+ if (!isImsConnection()) {
+ Log.w(this, "handleRttUpgradeResponse - not in IMS, so RTT cannot be enabled.");
+ return;
+ }
+ ImsPhoneConnection originalConnection = (ImsPhoneConnection) mOriginalConnection;
+ originalConnection.sendRttModifyResponse(textStream);
+ }
+
public void performHold() {
Log.v(this, "performHold");
// TODO: Can dialing calls be put on hold as well since they take up the