Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +28 −5 Original line number Diff line number Diff line Loading @@ -294,7 +294,8 @@ public class MobileSignalController extends SignalController< } boolean dataDisabled = mCurrentState.userSetup && (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED || mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA); || (mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA && mCurrentState.defaultDataOff)); boolean noInternet = mCurrentState.inetCondition == 0; boolean cutOut = dataDisabled || noInternet; return SignalDrawable.getState(level, getNumLevels(), cutOut); Loading @@ -320,7 +321,7 @@ public class MobileSignalController extends SignalController< dataContentDescription = mContext.getString(R.string.data_connection_no_internet); } final boolean dataDisabled = (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED || mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA) || (mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA)) && mCurrentState.userSetup; // Show icon in QS when we are connected or data is disabled. Loading Loading @@ -484,6 +485,7 @@ public class MobileSignalController extends SignalController< Log.d(mTag, "updateTelephonySignalStrength: hasService=" + Utils.isInService(mServiceState) + " ss=" + mSignalStrength); } checkDefaultData(); mCurrentState.connected = Utils.isInService(mServiceState) && mSignalStrength != null; if (mCurrentState.connected) { Loading Loading @@ -541,6 +543,23 @@ public class MobileSignalController extends SignalController< notifyListenersIfNecessary(); } /** * If we are controlling the NOT_DEFAULT_DATA icon, check the status of the other one */ private void checkDefaultData() { if (mCurrentState.iconGroup != TelephonyIcons.NOT_DEFAULT_DATA) { mCurrentState.defaultDataOff = false; return; } mCurrentState.defaultDataOff = mNetworkController.isDataControllerDisabled(); } void onMobileDataChanged() { checkDefaultData(); notifyListenersIfNecessary(); } private MobileIconGroup getNr5GIconGroup() { if (mServiceState == null) return null; Loading Loading @@ -617,7 +636,7 @@ public class MobileSignalController extends SignalController< return candidateIconGroup; } private boolean isDataDisabled() { boolean isDataDisabled() { return !mPhone.isDataCapable(); } Loading Loading @@ -750,6 +769,7 @@ public class MobileSignalController extends SignalController< boolean isDefault; boolean userSetup; boolean roaming; boolean defaultDataOff; // Tracks the on/off state of the defaultDataSubscription @Override public void copyFrom(State s) { Loading @@ -765,6 +785,7 @@ public class MobileSignalController extends SignalController< carrierNetworkChangeMode = state.carrierNetworkChangeMode; userSetup = state.userSetup; roaming = state.roaming; defaultDataOff = state.defaultDataOff; } @Override Loading @@ -781,7 +802,8 @@ public class MobileSignalController extends SignalController< builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) .append(','); builder.append("userSetup=").append(userSetup); builder.append("userSetup=").append(userSetup).append(','); builder.append("defaultDataOff=").append(defaultDataOff); } @Override Loading @@ -796,7 +818,8 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).userSetup == userSetup && ((MobileState) o).isDefault == isDefault && ((MobileState) o).roaming == roaming; && ((MobileState) o).roaming == roaming && ((MobileState) o).defaultDataOff == defaultDataOff; } } } packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +17 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ public class NetworkControllerImpl extends BroadcastReceiver @Override public void onMobileDataEnabled(boolean enabled) { mCallbackHandler.setMobileDataEnabled(enabled); notifyControllersMobileDataChanged(); } }); mWifiSignalController = new WifiSignalController(mContext, mHasMobileDataFeature, Loading Loading @@ -386,6 +387,22 @@ public class NetworkControllerImpl extends BroadcastReceiver return mMobileSignalControllers.size(); } boolean isDataControllerDisabled() { MobileSignalController dataController = getDataController(); if (dataController == null) { return false; } return dataController.isDataDisabled(); } private void notifyControllersMobileDataChanged() { for (int i = 0; i < mMobileSignalControllers.size(); i++) { MobileSignalController mobileSignalController = mMobileSignalControllers.valueAt(i); mobileSignalController.onMobileDataChanged(); } } public boolean isEmergencyOnly() { if (mMobileSignalControllers.size() == 0) { // When there are no active subscriptions, determine emengency state from last Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { } @Test public void testNoInternetIcon_withoutDefaultSub() { public void testNonDefaultSIM_showsFullSignal_connected() { setupNetworkController(); when(mMockTm.isDataCapable()).thenReturn(false); setupDefaultSignal(); Loading @@ -158,11 +158,11 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { // Verify that a SignalDrawable with a cut out is used to display data disabled. verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0, true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false, false, true, NOT_DEFAULT_DATA_STRING); false, false, NOT_DEFAULT_DATA_STRING); } @Test public void testDataDisabledIcon_withoutDefaultSub() { public void testNonDefaultSIM_showsFullSignal_disconnected() { setupNetworkController(); when(mMockTm.isDataCapable()).thenReturn(false); setupDefaultSignal(); Loading @@ -173,7 +173,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { // Verify that a SignalDrawable with a cut out is used to display data disabled. verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0, true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false, false, true, NOT_DEFAULT_DATA_STRING); false, false, NOT_DEFAULT_DATA_STRING); } @Test Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +28 −5 Original line number Diff line number Diff line Loading @@ -294,7 +294,8 @@ public class MobileSignalController extends SignalController< } boolean dataDisabled = mCurrentState.userSetup && (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED || mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA); || (mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA && mCurrentState.defaultDataOff)); boolean noInternet = mCurrentState.inetCondition == 0; boolean cutOut = dataDisabled || noInternet; return SignalDrawable.getState(level, getNumLevels(), cutOut); Loading @@ -320,7 +321,7 @@ public class MobileSignalController extends SignalController< dataContentDescription = mContext.getString(R.string.data_connection_no_internet); } final boolean dataDisabled = (mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED || mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA) || (mCurrentState.iconGroup == TelephonyIcons.NOT_DEFAULT_DATA)) && mCurrentState.userSetup; // Show icon in QS when we are connected or data is disabled. Loading Loading @@ -484,6 +485,7 @@ public class MobileSignalController extends SignalController< Log.d(mTag, "updateTelephonySignalStrength: hasService=" + Utils.isInService(mServiceState) + " ss=" + mSignalStrength); } checkDefaultData(); mCurrentState.connected = Utils.isInService(mServiceState) && mSignalStrength != null; if (mCurrentState.connected) { Loading Loading @@ -541,6 +543,23 @@ public class MobileSignalController extends SignalController< notifyListenersIfNecessary(); } /** * If we are controlling the NOT_DEFAULT_DATA icon, check the status of the other one */ private void checkDefaultData() { if (mCurrentState.iconGroup != TelephonyIcons.NOT_DEFAULT_DATA) { mCurrentState.defaultDataOff = false; return; } mCurrentState.defaultDataOff = mNetworkController.isDataControllerDisabled(); } void onMobileDataChanged() { checkDefaultData(); notifyListenersIfNecessary(); } private MobileIconGroup getNr5GIconGroup() { if (mServiceState == null) return null; Loading Loading @@ -617,7 +636,7 @@ public class MobileSignalController extends SignalController< return candidateIconGroup; } private boolean isDataDisabled() { boolean isDataDisabled() { return !mPhone.isDataCapable(); } Loading Loading @@ -750,6 +769,7 @@ public class MobileSignalController extends SignalController< boolean isDefault; boolean userSetup; boolean roaming; boolean defaultDataOff; // Tracks the on/off state of the defaultDataSubscription @Override public void copyFrom(State s) { Loading @@ -765,6 +785,7 @@ public class MobileSignalController extends SignalController< carrierNetworkChangeMode = state.carrierNetworkChangeMode; userSetup = state.userSetup; roaming = state.roaming; defaultDataOff = state.defaultDataOff; } @Override Loading @@ -781,7 +802,8 @@ public class MobileSignalController extends SignalController< builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) .append(','); builder.append("userSetup=").append(userSetup); builder.append("userSetup=").append(userSetup).append(','); builder.append("defaultDataOff=").append(defaultDataOff); } @Override Loading @@ -796,7 +818,8 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).userSetup == userSetup && ((MobileState) o).isDefault == isDefault && ((MobileState) o).roaming == roaming; && ((MobileState) o).roaming == roaming && ((MobileState) o).defaultDataOff == defaultDataOff; } } }
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +17 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ public class NetworkControllerImpl extends BroadcastReceiver @Override public void onMobileDataEnabled(boolean enabled) { mCallbackHandler.setMobileDataEnabled(enabled); notifyControllersMobileDataChanged(); } }); mWifiSignalController = new WifiSignalController(mContext, mHasMobileDataFeature, Loading Loading @@ -386,6 +387,22 @@ public class NetworkControllerImpl extends BroadcastReceiver return mMobileSignalControllers.size(); } boolean isDataControllerDisabled() { MobileSignalController dataController = getDataController(); if (dataController == null) { return false; } return dataController.isDataDisabled(); } private void notifyControllersMobileDataChanged() { for (int i = 0; i < mMobileSignalControllers.size(); i++) { MobileSignalController mobileSignalController = mMobileSignalControllers.valueAt(i); mobileSignalController.onMobileDataChanged(); } } public boolean isEmergencyOnly() { if (mMobileSignalControllers.size() == 0) { // When there are no active subscriptions, determine emengency state from last Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { } @Test public void testNoInternetIcon_withoutDefaultSub() { public void testNonDefaultSIM_showsFullSignal_connected() { setupNetworkController(); when(mMockTm.isDataCapable()).thenReturn(false); setupDefaultSignal(); Loading @@ -158,11 +158,11 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { // Verify that a SignalDrawable with a cut out is used to display data disabled. verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0, true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false, false, true, NOT_DEFAULT_DATA_STRING); false, false, NOT_DEFAULT_DATA_STRING); } @Test public void testDataDisabledIcon_withoutDefaultSub() { public void testNonDefaultSIM_showsFullSignal_disconnected() { setupNetworkController(); when(mMockTm.isDataCapable()).thenReturn(false); setupDefaultSignal(); Loading @@ -173,7 +173,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { // Verify that a SignalDrawable with a cut out is used to display data disabled. verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, 0, true, DEFAULT_QS_SIGNAL_STRENGTH, 0, false, false, true, NOT_DEFAULT_DATA_STRING); false, false, NOT_DEFAULT_DATA_STRING); } @Test Loading