aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2018-07-11 03:03:45 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-07-11 03:03:45 +0000
commit8c6873af83b8e4a4200d66d235f815320b551de8 (patch)
tree3093fe286db7d9d1d7496b64a867b78c4c2ed205
parent7b1dc5d45f308e2c03dd3b28ef03461d5cf6551f (diff)
parent938ef90c790fb2ef8ff8de4b22f973e98d246461 (diff)
downloadims-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.java50
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);