From 2c25e4a96bf5fd4439f11ab1c4319c8fc2240247 Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Mon, 19 Sep 2016 14:18:05 -0700 Subject: [PATCH] Support WFC roaming preference Added keys in CarrierConfig and Settings.Global Bug: 31492826 Change-Id: Ice33f6ee5c42b92ed2f7258ff8b28c50510cde31 --- core/java/android/provider/Settings.java | 11 ++++++- .../telephony/CarrierConfigManager.java | 30 +++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 8f626df8d5803..e27e00571ad50 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8666,7 +8666,7 @@ public final class Settings { public static final String WFC_IMS_ENABLED = "wfc_ims_enabled"; /** - * WFC Mode. + * WFC mode on home/non-roaming network. *

* Type: int - 2=Wi-Fi preferred, 1=Cellular preferred, 0=Wi-Fi only * @@ -8674,6 +8674,15 @@ public final class Settings { */ public static final String WFC_IMS_MODE = "wfc_ims_mode"; + /** + * WFC mode on roaming network. + *

+ * Type: int - see {@link WFC_IMS_MODE} for values + * + * @hide + */ + public static final String WFC_IMS_ROAMING_MODE = "wfc_ims_roaming_mode"; + /** * Whether WFC roaming is enabled *

diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 4d946dc365ad2..eae82c943ceba 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -286,13 +286,23 @@ public class CarrierConfigManager { "carrier_wfc_supports_wifi_only_bool"; /** - * Default WFC_IMS_mode 0: WIFI_ONLY - * 1: CELLULAR_PREFERRED - * 2: WIFI_PREFERRED + * Default WFC_IMS_MODE for home network 0: WIFI_ONLY + * 1: CELLULAR_PREFERRED + * 2: WIFI_PREFERRED * @hide */ public static final String KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT = "carrier_default_wfc_ims_mode_int"; + + /** + * Default WFC_IMS_MODE for roaming + * See {@link KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT} for valid values. + * + * @hide + */ + public static final String KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT = + "carrier_default_wfc_ims_roaming_mode_int"; + /** * Default WFC_IMS_enabled: true VoWiFi by default is on * false VoWiFi by default is off @@ -957,6 +967,18 @@ public class CarrierConfigManager { */ public static final String FILTERED_CNAP_NAMES_STRING_ARRAY = "filtered_cnap_names_string_array"; + /** + * Determine whether user can change Wi-Fi Calling preference in roaming. + * {@code false} - roaming preference {@link KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT} is + * the same as home preference {@link KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT} + * and cannot be changed. + * {@code true} - roaming preference can be changed by user independently. + * + * @hide + */ + public static final String KEY_EDITABLE_WFC_ROAMING_MODE_BOOL = + "editable_wfc_roaming_mode_bool"; + /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -979,6 +1001,7 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL, false); sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT, 2); + sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT, 2); sDefaults.putBoolean(KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, true); @@ -1129,6 +1152,7 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL, false); sDefaults.putBoolean(KEY_NOTIFY_VT_HANDOVER_TO_WIFI_FAILURE_BOOL, false); sDefaults.putStringArray(FILTERED_CNAP_NAMES_STRING_ARRAY, null); + sDefaults.putBoolean(KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false); } /**