Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ede4fcea authored by Jason Monk's avatar Jason Monk Committed by Android (Google) Code Review
Browse files

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

parents a5d3e91c fd57ea73
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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);
@@ -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);
+16 −4
Original line number Diff line number Diff line
@@ -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);
@@ -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);

@@ -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,
@@ -511,6 +518,7 @@ public class MobileSignalController extends SignalController<
        boolean airplaneMode;
        boolean carrierNetworkChangeMode;
        boolean isDefault;
        boolean userSetup;

        @Override
        public void copyFrom(State s) {
@@ -524,6 +532,7 @@ public class MobileSignalController extends SignalController<
            isEmergency = state.isEmergency;
            airplaneMode = state.airplaneMode;
            carrierNetworkChangeMode = state.carrierNetworkChangeMode;
            userSetup = state.userSetup;
        }

        @Override
@@ -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
@@ -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;
        }
    }
+19 −0
Original line number Diff line number Diff line
@@ -130,6 +130,7 @@ public class NetworkControllerImpl extends BroadcastReceiver

    @VisibleForTesting
    ServiceState mLastServiceState;
    private boolean mUserSetup;

    /**
     * Construct this controller object and register for updates.
@@ -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;
@@ -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()) {
+1 −0
Original line number Diff line number Diff line
@@ -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;
    }
+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;

@@ -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,
@@ -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) {