Merge "Don\'t show data disabled icon when user isn\'t setup" into nyc-dev am: ede4fcea6b

am: a629f50398

* commit 'a629f503980e53750c109762a05267745687a005':
  Don't show data disabled icon when user isn't setup

Change-Id: Ib31efd43c75f743adada0205bd806ca04e78b6c4
This commit is contained in:
Jason Monk
2016-04-29 18:09:15 +00:00
committed by android-build-merger
5 changed files with 64 additions and 6 deletions

View File

@ -409,6 +409,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (mKeyguardBottomArea != null) { if (mKeyguardBottomArea != null) {
mKeyguardBottomArea.setUserSetupComplete(mUserSetup); mKeyguardBottomArea.setUserSetupComplete(mUserSetup);
} }
if (mNetworkController != null) {
mNetworkController.setUserSetupComplete(mUserSetup);
}
} }
if (mIconPolicy != null) { if (mIconPolicy != null) {
mIconPolicy.setCurrentUserSetup(mUserSetup); mIconPolicy.setCurrentUserSetup(mUserSetup);
@ -838,6 +841,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
} }
}); });
mNetworkController = new NetworkControllerImpl(mContext, mHandlerThread.getLooper()); mNetworkController = new NetworkControllerImpl(mContext, mHandlerThread.getLooper());
mNetworkController.setUserSetupComplete(mUserSetup);
mHotspotController = new HotspotControllerImpl(mContext); mHotspotController = new HotspotControllerImpl(mContext);
mBluetoothController = new BluetoothControllerImpl(mContext, mHandlerThread.getLooper()); mBluetoothController = new BluetoothControllerImpl(mContext, mHandlerThread.getLooper());
mSecurityController = new SecurityControllerImpl(mContext); mSecurityController = new SecurityControllerImpl(mContext);

View File

@ -114,6 +114,11 @@ public class MobileSignalController extends SignalController<
notifyListenersIfNecessary(); notifyListenersIfNecessary();
} }
public void setUserSetupComplete(boolean userSetup) {
mCurrentState.userSetup = userSetup;
notifyListenersIfNecessary();
}
@Override @Override
public void updateConnectivity(BitSet connectedTransports, BitSet validatedTransports) { public void updateConnectivity(BitSet connectedTransports, BitSet validatedTransports) {
boolean isValidated = validatedTransports.get(mTransportType); boolean isValidated = validatedTransports.get(mTransportType);
@ -204,11 +209,13 @@ public class MobileSignalController extends SignalController<
String contentDescription = getStringIfExists(getContentDescription()); String contentDescription = getStringIfExists(getContentDescription());
String dataContentDescription = getStringIfExists(icons.mDataContentDescription); 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 boolean showDataIcon = mCurrentState.dataConnected
|| mCurrentState.iconGroup == TelephonyIcons.ROAMING || mCurrentState.iconGroup == TelephonyIcons.ROAMING
|| mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED; || dataDisabled;
IconState statusIcon = new IconState(mCurrentState.enabled && !mCurrentState.airplaneMode, IconState statusIcon = new IconState(mCurrentState.enabled && !mCurrentState.airplaneMode,
getCurrentIconId(), contentDescription); getCurrentIconId(), contentDescription);
@ -230,7 +237,7 @@ public class MobileSignalController extends SignalController<
&& mCurrentState.activityOut; && mCurrentState.activityOut;
showDataIcon &= mCurrentState.isDefault showDataIcon &= mCurrentState.isDefault
|| mCurrentState.iconGroup == TelephonyIcons.ROAMING || mCurrentState.iconGroup == TelephonyIcons.ROAMING
|| mCurrentState.iconGroup == TelephonyIcons.DATA_DISABLED; || dataDisabled;
int typeIcon = showDataIcon ? icons.mDataType : 0; int typeIcon = showDataIcon ? icons.mDataType : 0;
callback.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, qsTypeIcon, callback.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, qsTypeIcon,
activityIn, activityOut, dataContentDescription, description, icons.mIsWide, activityIn, activityOut, dataContentDescription, description, icons.mIsWide,
@ -511,6 +518,7 @@ public class MobileSignalController extends SignalController<
boolean airplaneMode; boolean airplaneMode;
boolean carrierNetworkChangeMode; boolean carrierNetworkChangeMode;
boolean isDefault; boolean isDefault;
boolean userSetup;
@Override @Override
public void copyFrom(State s) { public void copyFrom(State s) {
@ -524,6 +532,7 @@ public class MobileSignalController extends SignalController<
isEmergency = state.isEmergency; isEmergency = state.isEmergency;
airplaneMode = state.airplaneMode; airplaneMode = state.airplaneMode;
carrierNetworkChangeMode = state.carrierNetworkChangeMode; carrierNetworkChangeMode = state.carrierNetworkChangeMode;
userSetup = state.userSetup;
} }
@Override @Override
@ -537,7 +546,9 @@ public class MobileSignalController extends SignalController<
builder.append("isDefault=").append(isDefault).append(','); builder.append("isDefault=").append(isDefault).append(',');
builder.append("isEmergency=").append(isEmergency).append(','); builder.append("isEmergency=").append(isEmergency).append(',');
builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("airplaneMode=").append(airplaneMode).append(',');
builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode)
.append(',');
builder.append("userSetup=").append(userSetup);
} }
@Override @Override
@ -550,6 +561,7 @@ public class MobileSignalController extends SignalController<
&& ((MobileState) o).isEmergency == isEmergency && ((MobileState) o).isEmergency == isEmergency
&& ((MobileState) o).airplaneMode == airplaneMode && ((MobileState) o).airplaneMode == airplaneMode
&& ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode
&& ((MobileState) o).userSetup == userSetup
&& ((MobileState) o).isDefault == isDefault; && ((MobileState) o).isDefault == isDefault;
} }
} }

