Loading flags/network.aconfig +0 −12 Original line number Diff line number Diff line package: "com.android.internal.telephony.flags" container: "system" # OWNER=nharold TARGET=24Q1 flag { name: "enable_carrier_config_n1_control_attempt2" namespace: "telephony" description: "enabling this flag allows KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY to control N1 mode enablement" bug:"328848947" metadata { purpose: PURPOSE_BUGFIX } } # OWNER=sarahchin TARGET=24Q1 flag { name: "hide_roaming_icon" Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +14 −20 Original line number Diff line number Diff line Loading @@ -2463,7 +2463,6 @@ public class GsmCdmaPhone extends Phone { */ @Override public void setN1ModeEnabled(boolean enable, @Nullable Message result) { if (mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) { // This might be called by IMS on another thread, so to avoid the requirement to // lock, post it through the handler. post(() -> { Loading @@ -2478,9 +2477,6 @@ public class GsmCdmaPhone extends Phone { maybeUpdateModemN1Mode(result); } }); } else { super.setN1ModeEnabled(enable, result); } } /** Only called on the handler thread. */ Loading @@ -2504,8 +2500,6 @@ public class GsmCdmaPhone extends Phone { /** Only called on the handler thread. */ private void updateCarrierN1ModeSupported(@NonNull PersistableBundle b) { if (!mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) return; if (!CarrierConfigManager.isConfigForIdentifiedCarrier(b)) return; final int[] supportedNrModes = b.getIntArray( Loading src/java/com/android/internal/telephony/imsphone/ImsNrSaModeHandler.java +18 −2 Original line number Diff line number Diff line Loading @@ -61,6 +61,14 @@ public class ImsNrSaModeHandler extends Handler{ private final @NonNull ImsPhone mPhone; private @Nullable CarrierConfigManager mCarrierConfigManager; @FunctionalInterface public interface N1ModeSetter { /** Override-able for testing */ void setN1ModeEnabled(boolean enabled, @Nullable Message message); } private N1ModeSetter mN1ModeSetter; private @NrSaDisablePolicy int mNrSaDisablePolicy; private boolean mIsNrSaDisabledForWfc; private boolean mIsWifiRegistered; Loading @@ -73,7 +81,10 @@ public class ImsNrSaModeHandler extends Handler{ public ImsNrSaModeHandler(@NonNull ImsPhone phone, Looper looper) { super(looper); mPhone = phone; mN1ModeSetter = mPhone.getDefaultPhone()::setN1ModeEnabled; mCarrierConfigManager = (CarrierConfigManager) mPhone.getContext() .getSystemService(Context.CARRIER_CONFIG_SERVICE); Loading Loading @@ -257,8 +268,13 @@ public class ImsNrSaModeHandler extends Handler{ } } @VisibleForTesting public void setN1ModeSetter(N1ModeSetter setter) { mN1ModeSetter = setter; } private void setNrSaMode(boolean onOrOff) { mPhone.getDefaultPhone().setN1ModeEnabled(onOrOff, null); mN1ModeSetter.setN1ModeEnabled(onOrOff, null); Log.i(TAG, "setNrSaMode : " + onOrOff); setNrSaDisabledForWfc(!onOrOff); Loading tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java +0 −12 Original line number Diff line number Diff line Loading @@ -1519,8 +1519,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_incompleteCarrierConfig_changeNeeded() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY, Loading Loading @@ -1550,8 +1548,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_noChangeNeeded() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY, Loading @@ -1574,8 +1570,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_needsChange() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY, Loading @@ -1598,8 +1592,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_CarrierConfigChanges() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); // Initialize the inner cache and set the modem to N1 mode = enabled/true testNrCapabilityChanged_firstRequest_needsChange(); Loading @@ -1620,8 +1612,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_CarrierConfigChanges_ErrorResponse() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; for (int i = 0; i < 2; i++) { PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); Loading @@ -1646,8 +1636,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_ImsChanges() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; Message passthroughMessage = mTestHandler.obtainMessage(0xC0FFEE); Loading tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsNrSaModeHandlerTest.java +49 −32 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import android.os.Handler; import android.os.Message; import android.telephony.CarrierConfigManager; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading Loading @@ -79,12 +80,29 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ private int mAnyInt = 0; private final Set<String> mFeatureTags = new ArraySet<String>(); private class N1ModeHandlerCaptor implements ImsNrSaModeHandler.N1ModeSetter { private boolean mIsN1ModeEnabled = false; public void setN1ModeEnabled(boolean enabled, Message message) { mIsN1ModeEnabled = enabled; mSimulatedCommands.setN1ModeEnabled(enabled, message); } public boolean isN1ModeEnabled() { return mIsN1ModeEnabled; }; }; private N1ModeHandlerCaptor mN1ModeCaptor; @Before public void setUp() throws Exception { super.setUp(getClass().getSimpleName()); MockitoAnnotations.initMocks(this); mTestImsNrSaModeHandler = new ImsNrSaModeHandler(mImsPhone, mTestableLooper.getLooper()); mN1ModeCaptor = new N1ModeHandlerCaptor(); mTestImsNrSaModeHandler.setN1ModeSetter(mN1ModeCaptor); verify(mCarrierConfigManager).registerCarrierConfigChangeListener( any(), mCarrierConfigChangeListenerCaptor.capture()); Loading Loading @@ -128,14 +146,13 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mPreciseCallStateHandlerCaptor.capture(), anyInt(), any()); mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mSimulatedCommands.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setNrSaDisabledForWfc(true); mTestImsNrSaModeHandler.tearDown(); verify(mCarrierConfigManager).unregisterCarrierConfigChangeListener(any()); verify(mImsPhone).unregisterForPreciseCallStateChanged(mPreciseCallStateHandler); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } @Test Loading Loading @@ -166,19 +183,19 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).registerForPreciseCallStateChanged(any(), anyInt(), any()); mSimulatedCommands.setN1ModeEnabled(false, null); mN1ModeCaptor.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setNrSaDisabledForWfc(true); mTestImsNrSaModeHandler.setWifiRegStatus(true); mTestImsNrSaModeHandler.setImsCallStatus(true); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_NONE, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -195,7 +212,7 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).registerForPreciseCallStateChanged(any(), anyInt(), any()); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.setImsCallStatus(true); mSimulatedCommands.setVonrEnabled(true); Loading @@ -203,10 +220,10 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); processAllMessages(); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.setImsCallStatus(true); mSimulatedCommands.setVonrEnabled(false); Loading @@ -214,10 +231,10 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); processAllMessages(); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.setImsCallStatus(true); mSimulatedCommands.setVonrEnabled(true); Loading @@ -225,7 +242,7 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_NONE, mFeatureTags); processAllMessages(); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -241,20 +258,20 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).unregisterForPreciseCallStateChanged(mTestImsNrSaModeHandler); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); mSimulatedCommands.setN1ModeEnabled(false, null); mN1ModeCaptor.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setWifiRegStatus(true); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_NONE, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -270,12 +287,12 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone, times(0)).unregisterForPreciseCallStateChanged(mTestImsNrSaModeHandler); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -290,12 +307,12 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).unregisterForPreciseCallStateChanged(mTestImsNrSaModeHandler); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading Loading @@ -374,13 +391,13 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mCarrierConfigChangeListener.onCarrierConfigChanged(mAnyInt, mAnyInt, mAnyInt, mAnyInt); mTestImsNrSaModeHandler.updateImsCapability(CAPABILITY_TYPE_VOICE); mSimulatedCommands.setN1ModeEnabled(false, null); mN1ModeCaptor.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setNrSaDisabledForWfc(true); mTestImsNrSaModeHandler.setWifiRegStatus(true); mTestImsNrSaModeHandler.onImsUnregistered(REGISTRATION_TECH_IWLAN); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -399,19 +416,19 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mTestImsNrSaModeHandler.setWifiRegStatus(true); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertTrue(mTestImsNrSaModeHandler.isImsCallOngoing()); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); doReturn(mIdleState).when(mForegroundCall).getState(); doReturn(mIdleState).when(mBackgroundCall).getState(); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertFalse(mTestImsNrSaModeHandler.isImsCallOngoing()); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } @Test Loading @@ -430,19 +447,19 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mTestImsNrSaModeHandler.setWifiRegStatus(true); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mSimulatedCommands.setVonrEnabled(false); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); processAllMessages(); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); doReturn(mIdleState).when(mForegroundCall).getState(); doReturn(mIdleState).when(mBackgroundCall).getState(); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); doReturn(mActiveState).when(mForegroundCall).getState(); doReturn(mActiveState).when(mBackgroundCall).getState(); Loading @@ -450,7 +467,7 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.setImsCallStatus(false); processAllMessages(); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } @Test Loading Loading @@ -483,21 +500,21 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mCarrierConfigChangeListener.onCarrierConfigChanged(mAnyInt, mAnyInt, mAnyInt, mAnyInt); mN1ModeCaptor.setN1ModeEnabled(true, null); verify(mImsPhone).registerForPreciseCallStateChanged( mPreciseCallStateHandlerCaptor.capture(), anyInt(), any()); mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mTestImsNrSaModeHandler.setWifiRegStatus(true); mSimulatedCommands.setN1ModeEnabled(true, null); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertTrue(mTestImsNrSaModeHandler.isImsCallOngoing()); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); mTestImsNrSaModeHandler.updateImsCapability(CAPABILITY_TYPE_VOICE); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); mTestImsNrSaModeHandler.updateImsCapability(0); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } } Loading
flags/network.aconfig +0 −12 Original line number Diff line number Diff line package: "com.android.internal.telephony.flags" container: "system" # OWNER=nharold TARGET=24Q1 flag { name: "enable_carrier_config_n1_control_attempt2" namespace: "telephony" description: "enabling this flag allows KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY to control N1 mode enablement" bug:"328848947" metadata { purpose: PURPOSE_BUGFIX } } # OWNER=sarahchin TARGET=24Q1 flag { name: "hide_roaming_icon" Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +14 −20 Original line number Diff line number Diff line Loading @@ -2463,7 +2463,6 @@ public class GsmCdmaPhone extends Phone { */ @Override public void setN1ModeEnabled(boolean enable, @Nullable Message result) { if (mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) { // This might be called by IMS on another thread, so to avoid the requirement to // lock, post it through the handler. post(() -> { Loading @@ -2478,9 +2477,6 @@ public class GsmCdmaPhone extends Phone { maybeUpdateModemN1Mode(result); } }); } else { super.setN1ModeEnabled(enable, result); } } /** Only called on the handler thread. */ Loading @@ -2504,8 +2500,6 @@ public class GsmCdmaPhone extends Phone { /** Only called on the handler thread. */ private void updateCarrierN1ModeSupported(@NonNull PersistableBundle b) { if (!mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) return; if (!CarrierConfigManager.isConfigForIdentifiedCarrier(b)) return; final int[] supportedNrModes = b.getIntArray( Loading
src/java/com/android/internal/telephony/imsphone/ImsNrSaModeHandler.java +18 −2 Original line number Diff line number Diff line Loading @@ -61,6 +61,14 @@ public class ImsNrSaModeHandler extends Handler{ private final @NonNull ImsPhone mPhone; private @Nullable CarrierConfigManager mCarrierConfigManager; @FunctionalInterface public interface N1ModeSetter { /** Override-able for testing */ void setN1ModeEnabled(boolean enabled, @Nullable Message message); } private N1ModeSetter mN1ModeSetter; private @NrSaDisablePolicy int mNrSaDisablePolicy; private boolean mIsNrSaDisabledForWfc; private boolean mIsWifiRegistered; Loading @@ -73,7 +81,10 @@ public class ImsNrSaModeHandler extends Handler{ public ImsNrSaModeHandler(@NonNull ImsPhone phone, Looper looper) { super(looper); mPhone = phone; mN1ModeSetter = mPhone.getDefaultPhone()::setN1ModeEnabled; mCarrierConfigManager = (CarrierConfigManager) mPhone.getContext() .getSystemService(Context.CARRIER_CONFIG_SERVICE); Loading Loading @@ -257,8 +268,13 @@ public class ImsNrSaModeHandler extends Handler{ } } @VisibleForTesting public void setN1ModeSetter(N1ModeSetter setter) { mN1ModeSetter = setter; } private void setNrSaMode(boolean onOrOff) { mPhone.getDefaultPhone().setN1ModeEnabled(onOrOff, null); mN1ModeSetter.setN1ModeEnabled(onOrOff, null); Log.i(TAG, "setNrSaMode : " + onOrOff); setNrSaDisabledForWfc(!onOrOff); Loading
tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java +0 −12 Original line number Diff line number Diff line Loading @@ -1519,8 +1519,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_incompleteCarrierConfig_changeNeeded() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY, Loading Loading @@ -1550,8 +1548,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_noChangeNeeded() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY, Loading @@ -1574,8 +1570,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_needsChange() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); bundle.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY, Loading @@ -1598,8 +1592,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_CarrierConfigChanges() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); // Initialize the inner cache and set the modem to N1 mode = enabled/true testNrCapabilityChanged_firstRequest_needsChange(); Loading @@ -1620,8 +1612,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_CarrierConfigChanges_ErrorResponse() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; for (int i = 0; i < 2; i++) { PersistableBundle bundle = mContextFixture.getCarrierConfigBundle(); Loading @@ -1646,8 +1636,6 @@ public class GsmCdmaPhoneTest extends TelephonyTest { @Test public void testNrCapabilityChanged_firstRequest_ImsChanges() { when(mFeatureFlags.enableCarrierConfigN1ControlAttempt2()).thenReturn(true); mPhoneUT.mCi = mMockCi; Message passthroughMessage = mTestHandler.obtainMessage(0xC0FFEE); Loading
tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsNrSaModeHandlerTest.java +49 −32 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import android.os.Handler; import android.os.Message; import android.telephony.CarrierConfigManager; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading Loading @@ -79,12 +80,29 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ private int mAnyInt = 0; private final Set<String> mFeatureTags = new ArraySet<String>(); private class N1ModeHandlerCaptor implements ImsNrSaModeHandler.N1ModeSetter { private boolean mIsN1ModeEnabled = false; public void setN1ModeEnabled(boolean enabled, Message message) { mIsN1ModeEnabled = enabled; mSimulatedCommands.setN1ModeEnabled(enabled, message); } public boolean isN1ModeEnabled() { return mIsN1ModeEnabled; }; }; private N1ModeHandlerCaptor mN1ModeCaptor; @Before public void setUp() throws Exception { super.setUp(getClass().getSimpleName()); MockitoAnnotations.initMocks(this); mTestImsNrSaModeHandler = new ImsNrSaModeHandler(mImsPhone, mTestableLooper.getLooper()); mN1ModeCaptor = new N1ModeHandlerCaptor(); mTestImsNrSaModeHandler.setN1ModeSetter(mN1ModeCaptor); verify(mCarrierConfigManager).registerCarrierConfigChangeListener( any(), mCarrierConfigChangeListenerCaptor.capture()); Loading Loading @@ -128,14 +146,13 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mPreciseCallStateHandlerCaptor.capture(), anyInt(), any()); mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mSimulatedCommands.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setNrSaDisabledForWfc(true); mTestImsNrSaModeHandler.tearDown(); verify(mCarrierConfigManager).unregisterCarrierConfigChangeListener(any()); verify(mImsPhone).unregisterForPreciseCallStateChanged(mPreciseCallStateHandler); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } @Test Loading Loading @@ -166,19 +183,19 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).registerForPreciseCallStateChanged(any(), anyInt(), any()); mSimulatedCommands.setN1ModeEnabled(false, null); mN1ModeCaptor.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setNrSaDisabledForWfc(true); mTestImsNrSaModeHandler.setWifiRegStatus(true); mTestImsNrSaModeHandler.setImsCallStatus(true); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_NONE, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -195,7 +212,7 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).registerForPreciseCallStateChanged(any(), anyInt(), any()); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.setImsCallStatus(true); mSimulatedCommands.setVonrEnabled(true); Loading @@ -203,10 +220,10 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); processAllMessages(); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.setImsCallStatus(true); mSimulatedCommands.setVonrEnabled(false); Loading @@ -214,10 +231,10 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); processAllMessages(); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.setImsCallStatus(true); mSimulatedCommands.setVonrEnabled(true); Loading @@ -225,7 +242,7 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_NONE, mFeatureTags); processAllMessages(); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -241,20 +258,20 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).unregisterForPreciseCallStateChanged(mTestImsNrSaModeHandler); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); mSimulatedCommands.setN1ModeEnabled(false, null); mN1ModeCaptor.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setWifiRegStatus(true); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_NONE, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -270,12 +287,12 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone, times(0)).unregisterForPreciseCallStateChanged(mTestImsNrSaModeHandler); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -290,12 +307,12 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ verify(mImsPhone).unregisterForPreciseCallStateChanged(mTestImsNrSaModeHandler); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mTestImsNrSaModeHandler.setWifiRegStatus(false); mTestImsNrSaModeHandler.onImsRegistered(REGISTRATION_TECH_IWLAN, mFeatureTags); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertTrue(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading Loading @@ -374,13 +391,13 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mCarrierConfigChangeListener.onCarrierConfigChanged(mAnyInt, mAnyInt, mAnyInt, mAnyInt); mTestImsNrSaModeHandler.updateImsCapability(CAPABILITY_TYPE_VOICE); mSimulatedCommands.setN1ModeEnabled(false, null); mN1ModeCaptor.setN1ModeEnabled(false, null); mTestImsNrSaModeHandler.setNrSaDisabledForWfc(true); mTestImsNrSaModeHandler.setWifiRegStatus(true); mTestImsNrSaModeHandler.onImsUnregistered(REGISTRATION_TECH_IWLAN); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); assertFalse(mTestImsNrSaModeHandler.isWifiRegistered()); } Loading @@ -399,19 +416,19 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mTestImsNrSaModeHandler.setWifiRegStatus(true); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertTrue(mTestImsNrSaModeHandler.isImsCallOngoing()); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); doReturn(mIdleState).when(mForegroundCall).getState(); doReturn(mIdleState).when(mBackgroundCall).getState(); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertFalse(mTestImsNrSaModeHandler.isImsCallOngoing()); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } @Test Loading @@ -430,19 +447,19 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mTestImsNrSaModeHandler.setWifiRegStatus(true); mSimulatedCommands.setN1ModeEnabled(true, null); mN1ModeCaptor.setN1ModeEnabled(true, null); mSimulatedCommands.setVonrEnabled(false); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); processAllMessages(); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); doReturn(mIdleState).when(mForegroundCall).getState(); doReturn(mIdleState).when(mBackgroundCall).getState(); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); doReturn(mActiveState).when(mForegroundCall).getState(); doReturn(mActiveState).when(mBackgroundCall).getState(); Loading @@ -450,7 +467,7 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mTestImsNrSaModeHandler.setImsCallStatus(false); processAllMessages(); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } @Test Loading Loading @@ -483,21 +500,21 @@ public final class ImsNrSaModeHandlerTest extends TelephonyTest{ mCarrierConfigChangeListener.onCarrierConfigChanged(mAnyInt, mAnyInt, mAnyInt, mAnyInt); mN1ModeCaptor.setN1ModeEnabled(true, null); verify(mImsPhone).registerForPreciseCallStateChanged( mPreciseCallStateHandlerCaptor.capture(), anyInt(), any()); mPreciseCallStateHandler = mPreciseCallStateHandlerCaptor.getValue(); mTestImsNrSaModeHandler.setWifiRegStatus(true); mSimulatedCommands.setN1ModeEnabled(true, null); mPreciseCallStateHandler.handleMessage(mPreciseCallStateHandler.obtainMessage(101)); assertTrue(mTestImsNrSaModeHandler.isImsCallOngoing()); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); mTestImsNrSaModeHandler.updateImsCapability(CAPABILITY_TYPE_VOICE); assertFalse(mSimulatedCommands.isN1ModeEnabled()); assertFalse(mN1ModeCaptor.isN1ModeEnabled()); mTestImsNrSaModeHandler.updateImsCapability(0); assertTrue(mSimulatedCommands.isN1ModeEnabled()); assertTrue(mN1ModeCaptor.isN1ModeEnabled()); } }