Check carrierconfig for whether to ignore RTT mode
When sending the RTT on/off flag to the modem, check the carrier config
setting for whether we should always keep it on regardless of the
user-provided setting
Bug: 136035164
Test: manual
Change-Id: I9018b2d4abad70a8be398a646e2ad184f17cea5a
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index ab56d29..7c24c7d 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -2149,13 +2149,20 @@
public boolean updateRttConfigValue() {
boolean isCarrierSupported =
getBooleanCarrierConfig(CarrierConfigManager.KEY_RTT_SUPPORTED_BOOL);
- boolean isRttEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
+ boolean isRttUiSettingEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.RTT_CALLING_MODE, 0) != 0;
- Log.i(ImsManager.class.getSimpleName(), "update RTT value " + isRttEnabled);
- if (isCarrierSupported == true) {
- setRttConfig(isRttEnabled);
+ boolean isRttAlwaysOnCarrierConfig = getBooleanCarrierConfig(
+ CarrierConfigManager.KEY_IGNORE_RTT_MODE_SETTING_BOOL);
+
+ boolean shouldImsRttBeOn = isRttUiSettingEnabled || isRttAlwaysOnCarrierConfig;
+ Log.i(ImsManager.class.getSimpleName(), "update RTT: settings value: "
+ + isRttUiSettingEnabled + " always-on carrierconfig: "
+ + isRttAlwaysOnCarrierConfig);
+
+ if (isCarrierSupported) {
+ setRttConfig(shouldImsRttBeOn);
}
- return isCarrierSupported && isRttEnabled;
+ return isCarrierSupported && shouldImsRttBeOn;
}
private void setRttConfig(boolean enabled) {