Merge remote-tracking branch 'origin/atel-sys.lnx.12.0' into HEAD

Change-Id: Iaaa9b2ee3ee3abd3cf4346f841958e6e08f8fcba
diff --git a/extphone/src/com/qti/extphone/ExtTelephonyManager.java b/extphone/src/com/qti/extphone/ExtTelephonyManager.java
index 641f43e..50d185b 100644
--- a/extphone/src/com/qti/extphone/ExtTelephonyManager.java
+++ b/extphone/src/com/qti/extphone/ExtTelephonyManager.java
@@ -226,7 +226,6 @@
         for (ServiceCallback cb : mServiceCbs) {
             cb.onDisconnected();
         }
-        mServiceCbs.clear();
     }
 
     /**
diff --git a/ims/ConfURIDialer/AndroidManifest.xml b/ims/ConfURIDialer/AndroidManifest.xml
index fa9870f..c283edf 100644
--- a/ims/ConfURIDialer/AndroidManifest.xml
+++ b/ims/ConfURIDialer/AndroidManifest.xml
@@ -40,7 +40,6 @@
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.READ_CALL_LOG" />
     <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
-    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
     <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
     <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
 
diff --git a/ims/ims-ext-common/src/org/codeaurora/ims/QtiCallConstants.java b/ims/ims-ext-common/src/org/codeaurora/ims/QtiCallConstants.java
index cae45ee..f235e2f 100644
--- a/ims/ims-ext-common/src/org/codeaurora/ims/QtiCallConstants.java
+++ b/ims/ims-ext-common/src/org/codeaurora/ims/QtiCallConstants.java
@@ -92,6 +92,9 @@
     public static final int CALL_FAIL_EXTRA_CODE_CALL_CS_RETRY_REQUIRED =
             ImsReasonInfo.CODE_LOCAL_CALL_CS_RETRY_REQUIRED;
 
+    public static final String SIMLESS_RTT_DOWNGRADE_SUPPORTED = "simless_rtt_downgrade_supported";
+    public static final String SIMLESS_RTT_SUPPORTED = "simless_rtt_supported";
+
     /* Calls are rejected due to low battery */
     public static final int CALL_FAIL_EXTRA_CODE_LOCAL_LOW_BATTERY =
             ImsReasonInfo.CODE_LOCAL_LOW_BATTERY;
diff --git a/ims/ims-ext-common/src/org/codeaurora/ims/utils/QtiImsExtUtils.java b/ims/ims-ext-common/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
index 449d423..c769ad5 100644
--- a/ims/ims-ext-common/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
+++ b/ims/ims-ext-common/src/org/codeaurora/ims/utils/QtiImsExtUtils.java
@@ -149,6 +149,10 @@
     public static final int QTI_IMS_TIR_PRESENTATION_RESTRICTED = 1;
     public static final int QTI_IMS_TIR_PRESENTATION_DEFAULT = 2;
 
+    /*RTT downgrade not supported */
+    public static final int QTI_IMS_RTT_DOWNGRADE_NOT_SUPPORTED = 0;
+    /*RTT upgrade not supported */
+    public static final int QTI_IMS_RTT_NOT_SUPPORTED = 0;
 
     /**
      * Private constructor for QtiImsExtUtils as we don't want to instantiate this class
@@ -637,6 +641,26 @@
             CarrierConfigManager.KEY_RTT_DOWNGRADE_SUPPORTED_BOOL);
     }
 
+    // Returns true if previous carrier supported RTT downgrade
+    // False otherwise
+    public static boolean isSimlessRttDowgradeSupported(int phoneId, Context context) {
+        int simLessRttDowngradeSupportedValue = android.provider.Settings.Secure.getInt(
+                context.getContentResolver(), QtiCallConstants.
+                SIMLESS_RTT_DOWNGRADE_SUPPORTED + convertRttPhoneId(phoneId),
+                QTI_IMS_RTT_DOWNGRADE_NOT_SUPPORTED);
+        return simLessRttDowngradeSupportedValue != QTI_IMS_RTT_DOWNGRADE_NOT_SUPPORTED;
+    }
+
+    // Returns true if previous carrier supported RTT upgrade
+    // False otherwise
+    public static boolean isSimlessRttSupported(int phoneId, Context context) {
+        int simLessRttSupportedValue = android.provider.Settings.Secure.getInt(
+                context.getContentResolver(), QtiCallConstants.
+                SIMLESS_RTT_SUPPORTED + convertRttPhoneId(phoneId),
+                QTI_IMS_RTT_NOT_SUPPORTED);
+        return simLessRttSupportedValue != QTI_IMS_RTT_NOT_SUPPORTED;
+    }
+
     // Returns true if Carrier support RTT visibility setting
     // False otherwise
     public static boolean shallShowRttVisibilitySetting(int phoneId, Context context) {