summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/google/android/iwlan/IwlanCarrierConfig.java15
-rw-r--r--src/com/google/android/iwlan/IwlanDataService.java19
-rw-r--r--src/com/google/android/iwlan/IwlanEventListener.java4
-rw-r--r--test/com/google/android/iwlan/IwlanDataServiceTest.java48
-rw-r--r--test/com/google/android/iwlan/IwlanEventListenerTest.java4
5 files changed, 70 insertions, 20 deletions
diff --git a/src/com/google/android/iwlan/IwlanCarrierConfig.java b/src/com/google/android/iwlan/IwlanCarrierConfig.java
index bb3a20f..fcaff90 100644
--- a/src/com/google/android/iwlan/IwlanCarrierConfig.java
+++ b/src/com/google/android/iwlan/IwlanCarrierConfig.java
@@ -42,6 +42,13 @@ public class IwlanCarrierConfig {
PREFIX + "n1_mode_exclusion_for_emergency_session";
/**
+ * Key to decide whether N1 mode shall be enabled or disabled depending on 5G enabling status
+ * via the UI/UX. See {@link #DEFAULT_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL} for the default value.
+ */
+ public static final String KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL =
+ PREFIX + "update_n1_mode_on_ui_change_bool";
+
+ /**
* Default delay in seconds for releasing the IWLAN connection after a WWAN handover. This is
* the default value for {@link #KEY_HANDOVER_TO_WWAN_RELEASE_DELAY_SECOND_INT}.
*/
@@ -53,6 +60,12 @@ public class IwlanCarrierConfig {
*/
public static final boolean DEFAULT_N1_MODE_EXCLUSION_FOR_EMERGENCY_SESSION_BOOL = false;
+ /**
+ * The default value for determining whether N1 mode shall be enabled or disabled depending on
+ * 5G enabling status via the UI/UX.
+ */
+ public static final boolean DEFAULT_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL = true;
+
private static PersistableBundle mHiddenBundle = new PersistableBundle();
static {
@@ -72,6 +85,8 @@ public class IwlanCarrierConfig {
bundle.putBoolean(
KEY_N1_MODE_EXCLUSION_FOR_EMERGENCY_SESSION_BOOL,
DEFAULT_N1_MODE_EXCLUSION_FOR_EMERGENCY_SESSION_BOOL);
+ bundle.putBoolean(
+ KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL, DEFAULT_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL);
return bundle;
}
diff --git a/src/com/google/android/iwlan/IwlanDataService.java b/src/com/google/android/iwlan/IwlanDataService.java
index b9e6271..c1c8bc3 100644
--- a/src/com/google/android/iwlan/IwlanDataService.java
+++ b/src/com/google/android/iwlan/IwlanDataService.java
@@ -1236,7 +1236,10 @@ public class IwlanDataService extends DataService {
// TODO(b/309867756): Include N1_MODE_CAPABILITY inclusion status in metrics.
private boolean needIncludeN1ModeCapability() {
- if (!mFeatureFlags.updateN1ModeOnUiChange()) {
+ if (!IwlanCarrierConfig.getConfigBoolean(
+ mContext,
+ getSlotIndex(),
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL)) {
return isN1ModeSupported();
}
if (!isN1ModeSupported()) {
@@ -1536,7 +1539,10 @@ public class IwlanDataService extends DataService {
int previousCallState = iwlanDataServiceProvider.mCallState;
int currentCallState = iwlanDataServiceProvider.mCallState = msg.arg2;
- if (!mFeatureFlags.updateN1ModeOnUiChange()) {
+ if (!IwlanCarrierConfig.getConfigBoolean(
+ mContext,
+ iwlanDataServiceProvider.getSlotIndex(),
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL)) {
break;
}
@@ -1549,11 +1555,14 @@ public class IwlanDataService extends DataService {
break;
case IwlanEventListener.PREFERRED_NETWORK_TYPE_CHANGED_EVENT:
- if (!mFeatureFlags.updateN1ModeOnUiChange()) {
- break;
- }
iwlanDataServiceProvider =
(IwlanDataServiceProvider) getDataServiceProvider(msg.arg1);
+ if (!IwlanCarrierConfig.getConfigBoolean(
+ mContext,
+ iwlanDataServiceProvider.getSlotIndex(),
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL)) {
+ break;
+ }
long allowedNetworkType = (long) msg.obj;
onPreferredNetworkTypeChanged(iwlanDataServiceProvider, allowedNetworkType);
break;
diff --git a/src/com/google/android/iwlan/IwlanEventListener.java b/src/com/google/android/iwlan/IwlanEventListener.java
index 890afb4..427f4a7 100644
--- a/src/com/google/android/iwlan/IwlanEventListener.java
+++ b/src/com/google/android/iwlan/IwlanEventListener.java
@@ -187,10 +187,6 @@ public class IwlanEventListener {
public void onAllowedNetworkTypesChanged(
@TelephonyManager.AllowedNetworkTypesReason int reason,
@TelephonyManager.NetworkTypeBitMask long allowedNetworkType) {
- if (!mFeatureFlags.updateN1ModeOnUiChange()) {
- return;
- }
-
if (reason != TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER) {
return;
}
diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java
index d10e8cf..bb53780 100644
--- a/test/com/google/android/iwlan/IwlanDataServiceTest.java
+++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java
@@ -2163,8 +2163,12 @@ public class IwlanDataServiceTest {
@Test
public void testMultipleAllowedNetworkTypeChangeInIdle_updateN1Mode() throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ when(IwlanCarrierConfig.getConfigBoolean(
+ mMockContext,
+ DEFAULT_SLOT_INDEX,
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL))
+ .thenReturn(true);
mockCallState(CALL_STATE_IDLE);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2192,8 +2196,13 @@ public class IwlanDataServiceTest {
@Test
public void testMultipleAllowedNetworkTypeChangeInCall_preferenceChanged_updateAfterCallEnds()
throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ when(IwlanCarrierConfig.getConfigBoolean(
+ mMockContext,
+ DEFAULT_SLOT_INDEX,
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL))
+ .thenReturn(true);
+
mockCallState(CALL_STATE_RINGING);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2225,8 +2234,13 @@ public class IwlanDataServiceTest {
@Test
public void testMultipleAllowedNetworkTypeChangeInCall_preferenceNotChanged_noUpdate()
throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ when(IwlanCarrierConfig.getConfigBoolean(
+ mMockContext,
+ DEFAULT_SLOT_INDEX,
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL))
+ .thenReturn(true);
+
mockCallState(CALL_STATE_RINGING);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2251,8 +2265,13 @@ public class IwlanDataServiceTest {
@Test
public void testOnAllowedNetworkTypeChange_flagDisabled_noTunnelClose() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(false);
mockCarrierConfigForN1Mode(true);
+ when(IwlanCarrierConfig.getConfigBoolean(
+ mMockContext,
+ DEFAULT_SLOT_INDEX,
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL))
+ .thenReturn(false);
+
mockCallState(CALL_STATE_IDLE);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2263,8 +2282,13 @@ public class IwlanDataServiceTest {
@Test
public void testOnAllowedNetworkTypeChange_n1ModeNotSupported_noTunnelClose() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(false);
+ when(IwlanCarrierConfig.getConfigBoolean(
+ mMockContext,
+ DEFAULT_SLOT_INDEX,
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL))
+ .thenReturn(true);
+
mockCallState(CALL_STATE_IDLE);
mockSetupDataCallWithPduSessionId(0);
updatePreferredNetworkType(NETWORK_TYPE_BITMASK_NR);
@@ -2275,8 +2299,13 @@ public class IwlanDataServiceTest {
@Test
public void testN1ModeNotSupported_tunnelBringupWithNoN1ModeCapability() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(false);
+ when(IwlanCarrierConfig.getConfigBoolean(
+ mMockContext,
+ DEFAULT_SLOT_INDEX,
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL))
+ .thenReturn(true);
+
mockSetupDataCallWithPduSessionId(1);
ArgumentCaptor<TunnelSetupRequest> tunnelSetupRequestCaptor =
@@ -2289,8 +2318,13 @@ public class IwlanDataServiceTest {
@Test
public void testNoN1ModeCapabilityInOngoingDataCall_newTunnelBringup_doNotIncludeN1() {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
mockCarrierConfigForN1Mode(true);
+ when(IwlanCarrierConfig.getConfigBoolean(
+ mMockContext,
+ DEFAULT_SLOT_INDEX,
+ IwlanCarrierConfig.KEY_UPDATE_N1_MODE_ON_UI_CHANGE_BOOL))
+ .thenReturn(true);
+
mockSetupDataCallWithPduSessionId(0);
ArgumentCaptor<TunnelSetupRequest> tunnelSetupRequestCaptor =
diff --git a/test/com/google/android/iwlan/IwlanEventListenerTest.java b/test/com/google/android/iwlan/IwlanEventListenerTest.java
index a922a10..5999872 100644
--- a/test/com/google/android/iwlan/IwlanEventListenerTest.java
+++ b/test/com/google/android/iwlan/IwlanEventListenerTest.java
@@ -368,8 +368,6 @@ public class IwlanEventListenerTest {
@SuppressLint("MissingPermission")
@Test
public void testDisable5gViaUi() throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
-
when(mMockHandler.obtainMessage(
eq(IwlanEventListener.PREFERRED_NETWORK_TYPE_CHANGED_EVENT),
eq(DEFAULT_SLOT_INDEX),
@@ -393,8 +391,6 @@ public class IwlanEventListenerTest {
@SuppressLint("MissingPermission")
@Test
public void testEnable5gViaUi() throws Exception {
- when(mFakeFeatureFlags.updateN1ModeOnUiChange()).thenReturn(true);
-
when(mMockHandler.obtainMessage(
eq(IwlanEventListener.PREFERRED_NETWORK_TYPE_CHANGED_EVENT),
eq(DEFAULT_SLOT_INDEX),