Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalController.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -153,7 +153,11 @@ public abstract class SignalController<T extends SignalController.State, return getIcons().mSbDarkIcons[mCurrentState.inetCondition][mCurrentState.level]; return getIcons().mSbDarkIcons[mCurrentState.inetCondition][mCurrentState.level]; } } } else if (mCurrentState.enabled) { } else if (mCurrentState.enabled) { if (light) { return getIcons().mSbDiscState; return getIcons().mSbDiscState; } else { return getIcons().mSbDarkDiscState; } } else { } else { return getIcons().mSbNullState; return getIcons().mSbNullState; } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +18 −3 Original line number Original line Diff line number Diff line Loading @@ -234,6 +234,11 @@ public class NetworkControllerBaseTest extends SysuiTestCase { mPhoneStateListener.onDataActivity(dataActivity); mPhoneStateListener.onDataActivity(dataActivity); } } public void setCarrierNetworkChange(boolean enable) { Log.d(TAG, "setCarrierNetworkChange(" + enable + ")"); mPhoneStateListener.onCarrierNetworkChange(enable); } protected void verifyHasNoSims(boolean hasNoSimsVisible) { protected void verifyHasNoSims(boolean hasNoSimsVisible) { ArgumentCaptor<Boolean> hasNoSimsArg = ArgumentCaptor.forClass(Boolean.class); ArgumentCaptor<Boolean> hasNoSimsArg = ArgumentCaptor.forClass(Boolean.class); Loading Loading @@ -273,19 +278,29 @@ public class NetworkControllerBaseTest extends SysuiTestCase { } } protected void verifyLastMobileDataIndicators(boolean visible, int icon, int typeIcon) { protected void verifyLastMobileDataIndicators(boolean visible, int icon, int typeIcon) { ArgumentCaptor<Integer> iconArg = ArgumentCaptor.forClass(Integer.class); verifyLastMobileDataIndicators(visible, icon, icon, typeIcon); } protected void verifyLastMobileDataIndicators(boolean visible, int strengthIcon, int darkStrengthIcon, int typeIcon) { ArgumentCaptor<Integer> strengthIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> darkStrengthIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> typeIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> typeIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Boolean> visibleArg = ArgumentCaptor.forClass(Boolean.class); ArgumentCaptor<Boolean> visibleArg = ArgumentCaptor.forClass(Boolean.class); // TODO: Verify all fields. // TODO: Verify all fields. Mockito.verify(mSignalCluster, Mockito.atLeastOnce()).setMobileDataIndicators( Mockito.verify(mSignalCluster, Mockito.atLeastOnce()).setMobileDataIndicators( visibleArg.capture(), iconArg.capture(), iconArg.capture(), typeIconArg.capture(), visibleArg.capture(), strengthIconArg.capture(), darkStrengthIconArg.capture(), typeIconArg.capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(Boolean.class).capture(), ArgumentCaptor.forClass(Boolean.class).capture(), ArgumentCaptor.forClass(Integer.class).capture()); ArgumentCaptor.forClass(Integer.class).capture()); assertEquals("Signal icon in status bar", icon, (int) iconArg.getValue()); assertEquals("Signal strength icon in status bar", strengthIcon, (int) strengthIconArg.getValue()); assertEquals("Signal strength icon (dark mode) in status bar", darkStrengthIcon, (int) darkStrengthIconArg.getValue()); assertEquals("Data icon in status bar", typeIcon, (int) typeIconArg.getValue()); assertEquals("Data icon in status bar", typeIcon, (int) typeIconArg.getValue()); assertEquals("Visibility in status bar", visible, (boolean) visibleArg.getValue()); assertEquals("Visibility in status bar", visible, (boolean) visibleArg.getValue()); } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java +61 −0 Original line number Original line Diff line number Diff line Loading @@ -396,4 +396,65 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { false /* dataOut */); false /* dataOut */); } } public void testCarrierNetworkChange_carrierNetworkChangeWhileConnected() { int strength = SignalStrength.SIGNAL_STRENGTH_GREAT; setupDefaultSignal(); setLevel(strength); // API call is made setCarrierNetworkChange(true /* enabled */); // Boolean value is set, but we still have a signal, should be showing normal verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); // Lose voice but still have data setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE); verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); // Voice but no data setVoiceRegState(ServiceState.STATE_IN_SERVICE); setDataRegState(ServiceState.STATE_OUT_OF_SERVICE); verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); } public void testCarrierNetworkChange_carrierNetworkChangeWhileDisconnected() { int strength = SignalStrength.SIGNAL_STRENGTH_GREAT; setupDefaultSignal(); setLevel(strength); // Verify baseline verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); // API call is made and all connectivity lost setCarrierNetworkChange(true /* enabled */); setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE); setDataRegState(ServiceState.STATE_OUT_OF_SERVICE); // Out of service and carrier network change is true, show special indicator verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE[0][0] /* strengthIcon */, TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE_DARK[0][0] /* darkStrengthIcon */, 0 /* typeIcon */); // Revert back setCarrierNetworkChange(false /* enabled */); setVoiceRegState(ServiceState.STATE_IN_SERVICE); setDataRegState(ServiceState.STATE_IN_SERVICE); // Verify back in previous state verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); } } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalController.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -153,7 +153,11 @@ public abstract class SignalController<T extends SignalController.State, return getIcons().mSbDarkIcons[mCurrentState.inetCondition][mCurrentState.level]; return getIcons().mSbDarkIcons[mCurrentState.inetCondition][mCurrentState.level]; } } } else if (mCurrentState.enabled) { } else if (mCurrentState.enabled) { if (light) { return getIcons().mSbDiscState; return getIcons().mSbDiscState; } else { return getIcons().mSbDarkDiscState; } } else { } else { return getIcons().mSbNullState; return getIcons().mSbNullState; } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +18 −3 Original line number Original line Diff line number Diff line Loading @@ -234,6 +234,11 @@ public class NetworkControllerBaseTest extends SysuiTestCase { mPhoneStateListener.onDataActivity(dataActivity); mPhoneStateListener.onDataActivity(dataActivity); } } public void setCarrierNetworkChange(boolean enable) { Log.d(TAG, "setCarrierNetworkChange(" + enable + ")"); mPhoneStateListener.onCarrierNetworkChange(enable); } protected void verifyHasNoSims(boolean hasNoSimsVisible) { protected void verifyHasNoSims(boolean hasNoSimsVisible) { ArgumentCaptor<Boolean> hasNoSimsArg = ArgumentCaptor.forClass(Boolean.class); ArgumentCaptor<Boolean> hasNoSimsArg = ArgumentCaptor.forClass(Boolean.class); Loading Loading @@ -273,19 +278,29 @@ public class NetworkControllerBaseTest extends SysuiTestCase { } } protected void verifyLastMobileDataIndicators(boolean visible, int icon, int typeIcon) { protected void verifyLastMobileDataIndicators(boolean visible, int icon, int typeIcon) { ArgumentCaptor<Integer> iconArg = ArgumentCaptor.forClass(Integer.class); verifyLastMobileDataIndicators(visible, icon, icon, typeIcon); } protected void verifyLastMobileDataIndicators(boolean visible, int strengthIcon, int darkStrengthIcon, int typeIcon) { ArgumentCaptor<Integer> strengthIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> darkStrengthIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> typeIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> typeIconArg = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Boolean> visibleArg = ArgumentCaptor.forClass(Boolean.class); ArgumentCaptor<Boolean> visibleArg = ArgumentCaptor.forClass(Boolean.class); // TODO: Verify all fields. // TODO: Verify all fields. Mockito.verify(mSignalCluster, Mockito.atLeastOnce()).setMobileDataIndicators( Mockito.verify(mSignalCluster, Mockito.atLeastOnce()).setMobileDataIndicators( visibleArg.capture(), iconArg.capture(), iconArg.capture(), typeIconArg.capture(), visibleArg.capture(), strengthIconArg.capture(), darkStrengthIconArg.capture(), typeIconArg.capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(String.class).capture(), ArgumentCaptor.forClass(Boolean.class).capture(), ArgumentCaptor.forClass(Boolean.class).capture(), ArgumentCaptor.forClass(Integer.class).capture()); ArgumentCaptor.forClass(Integer.class).capture()); assertEquals("Signal icon in status bar", icon, (int) iconArg.getValue()); assertEquals("Signal strength icon in status bar", strengthIcon, (int) strengthIconArg.getValue()); assertEquals("Signal strength icon (dark mode) in status bar", darkStrengthIcon, (int) darkStrengthIconArg.getValue()); assertEquals("Data icon in status bar", typeIcon, (int) typeIconArg.getValue()); assertEquals("Data icon in status bar", typeIcon, (int) typeIconArg.getValue()); assertEquals("Visibility in status bar", visible, (boolean) visibleArg.getValue()); assertEquals("Visibility in status bar", visible, (boolean) visibleArg.getValue()); } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java +61 −0 Original line number Original line Diff line number Diff line Loading @@ -396,4 +396,65 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { false /* dataOut */); false /* dataOut */); } } public void testCarrierNetworkChange_carrierNetworkChangeWhileConnected() { int strength = SignalStrength.SIGNAL_STRENGTH_GREAT; setupDefaultSignal(); setLevel(strength); // API call is made setCarrierNetworkChange(true /* enabled */); // Boolean value is set, but we still have a signal, should be showing normal verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); // Lose voice but still have data setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE); verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); // Voice but no data setVoiceRegState(ServiceState.STATE_IN_SERVICE); setDataRegState(ServiceState.STATE_OUT_OF_SERVICE); verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); } public void testCarrierNetworkChange_carrierNetworkChangeWhileDisconnected() { int strength = SignalStrength.SIGNAL_STRENGTH_GREAT; setupDefaultSignal(); setLevel(strength); // Verify baseline verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); // API call is made and all connectivity lost setCarrierNetworkChange(true /* enabled */); setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE); setDataRegState(ServiceState.STATE_OUT_OF_SERVICE); // Out of service and carrier network change is true, show special indicator verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE[0][0] /* strengthIcon */, TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE_DARK[0][0] /* darkStrengthIcon */, 0 /* typeIcon */); // Revert back setCarrierNetworkChange(false /* enabled */); setVoiceRegState(ServiceState.STATE_IN_SERVICE); setDataRegState(ServiceState.STATE_IN_SERVICE); // Verify back in previous state verifyLastMobileDataIndicators(true /* visible */, TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */, DEFAULT_ICON /* typeIcon */); } } }