diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2018-07-11 03:03:45 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-07-11 03:03:45 +0000 |
commit | 8c6873af83b8e4a4200d66d235f815320b551de8 (patch) | |
tree | 3093fe286db7d9d1d7496b64a867b78c4c2ed205 | |
parent | 7b1dc5d45f308e2c03dd3b28ef03461d5cf6551f (diff) | |
parent | 938ef90c790fb2ef8ff8de4b22f973e98d246461 (diff) | |
download | ims-pie-dr1-release.tar.gz |
Snap for 4885249 from 938ef90c790fb2ef8ff8de4b22f973e98d246461 to pi-dr1-releaseandroid-9.0.0_r12android-9.0.0_r11pie-dr1-release
Change-Id: Ib5fb08e2cb16094486095e8fe49d5fa26cf93c6a
-rw-r--r-- | src/java/com/android/ims/ImsManager.java | 50 |
1 files changed, 36 insertions, 14 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java index dfff3ff4..3dc12f45 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java @@ -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; @@ -1287,6 +1288,7 @@ public class ImsManager { boolean isImsUsed = updateVolteFeatureValue(); isImsUsed |= updateWfcFeatureAndProvisionedValues(); isImsUsed |= updateVideoCallFeatureValue(); + isImsUsed |= updateRttConfigValue(); if (isImsUsed || !isTurnOffImsAllowedByPlatform()) { // Turn on IMS if it is used. @@ -1834,22 +1836,42 @@ public class ImsManager { } } + 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(() -> { + try { + Log.i(ImsManager.class.getSimpleName(), "Setting RTT enabled to " + enabled); + getConfigInterface().setProvisionedValue( + ImsConfig.ConfigConstants.RTT_SETTING_ENABLED, value); + } catch (ImsException e) { + Log.e(ImsManager.class.getSimpleName(), "Unable to set RTT value enabled to " + + enabled + ": " + e); + } + }); + thread.start(); + } + public void setRttEnabled(boolean enabled) { try { - setAdvanced4GMode(enabled || isEnhanced4gLteModeSettingEnabledByUser()); - final int value = enabled ? ImsConfig.FeatureValueConstants.ON : - ImsConfig.FeatureValueConstants.OFF; - Thread thread = new Thread(() -> { - try { - Log.i(ImsManager.class.getSimpleName(), "Setting RTT enabled to " + enabled); - getConfigInterface().setProvisionedValue( - ImsConfig.ConfigConstants.RTT_SETTING_ENABLED, value); - } catch (ImsException e) { - Log.e(ImsManager.class.getSimpleName(), "Unable to set RTT enabled to " - + enabled + ": " + e); - } - }); - thread.start(); + 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); |