Merge "Update PhoneAccount if CALL_COMPOSER is supported in MMTelCapabilities" am: 4e1fd2dede am: 85ff060f10

Original change: https://android-review.googlesource.com/c/platform/packages/services/Telephony/+/1540889

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I460c91defd385d9c11cec4af92eee4f72100ac0b
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 7096de8..016da87 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -120,6 +120,7 @@
         private final PstnPhoneCapabilitiesNotifier mPhoneCapabilitiesNotifier;
         private boolean mIsEmergency;
         private boolean mIsRttCapable;
+        private boolean mIsCallComposerCapable;
         private boolean mIsAdhocConfCapable;
         private boolean mIsEmergencyPreferred;
         private MmTelFeature.MmTelCapabilities mMmTelCapabilities;
@@ -173,6 +174,7 @@
                         MmTelFeature.MmTelCapabilities capabilities) {
                     mMmTelCapabilities = capabilities;
                     updateRttCapability();
+                    updateCallComposerCapability(capabilities);
                 }
             };
             registerMmTelCapabilityCallback();
@@ -367,6 +369,10 @@
                 mIsRttCapable = false;
             }
 
+            if (mIsCallComposerCapable) {
+                capabilities |= PhoneAccount.CAPABILITY_CALL_COMPOSER;
+            }
+
             mIsVideoCapable = mPhone.isVideoEnabled();
             boolean isVideoEnabledByPlatform = ImsManager.getInstance(mPhone.getContext(),
                     mPhone.getPhoneId()).isVtEnabledByPlatform();
@@ -826,6 +832,17 @@
             }
         }
 
+        public void updateCallComposerCapability(MmTelFeature.MmTelCapabilities capabilities) {
+            boolean isCallComposerCapable = capabilities.isCapable(
+                    MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER);
+            if (isCallComposerCapable != mIsCallComposerCapable) {
+                mIsCallComposerCapable = isCallComposerCapable;
+                Log.i(this, "updateCallComposerCapability - changed, new value: "
+                        + isCallComposerCapable);
+                mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+            }
+        }
+
         public void updateDefaultDataSubId(int activeDataSubId) {
             boolean isEmergencyPreferred = isEmergencyPreferredAccount(mPhone.getSubId(),
                     activeDataSubId);