Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5deb3d9c authored by Shuo Qian's avatar Shuo Qian Committed by Automerger Merge Worker
Browse files

Registrate the call composer capablity while loading carrier config am: 2e8259c6 am: c7477b44

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/net/ims/+/1542032

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I088561d5760218a35eb6095bde799a63c854023a
parents 63aae68c c7477b44
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -865,6 +865,14 @@ public class ImsManager implements FeatureUpdates {
                || setting == ProvisioningManager.PROVISIONING_VALUE_ENABLED);
    }

    /**
     * Returns whether the user sets call composer setting per sub.
     */
    public boolean isCallComposerEnabledByUser() {
        return new TelephonyManager(mContext, getSubId()).getCallComposerStatus() ==
                TelephonyManager.CALL_COMPOSER_STATUS_ON;
    }

    /**
     * Change persistent VT enabled setting
     *
@@ -1466,6 +1474,7 @@ public class ImsManager implements FeatureUpdates {
            updateVolteFeatureValue(request);
            updateWfcFeatureAndProvisionedValues(request);
            updateVideoCallFeatureValue(request);
            updateCallComposerFeatureValue(request);
            // Only turn on IMS for RTT if there's an active subscription present. If not, the
            // modem will be in emergency-call-only mode and will use separate signaling to
            // establish an RTT emergency call.
@@ -1642,6 +1651,31 @@ public class ImsManager implements FeatureUpdates {
        }
    }

    /**
     * Update call composer capability
     */
    private void updateCallComposerFeatureValue(CapabilityChangeRequest request) {
        boolean isUserSetEnabled = isCallComposerEnabledByUser();
        boolean isCarrierConfigEnabled = getBooleanCarrierConfig(
                CarrierConfigManager.KEY_SUPPORTS_CALL_COMPOSER_BOOL);

        boolean isFeatureOn = isUserSetEnabled && isCarrierConfigEnabled;

        log("updateCallComposerFeatureValue: isUserSetEnabled = " + isUserSetEnabled
                + ", isCarrierConfigEnabled = " + isCarrierConfigEnabled
                        + ", isFeatureOn = " + isFeatureOn);

        if (isFeatureOn) {
            request.addCapabilitiesToEnableForTech(
                    MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER,
                            ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
        } else {
            request.addCapabilitiesToDisableForTech(
                    MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER,
                            ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
        }
    }

    /**
     * Do NOT use this directly, instead use {@link #getInstance(Context, int)}.
     */