aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Mahajan <amitmahajan@google.com>2016-08-11 10:17:23 -0700
committerAmit Mahajan <amitmahajan@google.com>2016-08-12 10:10:43 -0700
commit9cba36d1c6f15a93e9194b8e0c36389312fa96df (patch)
tree42e0a0cb8b383d03f2bd9f3c0e44ef4e60bf91ce
parentafb53c826d0f4614311a93d24a9bf8fe2b0a51a5 (diff)
downloadims-9cba36d1c6f15a93e9194b8e0c36389312fa96df.tar.gz
Call setFeatureValue() even if turning off IMS.
setFeatureValue() needs to be called so that next time IMS is turned on, IMS stack knows which features to keep turned off. It should be called after turnOffIms(). Bug: 30651940 Change-Id: Ia2d388d9336bfa6f7950f45c4a705bf5858cfa19
-rw-r--r--src/java/com/android/ims/ImsManager.java29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index 8af5a76e..22e0f447 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -1351,12 +1351,11 @@ public class ImsManager {
|| !isWfcEnabledByUser(mContext));
}
- private void setAdvanced4GMode(boolean turnOn) throws ImsException {
- checkAndThrowExceptionIfServiceUnavailable();
-
+ private void setLteFeatureValues(boolean turnOn) {
+ log("setLteFeatureValues: " + turnOn);
try {
ImsConfig config = getConfigInterface();
- if (config != null && (turnOn || !isImsTurnOffAllowed())) {
+ if (config != null) {
config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE,
TelephonyManager.NETWORK_TYPE_LTE, turnOn ? 1 : 0, mImsConfigListener);
@@ -1370,14 +1369,26 @@ public class ImsManager {
}
}
} catch (ImsException e) {
- loge("setAdvanced4GMode() : ", e);
+ loge("setLteFeatureValues: exception ", e);
}
+ }
+
+ private void setAdvanced4GMode(boolean turnOn) throws ImsException {
+ checkAndThrowExceptionIfServiceUnavailable();
+
+ // if turnOn: first set feature values then call turnOnIms()
+ // if turnOff: only set feature values if IMS turn off is not allowed. If turn off is
+ // allowed, first call turnOffIms() then set feature values
if (turnOn) {
- log("setAdvanced4GMode() : turnOnIms");
+ setLteFeatureValues(turnOn);
+ log("setAdvanced4GMode: turnOnIms");
turnOnIms();
- } else if (isImsTurnOffAllowed()) {
- log("setAdvanced4GMode() : imsServiceAllowTurnOff -> turnOffIms");
- turnOffIms();
+ } else {
+ if (isImsTurnOffAllowed()) {
+ log("setAdvanced4GMode: turnOffIms");
+ turnOffIms();
+ }
+ setLteFeatureValues(turnOn);
}
}