Merge "Check all sub call state to disable VT setting" am: 877a03010c am: fac8439aaf
am: 397ea21e2d

Change-Id: I093539ad7553abac37e27c394b21992983b1c2eb
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 9498241..3615621 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -197,7 +197,12 @@
         public void onCallStateChanged(int state, String incomingNumber) {
             if (DBG) log("PhoneStateListener onCallStateChanged: state is " + state);
             if (mEnableVideoCalling != null) {
-                mEnableVideoCalling.setEnabled(state == TelephonyManager.CALL_STATE_IDLE);
+                // Use TelephonyManager#getCallStete instead of 'state' parameter because it needs
+                // to check the current state of all phone calls.
+                TelephonyManager telephonyManager =
+                        (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+                mEnableVideoCalling.setEnabled(
+                        telephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE);
             }
         }
     };
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 8bc47ad..2edb749 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -275,8 +275,10 @@
 
         private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
             /*
-             * Enable/disable the 'Enhanced 4G LTE Mode' when in/out of a call
-             * and depending on TTY mode and TTY support over VoLTE.
+             * Enable/disable the 'Enhanced 4G LTE Mode' and 'Carrier video calling'
+             * when in/out of a call. 'Enhanced 4G LTE Mode' depends on TTY mode
+             * and TTY support over VoLTE.
+             *
              * @see android.telephony.PhoneStateListener#onCallStateChanged(int,
              * java.lang.String)
              */
@@ -292,6 +294,7 @@
                 Preference pref = getPreferenceScreen().findPreference(BUTTON_4G_LTE_KEY);
                 if (pref != null) pref.setEnabled(enabled && hasActiveSubscriptions());
 
+                updateVideoCallState();
             }
         };
 
@@ -1745,7 +1748,8 @@
                     mVideoCallingPref.setEnabled(false);
                     mVideoCallingPref.setChecked(false);
                 } else {
-                    mVideoCallingPref.setEnabled(true);
+                    mVideoCallingPref.setEnabled(
+                            mTelephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE);
                     mVideoCallingPref.setChecked(mImsMgr.isVtEnabledByUser());
                     mVideoCallingPref.setOnPreferenceChangeListener(this);
                 }