aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortom hsu <tomhsu@google.com>2018-07-10 18:29:56 -0700
committerandroid-build-merger <android-build-merger@google.com>2018-07-10 18:29:56 -0700
commit7791940366aee3551b2f9eb028b8e3b035fc5692 (patch)
tree750b6150ad16baed9507414300d926699629b219
parent4803ff2177a0ebeaab3a4db0b9ec20fcbde4b6e8 (diff)
parent938ef90c790fb2ef8ff8de4b22f973e98d246461 (diff)
downloadims-7791940366aee3551b2f9eb028b8e3b035fc5692.tar.gz
Sync RTT config from framework to Modem.
am: 938ef90c79 Change-Id: I59c218a33987da887b1e7b39415b7e628ca58b66
-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 422e8f5d..cb6a7e5c 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;
@@ -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,22 +1837,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);