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:
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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()) {
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
Reference in New Issue
Block a user