View File

@ -130,6 +130,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
@VisibleForTesting @VisibleForTesting
ServiceState mLastServiceState; ServiceState mLastServiceState;
private boolean mUserSetup;
/** /**
* Construct this controller object and register for updates. * Construct this controller object and register for updates.
@ -490,6 +491,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
MobileSignalController controller = new MobileSignalController(mContext, mConfig, MobileSignalController controller = new MobileSignalController(mContext, mConfig,
mHasMobileDataFeature, mPhone, mCallbackHandler, mHasMobileDataFeature, mPhone, mCallbackHandler,
this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper()); this, subscriptions.get(i), mSubDefaults, mReceiverHandler.getLooper());
controller.setUserSetupComplete(mUserSetup);
mMobileSignalControllers.put(subId, controller); mMobileSignalControllers.put(subId, controller);
if (subscriptions.get(i).getSimSlotIndex() == 0) { if (subscriptions.get(i).getSimSlotIndex() == 0) {
mDefaultSignalController = controller; mDefaultSignalController = controller;
@ -516,6 +518,23 @@ public class NetworkControllerImpl extends BroadcastReceiver
updateAirplaneMode(true /* force */); 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 @VisibleForTesting
boolean hasCorrectMobileControllers(List<SubscriptionInfo> allSubscriptions) { boolean hasCorrectMobileControllers(List<SubscriptionInfo> allSubscriptions) {
if (allSubscriptions.size() != mMobileSignalControllers.size()) { if (allSubscriptions.size() != mMobileSignalControllers.size()) {

View File

@ -111,6 +111,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
when(mMockTm.getDataEnabled(mSubId)).thenReturn(true); when(mMockTm.getDataEnabled(mSubId)).thenReturn(true);
setDefaultSubId(mSubId); setDefaultSubId(mSubId);
setSubscriptions(mSubId); setSubscriptions(mSubId);
mNetworkController.handleSetUserSetupComplete(true);
mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId); mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId);
mPhoneStateListener = mMobileSignalController.mPhoneStateListener; mPhoneStateListener = mMobileSignalController.mPhoneStateListener;
} }

View File

@ -1,9 +1,9 @@
package com.android.systemui.statusbar.policy; package com.android.systemui.statusbar.policy;
import android.net.NetworkCapabilities;
import android.os.Looper; import android.os.Looper;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.test.suitebuilder.annotation.SmallTest; import android.test.suitebuilder.annotation.SmallTest;
import com.android.settingslib.net.DataUsageController; import com.android.settingslib.net.DataUsageController;
import org.mockito.Mockito; import org.mockito.Mockito;
@ -99,6 +99,29 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
TelephonyIcons.QS_DATA_4G); 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() { public void test4gDataIconConfigChange() {
setupDefaultSignal(); setupDefaultSignal();
updateDataConnectionState(TelephonyManager.DATA_CONNECTED, updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
@ -145,7 +168,6 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON); verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON);
verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH,
DEFAULT_QS_ICON, in, out); DEFAULT_QS_ICON, in, out);
} }
private void verifyDataIndicators(int dataIcon, int qsDataIcon) { private void verifyDataIndicators(int dataIcon, int qsDataIcon) {