From 0820ee350f7dd6609b51bc0322d600b966e938a7 Mon Sep 17 00:00:00 2001 From: Amin Shaikh Date: Tue, 4 Apr 2017 17:54:44 -0700 Subject: [PATCH] Link to "scanning settings" when Wi-Fi is off. Always link to scanning settings when wifi is off. Previously, the link was only shown when wifi was off and scanning settings were on. Bug: 36033488 Test: m RunSettingsRoboTests and manually testing on device Change-Id: I0abc6f4a25072c78fea6a971621cebc1a97b658b --- res/values/strings.xml | 13 +++++-- .../android/settings/wifi/WifiSettings.java | 38 ++++++++----------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index c23d3995567..c472858b42b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1640,13 +1640,20 @@ Automatically connect to high\u2011quality public networks Install certificates - + To improve location accuracy, system apps and services can still scan for Wi\u2011Fi networks. You can change this in LINK_BEGINscanning settingsLINK_END. + + To improve location accuracy, + turn on Wi-Fi scanning in + LINK_BEGINscanning + settingsLINK_END. Don\u2019t show again diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 8784d0954cc..e5c21fff34a 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -836,32 +836,24 @@ public class WifiSettings extends RestrictedSettingsFragment } private void setOffMessage() { - final CharSequence briefText = getText(R.string.wifi_empty_list_wifi_off); - + final CharSequence title = getText(R.string.wifi_empty_list_wifi_off); // Don't use WifiManager.isScanAlwaysAvailable() to check the Wi-Fi scanning mode. Instead, // read the system settings directly. Because when the device is in Airplane mode, even if // Wi-Fi scanning mode is on, WifiManager.isScanAlwaysAvailable() still returns "off". - final ContentResolver resolver = getActivity().getContentResolver(); - final boolean wifiScanningMode = Settings.Global.getInt( - resolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; - - if (!wifiScanningMode) { - // Show only the brief text if the user is not allowed to configure scanning settings, - // or the scanning mode has been turned off. - mStatusMessagePreference.setTitle(briefText); - } else { - LinkifyUtils.OnClickListener clickListener = new LinkifyUtils.OnClickListener() { - @Override - public void onClick() { - final SettingsActivity activity = (SettingsActivity) getActivity(); - activity.startPreferencePanel(WifiSettings.this, - ScanningSettings.class.getName(), - null, R.string.location_scanning_screen_title, null, null, 0); - } - }; - mStatusMessagePreference.setText( - briefText, getText(R.string.wifi_scan_notify_text), clickListener); - } + final boolean wifiScanningMode = Settings.Global.getInt(getActivity().getContentResolver(), + Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; + final CharSequence description = wifiScanningMode ? getText(R.string.wifi_scan_notify_text) + : getText(R.string.wifi_scan_notify_text_scanning_off); + final LinkifyUtils.OnClickListener clickListener = new LinkifyUtils.OnClickListener() { + @Override + public void onClick() { + final SettingsActivity activity = (SettingsActivity) getActivity(); + activity.startPreferencePanel(WifiSettings.this, + ScanningSettings.class.getName(), + null, R.string.location_scanning_screen_title, null, null, 0); + } + }; + mStatusMessagePreference.setText(title, description, clickListener); removeConnectedAccessPointPreference(); mAccessPointsPreferenceCategory.removeAll(); mAccessPointsPreferenceCategory.addPreference(mStatusMessagePreference);