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

Commit 77919403 authored by tom hsu's avatar tom hsu Committed by android-build-merger
Browse files

Sync RTT config from framework to Modem.

am: 938ef90c

Change-Id: I59c218a33987da887b1e7b39415b7e628ca58b66
parents 4803ff21 938ef90c
Loading
Loading
Loading
Loading
+36 −14
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.os.Parcel;
import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.provider.Settings;
import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -1288,6 +1289,7 @@ public class ImsManager {
                boolean isImsUsed = updateVolteFeatureValue();
                isImsUsed |= updateWfcFeatureAndProvisionedValues();
                isImsUsed |= updateVideoCallFeatureValue();
                isImsUsed |= updateRttConfigValue();

                if (isImsUsed || !isTurnOffImsAllowedByPlatform()) {
                    // Turn on IMS if it is used.
@@ -1835,9 +1837,19 @@ public class ImsManager {
        }
    }

    public void setRttEnabled(boolean enabled) {
        try {
            setAdvanced4GMode(enabled || isEnhanced4gLteModeSettingEnabledByUser());
    public boolean updateRttConfigValue() {
        boolean isCarrierSupported =
                getBooleanCarrierConfig(CarrierConfigManager.KEY_RTT_SUPPORTED_BOOL);
        boolean isRttEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.RTT_CALLING_MODE, 0) != 0;
        Log.i(ImsManager.class.getSimpleName(), "update RTT value " + isRttEnabled);
        if (isCarrierSupported == true) {
            setRttConfig(isRttEnabled);
        }
        return isCarrierSupported && isRttEnabled;
    }

    private void setRttConfig(boolean enabled) {
        final int value = enabled ? ImsConfig.FeatureValueConstants.ON :
                ImsConfig.FeatureValueConstants.OFF;
        Thread thread = new Thread(() -> {
@@ -1846,11 +1858,21 @@ public class ImsManager {
                getConfigInterface().setProvisionedValue(
                        ImsConfig.ConfigConstants.RTT_SETTING_ENABLED, value);
            } catch (ImsException e) {
                    Log.e(ImsManager.class.getSimpleName(), "Unable to set RTT enabled to "
                Log.e(ImsManager.class.getSimpleName(), "Unable to set RTT value enabled to "
                        + enabled + ": " + e);
            }
        });
        thread.start();
    }

    public void setRttEnabled(boolean enabled) {
        try {
            if (enabled) {
                setEnhanced4gLteModeSetting(enabled);
            } else {
                setAdvanced4GMode(enabled || isEnhanced4gLteModeSettingEnabledByUser());
            }
            setRttConfig(enabled);
        } catch (ImsException e) {
            Log.e(ImsManager.class.getSimpleName(), "Unable to set RTT enabled to " + enabled
                    + ": " + e);