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

Commit 2e481b91 authored by Daniel Sandler's avatar Daniel Sandler
Browse files

Stop showing "No internet connection" when there is one.

In particular, even though the mobile data network isn't
routing packets (and therefore is not an internet
connection), we want to show the PLMN anyway:

  [MOBILE RSSI] Carrier  [WIFI RSSI] WiFi SSID

This change also improves the following cases:

 - Combines "No internet connection" from wifi and mobile
   into one single string in airplane mode:

     [AIRPLANE] No internet connection.

 - Removes "No internet connection" from the mobile string
   when wifi is on in airplane mode, making a nice compact
   display in this case:

     [AIRPLANE] [WIFI RSSI] WiFi SSID

Bug: 5903914
Change-Id: I477821d2c5e9922252dd6bcb3ed494c8c57d99b0
parent 44760b10
Loading
Loading
Loading
Loading
+47 −27
Original line number Diff line number Diff line
@@ -890,11 +890,19 @@ public class NetworkController extends BroadcastReceiver {

        if (!mHasMobileDataFeature) {
            mDataSignalIconId = mPhoneSignalIconId = 0;
        } else if (mDataConnected) {
            mobileLabel = mNetworkName;
            mobileLabel = "";
        } else {
            // We want to show the carrier name even if data is not being routed over that link, so
            // we look only at the service state here.
            mobileLabel = hasService() 
                ? mNetworkName
                : context.getString(R.string.status_bar_settings_signal_meter_disconnected);
            if (DEBUG) {
                mobileLabel += "yyyyYYYYyyyyYYYY";
            }

            // Now for things that should only be shown when actually using mobile data.
            if (mDataConnected) {
                combinedSignalIconId = mDataSignalIconId;
                switch (mDataActivity) {
                    case TelephonyManager.DATA_ACTIVITY_IN:
@@ -915,9 +923,7 @@ public class NetworkController extends BroadcastReceiver {
                combinedActivityIconId = mMobileActivityIconId;
                combinedSignalIconId = mDataSignalIconId; // set by updateDataIcon()
                mContentDescriptionCombinedSignal = mContentDescriptionDataType;
        } else {
            mobileLabel = mHasMobileDataFeature ?
                context.getString(R.string.status_bar_settings_signal_meter_disconnected) : "";
            }
        }

        if (mWifiConnected) {
@@ -949,6 +955,12 @@ public class NetworkController extends BroadcastReceiver {
            combinedLabel = wifiLabel;
            combinedSignalIconId = mWifiIconId; // set by updateWifiIcons()
            mContentDescriptionCombinedSignal = mContentDescriptionWifi;
        } else {
            if (mHasMobileDataFeature) {
                wifiLabel = "";
            } else {
                wifiLabel = context.getString(R.string.status_bar_settings_signal_meter_disconnected);
            }
        }

        if (mBluetoothTethered) {
@@ -969,9 +981,17 @@ public class NetworkController extends BroadcastReceiver {
            mDataTypeIconId = 0;

            // combined values from connected wifi take precedence over airplane mode
            if (!mWifiConnected) {
            if (mWifiConnected) {
                // Suppress "No internet connection." from mobile if wifi connected.
                mobileLabel = "";
            } else {
                if (mHasMobileDataFeature) {
                    // let the mobile icon show "No internet connection."
                    wifiLabel = "";
                } else {
                    wifiLabel = context.getString(R.string.status_bar_settings_signal_meter_disconnected);
                    combinedLabel = wifiLabel;
                }
                mContentDescriptionCombinedSignal = mContentDescriptionPhoneSignal;
                combinedSignalIconId = mDataSignalIconId;
            }