Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +4 −0 Original line number Diff line number Diff line Loading @@ -409,6 +409,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mKeyguardBottomArea != null) { mKeyguardBottomArea.setUserSetupComplete(mUserSetup); } if (mNetworkController != null) { mNetworkController.setUserSetupComplete(mUserSetup); } } if (mIconPolicy != null) { mIconPolicy.setCurrentUserSetup(mUserSetup); Loading Loading @@ -838,6 +841,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } }); mNetworkController = new NetworkControllerImpl(mContext, mHandlerThread.getLooper()); mNetworkController.setUserSetupComplete(mUserSetup); mHotspotController = new HotspotControllerImpl(mContext); mBluetoothController = new BluetoothControllerImpl(mContext, mHandlerThread.getLooper()); mSecurityController = new SecurityControllerImpl(mContext); Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +16 −4 Original line number Diff line number Diff line Loading @@ -114,6 +114,11 @@ public class MobileSignalController extends SignalController< notifyListenersIfNecessary(); } public void setUserSetupComplete(boolean userSetup) { mCurrentState.userSetup = userSetup; notifyListenersIfNecessary(); } @Override public void updateConnectivity(BitSet connectedTransports, BitSet validatedTransports) { boolean isValidated = validatedTransports.get(mTransportType); Loading Loading @@ -204,11 +209,13 @@ public class MobileSignalController extends SignalController< String contentDescription = getStringIfExists(getContentDescription()); String dataContentDescription = getStringIfExists(icons.mDataContentDescription); final boolean dataDisabled = mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED && mCurrentState.userSetup; // Show icon in QS when we are connected or need to show roaming. // Show icon in QS when we are connected or need to show roaming or data is disabled. boolean showDataIcon = mCurrentState.dataConnected || mCurrentState.iconGroup == TelephonyIcons.ROAMING || mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED; || dataDisabled; IconState statusIcon = new IconState(mCurrentState.enabled && !mCurrentState.airplaneMode, getCurrentIconId(), contentDescription); Loading @@ -230,7 +237,7 @@ public class MobileSignalController extends SignalController< && mCurrentState.activityOut; showDataIcon &= mCurrentState.isDefault || mCurrentState.iconGroup == TelephonyIcons.ROAMING || mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED; || dataDisabled; int typeIcon = showDataIcon ? icons.mDataType : 0; callback.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, qsTypeIcon, activityIn, activityOut, dataContentDescription, description, icons.mIsWide, Loading Loading @@ -511,6 +518,7 @@ public class MobileSignalController extends SignalController< boolean airplaneMode; boolean carrierNetworkChangeMode; boolean isDefault; boolean userSetup; @Override public void copyFrom(State s) { Loading @@ -524,6 +532,7 @@ public class MobileSignalController extends SignalController< isEmergency = state.isEmergency; airplaneMode = state.airplaneMode; carrierNetworkChangeMode = state.carrierNetworkChangeMode; userSetup = state.userSetup; } @Override Loading @@ -537,7 +546,9 @@ public class MobileSignalController extends SignalController< builder.append("isDefault=").append(isDefault).append(','); builder.append("isEmergency=").append(isEmergency).append(','); builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) .append(','); builder.append("userSetup=").append(userSetup); } @Override Loading @@ -550,6 +561,7 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).isEmergency == isEmergency && ((MobileState) o).airplaneMode == airplaneMode && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).userSetup == userSetup && ((MobileState) o).isDefault == isDefault; } } Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +19 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting ServiceState mLastServiceState; private boolean mUserSetup; /** * Construct this controller object and register for updates. Loading Loading @@ -490,6 +491,7 @@ public class NetworkControllerImpl extends BroadcastReceiver MobileSignalController controller = new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper()); controller.setUserSetupComplete(mUserSetup); mMobileSignalControllers.put(subId, controller); if (subscriptions.get(i).getSimSlotIndex() == 0) { mDefaultSignalController = controller; Loading @@ -516,6 +518,23 @@ public class NetworkControllerImpl extends BroadcastReceiver updateAirplaneMode(true /* force */); } public void setUserSetupComplete(final boolean userSetup) { mReceiverHandler.post(new Runnable() { @Override public void run() { handleSetUserSetupComplete(userSetup); } }); } @VisibleForTesting void handleSetUserSetupComplete(boolean userSetup) { mUserSetup = userSetup; for (MobileSignalController controller : mMobileSignalControllers.values()) { controller.setUserSetupComplete(mUserSetup); } } @VisibleForTesting boolean hasCorrectMobileControllers(List<SubscriptionInfo> allSubscriptions) { if (allSubscriptions.size() != mMobileSignalControllers.size()) { Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase { when(mMockTm.getDataEnabled(mSubId)).thenReturn(true); setDefaultSubId(mSubId); setSubscriptions(mSubId); mNetworkController.handleSetUserSetupComplete(true); mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId); mPhoneStateListener = mMobileSignalController.mPhoneStateListener; } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +24 −2 Original line number Diff line number Diff line package com.android.systemui.statusbar.policy; import android.net.NetworkCapabilities; import android.os.Looper; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; import com.android.settingslib.net.DataUsageController; import org.mockito.Mockito; Loading Loading @@ -99,6 +99,29 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { TelephonyIcons.QS_DATA_4G); } public void testDataDisabledIcon() { setupNetworkController(); Mockito.when(mMockTm.getDataEnabled(mSubId)).thenReturn(false); setupDefaultSignal(); updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0); setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false); verifyDataIndicators(TelephonyIcons.ICON_DATA_DISABLED, TelephonyIcons.QS_ICON_DATA_DISABLED); } public void testDataDisabledIcon_UserNotSetup() { setupNetworkController(); Mockito.when(mMockTm.getDataEnabled(mSubId)).thenReturn(false); setupDefaultSignal(); updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0); setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false); mNetworkController.handleSetUserSetupComplete(false); // Don't show the X until the device is setup. verifyDataIndicators(0, 0); } public void test4gDataIconConfigChange() { setupDefaultSignal(); updateDataConnectionState(TelephonyManager.DATA_CONNECTED, Loading Loading @@ -145,7 +168,6 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON); verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, DEFAULT_QS_ICON, in, out); } private void verifyDataIndicators(int dataIcon, int qsDataIcon) { Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +4 −0 Original line number Diff line number Diff line Loading @@ -409,6 +409,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mKeyguardBottomArea != null) { mKeyguardBottomArea.setUserSetupComplete(mUserSetup); } if (mNetworkController != null) { mNetworkController.setUserSetupComplete(mUserSetup); } } if (mIconPolicy != null) { mIconPolicy.setCurrentUserSetup(mUserSetup); Loading Loading @@ -838,6 +841,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } }); mNetworkController = new NetworkControllerImpl(mContext, mHandlerThread.getLooper()); mNetworkController.setUserSetupComplete(mUserSetup); mHotspotController = new HotspotControllerImpl(mContext); mBluetoothController = new BluetoothControllerImpl(mContext, mHandlerThread.getLooper()); mSecurityController = new SecurityControllerImpl(mContext); Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +16 −4 Original line number Diff line number Diff line Loading @@ -114,6 +114,11 @@ public class MobileSignalController extends SignalController< notifyListenersIfNecessary(); } public void setUserSetupComplete(boolean userSetup) { mCurrentState.userSetup = userSetup; notifyListenersIfNecessary(); } @Override public void updateConnectivity(BitSet connectedTransports, BitSet validatedTransports) { boolean isValidated = validatedTransports.get(mTransportType); Loading Loading @@ -204,11 +209,13 @@ public class MobileSignalController extends SignalController< String contentDescription = getStringIfExists(getContentDescription()); String dataContentDescription = getStringIfExists(icons.mDataContentDescription); final boolean dataDisabled = mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED && mCurrentState.userSetup; // Show icon in QS when we are connected or need to show roaming. // Show icon in QS when we are connected or need to show roaming or data is disabled. boolean showDataIcon = mCurrentState.dataConnected || mCurrentState.iconGroup == TelephonyIcons.ROAMING || mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED; || dataDisabled; IconState statusIcon = new IconState(mCurrentState.enabled && !mCurrentState.airplaneMode, getCurrentIconId(), contentDescription); Loading @@ -230,7 +237,7 @@ public class MobileSignalController extends SignalController< && mCurrentState.activityOut; showDataIcon &= mCurrentState.isDefault || mCurrentState.iconGroup == TelephonyIcons.ROAMING || mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED; || dataDisabled; int typeIcon = showDataIcon ? icons.mDataType : 0; callback.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, qsTypeIcon, activityIn, activityOut, dataContentDescription, description, icons.mIsWide, Loading Loading @@ -511,6 +518,7 @@ public class MobileSignalController extends SignalController< boolean airplaneMode; boolean carrierNetworkChangeMode; boolean isDefault; boolean userSetup; @Override public void copyFrom(State s) { Loading @@ -524,6 +532,7 @@ public class MobileSignalController extends SignalController< isEmergency = state.isEmergency; airplaneMode = state.airplaneMode; carrierNetworkChangeMode = state.carrierNetworkChangeMode; userSetup = state.userSetup; } @Override Loading @@ -537,7 +546,9 @@ public class MobileSignalController extends SignalController< builder.append("isDefault=").append(isDefault).append(','); builder.append("isEmergency=").append(isEmergency).append(','); builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) .append(','); builder.append("userSetup=").append(userSetup); } @Override Loading @@ -550,6 +561,7 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).isEmergency == isEmergency && ((MobileState) o).airplaneMode == airplaneMode && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).userSetup == userSetup && ((MobileState) o).isDefault == isDefault; } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +19 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting ServiceState mLastServiceState; private boolean mUserSetup; /** * Construct this controller object and register for updates. Loading Loading @@ -490,6 +491,7 @@ public class NetworkControllerImpl extends BroadcastReceiver MobileSignalController controller = new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper()); controller.setUserSetupComplete(mUserSetup); mMobileSignalControllers.put(subId, controller); if (subscriptions.get(i).getSimSlotIndex() == 0) { mDefaultSignalController = controller; Loading @@ -516,6 +518,23 @@ public class NetworkControllerImpl extends BroadcastReceiver updateAirplaneMode(true /* force */); } public void setUserSetupComplete(final boolean userSetup) { mReceiverHandler.post(new Runnable() { @Override public void run() { handleSetUserSetupComplete(userSetup); } }); } @VisibleForTesting void handleSetUserSetupComplete(boolean userSetup) { mUserSetup = userSetup; for (MobileSignalController controller : mMobileSignalControllers.values()) { controller.setUserSetupComplete(mUserSetup); } } @VisibleForTesting boolean hasCorrectMobileControllers(List<SubscriptionInfo> allSubscriptions) { if (allSubscriptions.size() != mMobileSignalControllers.size()) { Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase { when(mMockTm.getDataEnabled(mSubId)).thenReturn(true); setDefaultSubId(mSubId); setSubscriptions(mSubId); mNetworkController.handleSetUserSetupComplete(true); mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId); mPhoneStateListener = mMobileSignalController.mPhoneStateListener; } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +24 −2 Original line number Diff line number Diff line package com.android.systemui.statusbar.policy; import android.net.NetworkCapabilities; import android.os.Looper; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; import com.android.settingslib.net.DataUsageController; import org.mockito.Mockito; Loading Loading @@ -99,6 +99,29 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { TelephonyIcons.QS_DATA_4G); } public void testDataDisabledIcon() { setupNetworkController(); Mockito.when(mMockTm.getDataEnabled(mSubId)).thenReturn(false); setupDefaultSignal(); updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0); setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false); verifyDataIndicators(TelephonyIcons.ICON_DATA_DISABLED, TelephonyIcons.QS_ICON_DATA_DISABLED); } public void testDataDisabledIcon_UserNotSetup() { setupNetworkController(); Mockito.when(mMockTm.getDataEnabled(mSubId)).thenReturn(false); setupDefaultSignal(); updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0); setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false); mNetworkController.handleSetUserSetupComplete(false); // Don't show the X until the device is setup. verifyDataIndicators(0, 0); } public void test4gDataIconConfigChange() { setupDefaultSignal(); updateDataConnectionState(TelephonyManager.DATA_CONNECTED, Loading Loading @@ -145,7 +168,6 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON); verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, DEFAULT_QS_ICON, in, out); } private void verifyDataIndicators(int dataIcon, int qsDataIcon) { Loading