Merge tag 'LA.UM.5.6.r1-03800-89xx.0' of https://source.codeaurora.org/quic/la/platform/packages/apps/Dialer into HEAD

"LA.UM.5.6.r1-03800-89xx.0"
diff --git a/InCallUI/res/values/qtistrings.xml b/InCallUI/res/values/qtistrings.xml
index afa29ab..c53ee42 100644
--- a/InCallUI/res/values/qtistrings.xml
+++ b/InCallUI/res/values/qtistrings.xml
@@ -141,6 +141,8 @@
     <string name="session_modify_cause_downgrade_lipsync">Call downgraded due to lipsync</string>
     <!-- Session modify cause code downgrade generic error -->
     <string name="session_modify_cause_downgrade_generic_error">Call downgraded due to generic error</string>
+    <!-- Session modify cause code downgrade generic -->
+    <string name="session_modify_cause_downgrade_generic">Video call changed to voice call</string>
 
     <!-- In-call screen: status label for an incoming conference call [CHAR LIMIT=25] -->
     <string name="card_title_incoming_conf_call">Incoming conference call</string>
diff --git a/InCallUI/src/com/android/incallui/InCallMessageController.java b/InCallUI/src/com/android/incallui/InCallMessageController.java
index aa5a57e..d7b7614 100644
--- a/InCallUI/src/com/android/incallui/InCallMessageController.java
+++ b/InCallUI/src/com/android/incallui/InCallMessageController.java
@@ -366,8 +366,14 @@
             return;
         }
 
-        QtiCallUtils.displayToast(mContext,
-                getSessionModificationCauseResourceId(sessionModificationCause));
+        if (sessionModificationCause ==
+                    QtiCallConstants.CAUSE_CODE_SESSION_MODIFY_DOWNGRADE_GENERIC) {
+            QtiCallUtils.displayLongToast(mContext,
+                    getSessionModificationCauseResourceId(sessionModificationCause));
+        } else {
+            QtiCallUtils.displayToast(mContext,
+                    getSessionModificationCauseResourceId(sessionModificationCause));
+        }
     }
 
     /**
@@ -398,6 +404,8 @@
                 return R.string.session_modify_cause_downgrade_thermal_mitigation;
             case QtiCallConstants.CAUSE_CODE_SESSION_MODIFY_DOWNGRADE_LIPSYNC:
                 return R.string.session_modify_cause_downgrade_lipsync;
+            case QtiCallConstants.CAUSE_CODE_SESSION_MODIFY_DOWNGRADE_GENERIC:
+                return R.string.session_modify_cause_downgrade_generic;
             case QtiCallConstants.CAUSE_CODE_SESSION_MODIFY_DOWNGRADE_GENERIC_ERROR:
             default:
                 return R.string.session_modify_cause_downgrade_generic_error;
diff --git a/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
index ed10b73..1069189 100644
--- a/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
+++ b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
@@ -108,6 +108,12 @@
             return;
         }
 
+        // Start with current UI orientation.
+        sCurrentOrientation = getCurrentUiOrientation();
+        if (sCurrentOrientation == SCREEN_ORIENTATION_UNKNOWN) {
+            sCurrentOrientation = SCREEN_ORIENTATION_0;
+        }
+
         super.enable();
         mEnabled = true;
         if (notify) {
diff --git a/InCallUI/src/com/android/incallui/QtiCallUtils.java b/InCallUI/src/com/android/incallui/QtiCallUtils.java
index 0e65bb4..d729d6c 100644
--- a/InCallUI/src/com/android/incallui/QtiCallUtils.java
+++ b/InCallUI/src/com/android/incallui/QtiCallUtils.java
@@ -131,6 +131,20 @@
     }
 
     /**
+     * Displays the message as a long Toast on the UI
+     */
+    public static void displayLongToast(Context context, String msg) {
+        Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
+    }
+
+    /**
+     * Displays the string corresponding to the resourceId as a long Toast on the UI
+     */
+    public static void displayLongToast(Context context, int resourceId) {
+        displayLongToast(context, context.getResources().getString(resourceId));
+    }
+
+    /**
      * The function is called when Modify Call button gets pressed. The function creates and
      * displays modify call options.
      */
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index 3c6c66c..b6dc5bc 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -87,7 +87,8 @@
             target.add(quickResponseSettingsHeader);
         }
 
-        if (!QtiImsExtUtils.isCarrierOneSupported()) {
+        if (!(QtiImsExtUtils.isCarrierOneSupported()
+                    && QtiImsExtUtils.isCarrierOneCallSettingsAvailable(this))) {
             Header speedDialSettingsHeader = new Header();
             Intent speedDialSettingsIntent = new Intent(this, SpeedDialListActivity.class);
             speedDialSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -106,7 +107,8 @@
         // "Call Settings" is not shown.
         boolean isPrimaryUser = isPrimaryUser();
 
-        if (QtiImsExtUtils.isCarrierOneSupported()) {
+        if (QtiImsExtUtils.isCarrierOneSupported()
+                    && QtiImsExtUtils.isCarrierOneCallSettingsAvailable(this)) {
             if (isPrimaryUser) {
                 Header callSettingsHeader =  new Header();
                 Intent callSettingsIntent = new Intent(ACTION_LAUNCH_CALL_SETTINGS);
diff --git a/src/com/android/dialer/settings/SoundSettingsFragment.java b/src/com/android/dialer/settings/SoundSettingsFragment.java
index cf9f68f..b8f77dd 100644
--- a/src/com/android/dialer/settings/SoundSettingsFragment.java
+++ b/src/com/android/dialer/settings/SoundSettingsFragment.java
@@ -150,7 +150,8 @@
             mVibrateWhenRinging.setChecked(shouldVibrateWhenRinging());
         }
 
-        if (QtiImsExtUtils.isCarrierOneSupported()) {
+        if (QtiImsExtUtils.isCarrierOneSupported()
+                && QtiImsExtUtils.isCarrierOneCallSettingsAvailable(getContext())) {
             getPreferenceScreen().removePreference(mRingtonePreference);
             mRingtonePreference = null;
         }