aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-03-10 18:18:14 -0800
committerSteve Kondik <steve@cyngn.com>2016-03-10 18:18:14 -0800
commit328bc61a007eab7513b926149d937e712613f914 (patch)
treeaf6a8dbfa73942ad87a307b7f88755527fba2f17
parentdfb59ac38fd267345aa6db883e8a387f3f109d3d (diff)
parent9510b1cb97fd77cb6a595b91405cbf0a8a4c426e (diff)
downloadandroid_frameworks_opt_net_ims-328bc61a007eab7513b926149d937e712613f914.tar.gz
android_frameworks_opt_net_ims-328bc61a007eab7513b926149d937e712613f914.tar.bz2
android_frameworks_opt_net_ims-328bc61a007eab7513b926149d937e712613f914.zip
Merge tag 'android-6.0.1_r22' of https://android.googlesource.com/platform/frameworks/opt/net/ims into cm-13.0staging/cm-13.0+r22
Android 6.0.1 release 22
-rw-r--r--src/java/com/android/ims/ImsManager.java77
1 files changed, 60 insertions, 17 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index f154f1f..cc71c86 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -538,14 +538,19 @@ public class ImsManager {
final ImsManager imsManager = ImsManager.getInstance(context, phoneId);
if (imsManager != null && (!imsManager.mConfigUpdated || force)) {
try {
- boolean turnOn = imsManager.updateVolteFeatureValue();
- turnOn |= imsManager.updateVideoCallFeatureValue();
- turnOn |= imsManager.updateWfcFeatureAndProvisionedValues();
-
- if (turnOn) {
+ boolean isImsUsed = imsManager.updateVolteFeatureValue();
+ isImsUsed |= imsManager.updateVideoCallFeatureValue();
+ isImsUsed |= imsManager.updateWfcFeatureAndProvisionedValues();
+
+ if (isImsUsed || !getBooleanCarrierConfig(context,
+ CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)) {
+ // Turn on IMS if it is used.
+ // Also, if turning off is not allowed for current carrier,
+ // we need to turn IMS on because it might be turned off before
+ // phone switched to current carrier.
imsManager.turnOnIms();
- } else if (getBooleanCarrierConfig(context,
- CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)) {
+ } else {
+ // Turn off IMS if it is not used AND turning off is allowed for carrier.
imsManager.turnOffIms();
}
@@ -566,7 +571,7 @@ public class ImsManager {
boolean available = isVolteEnabledByPlatform(mContext);
boolean enabled = isEnhanced4gLteModeSettingEnabledByUser(mContext);
boolean isNonTty = isNonTtyOrTtyOnVolteEnabled(mContext);
- boolean turnOn = available && enabled && isNonTty;
+ boolean isFeatureOn = available && enabled && isNonTty;
log("updateVolteFeatureValue: available = " + available
+ ", enabled = " + enabled
@@ -575,12 +580,12 @@ public class ImsManager {
getConfigInterface().setFeatureValue(
ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE,
TelephonyManager.NETWORK_TYPE_LTE,
- turnOn ?
+ isFeatureOn ?
ImsConfig.FeatureValueConstants.ON :
ImsConfig.FeatureValueConstants.OFF,
null);
- return turnOn;
+ return isFeatureOn;
}
/**
@@ -597,7 +602,7 @@ public class ImsManager {
boolean isNonTty = Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.PREFERRED_TTY_MODE, TelecomManager.TTY_MODE_OFF)
== TelecomManager.TTY_MODE_OFF;
- boolean turnOn = available && enabled && isNonTty;
+ boolean isFeatureOn = available && enabled && isNonTty;
log("updateVideoCallFeatureValue: available = " + available
+ ", enabled = " + enabled
@@ -606,12 +611,12 @@ public class ImsManager {
getConfigInterface().setFeatureValue(
ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_LTE,
TelephonyManager.NETWORK_TYPE_LTE,
- turnOn ?
+ isFeatureOn ?
ImsConfig.FeatureValueConstants.ON :
ImsConfig.FeatureValueConstants.OFF,
null);
- return turnOn;
+ return isFeatureOn;
}
/**
@@ -624,7 +629,7 @@ public class ImsManager {
boolean enabled = isWfcEnabledByUser(mContext);
int mode = getWfcMode(mContext);
boolean roaming = isWfcRoamingEnabledByUser(mContext);
- boolean turnOn = available && enabled;
+ boolean isFeatureOn = available && enabled;
log("updateWfcFeatureAndProvisionedValues: available = " + available
+ ", enabled = " + enabled
@@ -634,19 +639,19 @@ public class ImsManager {
getConfigInterface().setFeatureValue(
ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_WIFI,
TelephonyManager.NETWORK_TYPE_IWLAN,
- turnOn ?
+ isFeatureOn ?
ImsConfig.FeatureValueConstants.ON :
ImsConfig.FeatureValueConstants.OFF,
null);
- if (!turnOn) {
+ if (!isFeatureOn) {
mode = ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED;
roaming = false;
}
setWfcModeInternal(mContext, mode);
setWfcRoamingSettingInternal(mContext, roaming);
- return turnOn;
+ return isFeatureOn;
}
private ImsManager(Context context, int phoneId) {
@@ -1361,4 +1366,42 @@ public class ImsManager {
}
return mEcbm;
}
+
+ /**
+ * Resets ImsManager settings back to factory defaults.
+ *
+ * @hide
+ */
+ public static void factoryReset(Context context) {
+ // Set VoLTE to default
+ android.provider.Settings.Global.putInt(context.getContentResolver(),
+ android.provider.Settings.Global.ENHANCED_4G_MODE_ENABLED,
+ ImsConfig.FeatureValueConstants.ON);
+
+ // Set VoWiFi to default
+ android.provider.Settings.Global.putInt(context.getContentResolver(),
+ android.provider.Settings.Global.WFC_IMS_ENABLED,
+ ImsConfig.FeatureValueConstants.OFF);
+
+ // Set VoWiFi mode to default
+ android.provider.Settings.Global.putInt(context.getContentResolver(),
+ android.provider.Settings.Global.WFC_IMS_MODE,
+ ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED);
+
+ // Set VoWiFi roaming to default
+ android.provider.Settings.Global.putInt(context.getContentResolver(),
+ android.provider.Settings.Global.WFC_IMS_ROAMING_ENABLED,
+ ImsConfig.FeatureValueConstants.OFF);
+
+ // Set VT to default
+ SharedPreferences sharedPrefs =
+ PreferenceManager.getDefaultSharedPreferences(context);
+ SharedPreferences.Editor editor = sharedPrefs.edit();
+ editor.putBoolean(PREF_ENABLE_VIDEO_CALLING_KEY, true);
+ editor.commit();
+
+ // Push settings to ImsConfig
+ ImsManager.updateImsServiceConfig(context,
+ SubscriptionManager.getDefaultVoicePhoneId(), true);
+ }
}