RTT bugfixes and logging
Add logging for RTT interface with IMS stack
Fix a few bugs relating to RTT requests and initialization
Add a method to set the RTT config value in the IMS stack
Bug: 63934808
Bug: 72156722
Test: manual
Change-Id: I44934ef53c9cc821582b381d82ee6834a9bdfe6a
diff --git a/src/java/com/android/ims/ImsCall.java b/src/java/com/android/ims/ImsCall.java
index 760e5e8..e32103e 100644
--- a/src/java/com/android/ims/ImsCall.java
+++ b/src/java/com/android/ims/ImsCall.java
@@ -1628,6 +1628,7 @@
// Make a copy of the current ImsCallProfile and modify it to enable RTT
Parcel p = Parcel.obtain();
mCallProfile.writeToParcel(p, 0);
+ p.setDataPosition(0);
ImsCallProfile requestedProfile = new ImsCallProfile(p);
requestedProfile.mMediaProfile.setRttMode(ImsStreamMediaProfile.RTT_MODE_FULL);
@@ -3077,6 +3078,7 @@
public void callSessionRttModifyRequestReceived(ImsCallSession session,
ImsCallProfile callProfile) {
ImsCall.Listener listener;
+ logi("callSessionRttModifyRequestReceived");
synchronized(ImsCall.this) {
listener = mListener;
@@ -3101,6 +3103,7 @@
public void callSessionRttModifyResponseReceived(int status) {
ImsCall.Listener listener;
+ logi("callSessionRttModifyResponseReceived");
synchronized(ImsCall.this) {
listener = mListener;
}
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index 063f5a8..0a0eb24 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -1639,6 +1639,28 @@
}
}
+ public void setRttEnabled(boolean enabled) {
+ try {
+ setAdvanced4GMode(enabled || isEnhanced4gLteModeSettingEnabledByUser());
+ final int value = enabled ? ImsConfig.FeatureValueConstants.ON :
+ ImsConfig.FeatureValueConstants.OFF;
+ Thread thread = new Thread(() -> {
+ try {
+ Log.i(ImsManager.class.getSimpleName(), "Setting RTT enabled to " + enabled);
+ getConfigInterface().setProvisionedValue(
+ ImsConfig.ConfigConstants.RTT_SETTING_ENABLED, value);
+ } catch (ImsException e) {
+ Log.e(ImsManager.class.getSimpleName(), "Unable to set RTT enabled to "
+ + enabled + ": " + e);
+ }
+ });
+ thread.start();
+ } catch (ImsException e) {
+ Log.e(ImsManager.class.getSimpleName(), "Unable to set RTT enabled to " + enabled
+ + ": " + e);
+ }
+ }
+
/**
* Set the TTY mode. This is the actual tty mode (varies depending on peripheral status)
*/