From 8c04a5a546a0efc85a6dc1efe8dd59186f682b2a Mon Sep 17 00:00:00 2001 From: Sooraj Sasindran Date: Mon, 4 Nov 2019 13:07:23 -0800 Subject: [PATCH] Carrier config to switch data if primary is OOS Carrier config to switch data to primary from cbrs if primary is OOS Carrier config to specify back off time from cbrs to primary Bug: 143578171 Test: make Change-Id: I2fbec74b7f00dcb751e38b0f5a336fea8370cbee --- .../telephony/CarrierConfigManager.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index dbada25f50a83..1e245584b1a39 100755 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -2840,6 +2840,27 @@ public class CarrierConfigManager { */ public static final String KEY_5G_WATCHDOG_TIME_MS_LONG = "5g_watchdog_time_long"; + /** + * Controls whether to switch data to primary from opportunistic subscription + * if primary is out of service. This control only affects system or 1st party app + * initiated data switch, but will not override data switch initiated by privileged carrier apps + * This carrier config is used to disable this feature. + * @hide + */ + public static final String KEY_SWITCH_DATA_TO_PRIMARY_IF_PRIMARY_IS_OOS_BOOL = + "switch_data_to_primary_if_primary_is_oos_bool"; + + /** + * Controls back off time in milli seconds for switching back to + * opportunistic subscription. This time will be added to + * {@link CarrierConfigManager#KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_HYSTERESIS_TIME_LONG} to + * determine hysteresis time if there is frequent switching + * (determined by system app or 1st party app) between primary and opportunistic + * subscription. + * @hide + */ + public static final String KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG = + "opportunistic_network_backoff_time_long"; /** * Indicates zero or more emergency number prefix(es), because some carrier requires @@ -3648,6 +3669,9 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_PING_TEST_BEFORE_DATA_SWITCH_BOOL, true); /* Default value is 1 hour. */ sDefaults.putLong(KEY_5G_WATCHDOG_TIME_MS_LONG, 3600000); + sDefaults.putBoolean(KEY_SWITCH_DATA_TO_PRIMARY_IF_PRIMARY_IS_OOS_BOOL, true); + /* Default value is 10 seconds. */ + sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG, 10000); sDefaults.putAll(Gps.getDefaults()); sDefaults.putAll(Wifi.getDefaults()); sDefaults.putIntArray(KEY_CDMA_ENHANCED_ROAMING_INDICATOR_FOR_HOME_NETWORK_INT_ARRAY,