diff options
author | Bill Yi <byi@google.com> | 2018-11-28 18:34:26 -0800 |
---|---|---|
committer | Bill Yi <byi@google.com> | 2018-11-28 18:34:26 -0800 |
commit | 74c11116415692bc6a8f6a18b65b61b6b01a3717 (patch) | |
tree | 3093fe286db7d9d1d7496b64a867b78c4c2ed205 | |
parent | 10f9b6b74d05c181961ce595d514212b21e33d5f (diff) | |
parent | 938ef90c790fb2ef8ff8de4b22f973e98d246461 (diff) | |
download | ims-74c11116415692bc6a8f6a18b65b61b6b01a3717.tar.gz |
Merge pi-qpr1-release PQ1A.181105.017.A1 to pi-platform-releasepie-platform-releasepie-cuttlefish-testing
Change-Id: If17b93ee23aeced3e102b3b6218338662adc8c8e
-rw-r--r-- | src/java/com/android/ims/ImsManager.java | 58 |
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 590ab5ac..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. @@ -1416,14 +1418,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(); @@ -1842,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); |