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

Commit 54b20f23 authored by Ying Xu's avatar Ying Xu Committed by Automerger Merge Worker
Browse files

Merge "Only show no internet icons when no other network available" into sc-dev am: 63268672

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13711774

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib641f6ef6a0915766c5dfec831be2c6979d1ca68
parents 1ad43b0f 63268672
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -383,8 +383,15 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
            int qsTypeIcon = 0;
            IconState qsIcon = null;
            CharSequence description = null;
            // Mobile icon will only be shown in the statusbar in 2 scenarios
            // 1. Mobile is the default network, and it is validated
            // 2. Mobile is the default network, it is not validated and there is no other
            // non-Carrier WiFi networks available.
            boolean maybeShowIcons = (mCurrentState.inetCondition == 1)
                    || (mCurrentState.inetCondition == 0
                            && !mNetworkController.isNonCarrierWifiNetworkAvailable());
            // Only send data sim callbacks to QS.
            if (mCurrentState.dataSim && mCurrentState.isDefault) {
            if (mCurrentState.dataSim && mCurrentState.isDefault && maybeShowIcons) {
                qsTypeIcon =
                        (showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.qsDataType : 0;
                qsIcon = new IconState(mCurrentState.enabled
@@ -397,7 +404,7 @@ public class MobileSignalController extends SignalController<MobileState, Mobile
            boolean activityOut = mCurrentState.dataConnected
                    && !mCurrentState.carrierNetworkChangeMode
                    && mCurrentState.activityOut;
            showDataIcon &= mCurrentState.dataSim && mCurrentState.isDefault;
            showDataIcon &= mCurrentState.dataSim && mCurrentState.isDefault && maybeShowIcons;
            boolean showTriangle = showDataIcon && !mCurrentState.airplaneMode;
            int typeIcon = (showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.dataType : 0;
            showDataIcon |= mCurrentState.roaming;
+9 −0
Original line number Diff line number Diff line
@@ -547,6 +547,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
        return mWifiSignalController.isCarrierMergedWifi(subId);
    }

    boolean isNonCarrierWifiNetworkAvailable() {
        return !mNoNetworksAvailable;
    }

    boolean isEthernetDefault() {
        return mConnectedTransports.get(NetworkCapabilities.TRANSPORT_ETHERNET);
    }
@@ -908,6 +912,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
        return true;
    }

    @VisibleForTesting
    void setNoNetworksAvailable(boolean noNetworksAvailable) {
        mNoNetworksAvailable = noNetworksAvailable;
    }

    private void updateAirplaneMode(boolean force) {
        boolean airplaneMode = (Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.AIRPLANE_MODE_ON, 0) == 1);
+30 −10
Original line number Diff line number Diff line
@@ -106,10 +106,18 @@ public class WifiSignalController extends
        if (mCurrentState.inetCondition == 0) {
            contentDescription += ("," + mContext.getString(R.string.data_connection_no_internet));
        }
        IconState statusIcon = new IconState(wifiVisible, getCurrentIconId(), contentDescription);
        if (mProviderModel) {
            // WiFi icon will only be shown in the statusbar in 2 scenarios
            // 1. WiFi is the default network, and it is validated
            // 2. WiFi is the default network, it is not validated and there is no other
            // non-Carrier WiFi networks available.
            boolean maybeShowIcons = (mCurrentState.inetCondition == 1)
                    || (mCurrentState.inetCondition == 0
                            && !mNetworkController.isNonCarrierWifiNetworkAvailable());
            IconState statusIcon = new IconState(
                    wifiVisible && maybeShowIcons, getCurrentIconId(), contentDescription);
            IconState qsIcon = null;
            if (mCurrentState.isDefault || (!mNetworkController.isRadioOn()
            if ((mCurrentState.isDefault && maybeShowIcons) || (!mNetworkController.isRadioOn()
                    && !mNetworkController.isEthernetDefault())) {
                qsIcon = new IconState(mCurrentState.connected,
                        mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected
@@ -123,6 +131,8 @@ public class WifiSignalController extends
            );
            callback.setWifiIndicators(wifiIndicators);
        } else {
            IconState statusIcon = new IconState(
                    wifiVisible, getCurrentIconId(), contentDescription);
            IconState qsIcon = new IconState(mCurrentState.connected,
                    mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected
                            : getQsCurrentIconId(), contentDescription);
@@ -146,15 +156,25 @@ public class WifiSignalController extends
        if (mCurrentState.inetCondition == 0) {
            dataContentDescription = mContext.getString(R.string.data_connection_no_internet);
        }
        boolean qsVisible = mCurrentState.enabled
                && (mCurrentState.connected && mCurrentState.inetCondition == 1);

        // Mobile icon will only be shown in the statusbar in 2 scenarios
        // 1. Mobile is the default network, and it is validated
        // 2. Mobile is the default network, it is not validated and there is no other
        // non-Carrier WiFi networks available.
        boolean maybeShowIcons = (mCurrentState.inetCondition == 1)
                || (mCurrentState.inetCondition == 0
                        && !mNetworkController.isNonCarrierWifiNetworkAvailable());
        boolean sbVisible = mCurrentState.enabled && mCurrentState.connected
                && maybeShowIcons && mCurrentState.isDefault;
        IconState statusIcon =
                new IconState(qsVisible, getCurrentIconIdForCarrierWifi(), contentDescription);
        int qsTypeIcon = mCurrentState.connected ? icons.qsDataType : 0;
        int typeIcon = mCurrentState.connected ? icons.dataType : 0;
        IconState qsIcon = new IconState(
                mCurrentState.connected, getQsCurrentIconIdForCarrierWifi(), contentDescription);
                new IconState(sbVisible, getCurrentIconIdForCarrierWifi(), contentDescription);
        int typeIcon = sbVisible ? icons.dataType : 0;
        int qsTypeIcon = 0;
        IconState qsIcon = null;
        if (sbVisible) {
            qsTypeIcon = icons.qsDataType;
            qsIcon = new IconState(mCurrentState.connected, getQsCurrentIconIdForCarrierWifi(),
                    contentDescription);
        }
        CharSequence description =
                mNetworkController.getNetworkNameForCarrierWiFi(mCurrentState.subId);
        MobileDataIndicators mobileDataIndicators = new MobileDataIndicators(
+2 −0
Original line number Diff line number Diff line
@@ -372,6 +372,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
                        new NetworkCapabilities(mNetCapabilities), new LinkProperties(), false);
                mNetworkCallback.onCapabilitiesChanged(
                        mock(Network.class), new NetworkCapabilities(mNetCapabilities));
                mDefaultCallbackInWifiTracker.onCapabilitiesChanged(
                        mock(Network.class), new NetworkCapabilities(mNetCapabilities));
            } else {
                mNetworkCallback.onLost(mock(Network.class));
            }
+4 −3
Original line number Diff line number Diff line
@@ -223,13 +223,14 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {
        setWifiEnabled(true);
        verifyLastWifiIcon(false, WifiIcons.WIFI_NO_NETWORK);

        mNetworkController.setNoNetworksAvailable(false);
        setWifiStateForVcn(true, testSsid);
        setWifiLevelForVcn(0);

        // Connected, but still not validated - does not show
        //verifyLastWifiIcon(false, WifiIcons.WIFI_SIGNAL_STRENGTH[0][0]);
        verifyLastMobileDataIndicatorsForVcn(false, 0, TelephonyIcons.ICON_CWF, false);
        verifyLastMobileDataIndicatorsForVcn(false, 0, 0, false);

        mNetworkController.setNoNetworksAvailable(true);
        for (int testLevel = 0; testLevel < WifiIcons.WIFI_LEVEL_COUNT; testLevel++) {
            setWifiLevelForVcn(testLevel);

@@ -239,7 +240,7 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest {

            setConnectivityViaBroadcastForVcn(
                    NetworkCapabilities.TRANSPORT_CELLULAR, false, true, mVcnTransportInfo);
            verifyLastMobileDataIndicatorsForVcn(false, testLevel, TelephonyIcons.ICON_CWF, false);
            verifyLastMobileDataIndicatorsForVcn(true, testLevel, TelephonyIcons.ICON_CWF, false);
        }
    }