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) {