From 2e481b9146fe194fb1344ff8c1d1e0d499bdf06b Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Tue, 24 Jan 2012 14:45:40 -0500 Subject: 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 --- .../statusbar/policy/NetworkController.java | 74 ++++++++++++++-------- 1 file changed, 47 insertions(+), 27 deletions(-) (limited to 'packages') diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index d09e680..a44ad5f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -890,34 +890,40 @@ 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"; } - combinedSignalIconId = mDataSignalIconId; - switch (mDataActivity) { - case TelephonyManager.DATA_ACTIVITY_IN: - mMobileActivityIconId = R.drawable.stat_sys_signal_in; - break; - case TelephonyManager.DATA_ACTIVITY_OUT: - mMobileActivityIconId = R.drawable.stat_sys_signal_out; - break; - case TelephonyManager.DATA_ACTIVITY_INOUT: - mMobileActivityIconId = R.drawable.stat_sys_signal_inout; - break; - default: - mMobileActivityIconId = 0; - break; - } - combinedLabel = mobileLabel; - combinedActivityIconId = mMobileActivityIconId; - combinedSignalIconId = mDataSignalIconId; // set by updateDataIcon() - mContentDescriptionCombinedSignal = mContentDescriptionDataType; - } else { - mobileLabel = mHasMobileDataFeature ? - context.getString(R.string.status_bar_settings_signal_meter_disconnected) : ""; + // Now for things that should only be shown when actually using mobile data. + if (mDataConnected) { + combinedSignalIconId = mDataSignalIconId; + switch (mDataActivity) { + case TelephonyManager.DATA_ACTIVITY_IN: + mMobileActivityIconId = R.drawable.stat_sys_signal_in; + break; + case TelephonyManager.DATA_ACTIVITY_OUT: + mMobileActivityIconId = R.drawable.stat_sys_signal_out; + break; + case TelephonyManager.DATA_ACTIVITY_INOUT: + mMobileActivityIconId = R.drawable.stat_sys_signal_inout; + break; + default: + mMobileActivityIconId = 0; + break; + } + + combinedLabel = mobileLabel; + combinedActivityIconId = mMobileActivityIconId; + combinedSignalIconId = mDataSignalIconId; // set by updateDataIcon() + mContentDescriptionCombinedSignal = mContentDescriptionDataType; + } } 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) { - wifiLabel = context.getString(R.string.status_bar_settings_signal_meter_disconnected); - combinedLabel = wifiLabel; + 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; } -- cgit v1.1