aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2018-08-13 13:01:12 -0700
committerXin Li <delphij@google.com>2018-08-13 13:01:12 -0700
commitef9f487476465740e774d6d696eaaef72a252c39 (patch)
treef46034ebc665c6c4fc3cb7b769f8d3b5905eb6c9
parentc20b4680c68ad8f966249f367d05162b72d049ff (diff)
parent5893baf4edb056622f5b043257ee201f3892a5d4 (diff)
downloadims-ef9f487476465740e774d6d696eaaef72a252c39.tar.gz
Merge stage-dr1-aosp-master into stage-aosp-master
Bug: 112535855 Change-Id: Iab94366a9d485261bf1146ae064f9c59827fc0ac
-rw-r--r--src/java/com/android/ims/ImsManager.java58
1 files changed, 36 insertions, 22 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index 31dd86f4..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.
@@ -1417,14 +1419,6 @@ public class ImsManager {
* busy, it will try to connect before reporting failure.
*/
public boolean isServiceAvailable() {
- // If we are busy resolving dynamic IMS bindings, we are not available yet.
- TelephonyManager tm = (TelephonyManager)
- mContext.getSystemService(Context.TELEPHONY_SERVICE);
- if (tm.isResolvingImsBinding()) {
- Log.d(TAG, "isServiceAvailable: resolving IMS binding, returning false");
- return false;
- }
-
connectIfServiceIsAvailable();
// mImsServiceProxy will always create an ImsServiceProxy.
return mMmTelFeatureConnection.isBinderAlive();
@@ -1843,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);