Loading src/java/com/android/ims/ImsManager.java +36 −14 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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. Loading Loading @@ -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(() -> { Loading @@ -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); Loading Loading
src/java/com/android/ims/ImsManager.java +36 −14 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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. Loading Loading @@ -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(() -> { Loading @@ -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); Loading