diff --git a/res/values/strings.xml b/res/values/strings.xml
index 131fe6b1159..966dcde037f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1852,6 +1852,8 @@
See location in applications (such as Maps) using wireless networks
Location determined by Wi-Fi and/or mobile networks
+
+ Location determined by Wi-Fi
Use GPS satellites
diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
index ffbaef2a2cd..466df7b0993 100644
--- a/res/xml/wireless_settings.xml
+++ b/res/xml/wireless_settings.xml
@@ -72,6 +72,7 @@
android:persistent="false" />
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 5d031ef7021..dc4c42b8d8b 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -160,6 +160,11 @@ public class SecuritySettings extends SettingsPreferenceFragment
mUseLocation = useLocation;
}
+ // Change the summary for wifi-only devices
+ if (Utils.isWifiOnly()) {
+ mNetwork.setSummaryOn(R.string.location_neighborhood_level_wifi);
+ }
+
// Add options for lock/unlock screen
int resid = 0;
if (!mLockPatternUtils.isSecure()) {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index d6354035d93..dd80222ab16 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -278,4 +278,8 @@ public class Utils {
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return telephony != null && telephony.isVoiceCapable();
}
+
+ public static boolean isWifiOnly() {
+ return "wifi-only".equals(SystemProperties.get("ro.carrier"));
+ }
}
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index bdf8ce8333b..9567c0135fd 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -48,6 +48,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
private static final String KEY_VPN_SETTINGS = "vpn_settings";
private static final String KEY_TETHER_SETTINGS = "tether_settings";
private static final String KEY_PROXY_SETTINGS = "proxy_settings";
+ private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings";
public static final String EXIT_ECM_RESULT = "exit_ecm_result";
public static final int REQUEST_CODE_EXIT_ECM = 1;
@@ -131,6 +132,11 @@ public class WirelessSettings extends SettingsPreferenceFragment {
getPreferenceScreen().removePreference(nfc);
}
+ // Remove Mobile Network Settings if it's a wifi-only device.
+ if (Utils.isWifiOnly()) {
+ getPreferenceScreen().removePreference(findPreference(KEY_MOBILE_NETWORK_SETTINGS));
+ }
+
// Enable Proxy selector settings if allowed.
Preference mGlobalProxy = findPreference(KEY_PROXY_SETTINGS);
DevicePolicyManager mDPM = (DevicePolicyManager)
@@ -139,10 +145,10 @@ public class WirelessSettings extends SettingsPreferenceFragment {
getPreferenceScreen().removePreference(mGlobalProxy);
mGlobalProxy.setEnabled(mDPM.getGlobalProxyAdmin() == null);
- // Disable Tethering if it's not allowed
+ // Disable Tethering if it's not allowed or if it's a wifi-only device
ConnectivityManager cm =
(ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
- if (!cm.isTetheringSupported()) {
+ if (!cm.isTetheringSupported() || Utils.isWifiOnly()) {
getPreferenceScreen().removePreference(findPreference(KEY_TETHER_SETTINGS));
} else {
String[] usbRegexs = cm.getTetherableUsbRegexs();
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 1222e77d88b..5a2bf45d5f6 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -21,6 +21,7 @@ import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
import com.android.settings.ProgressCategoryBase;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
import android.app.Activity;
import android.app.AlertDialog;
@@ -211,11 +212,15 @@ public class WifiSettings extends SettingsPreferenceFragment
ListPreference pref = (ListPreference) findPreference(KEY_SLEEP_POLICY);
if (pref != null) {
- pref.setOnPreferenceChangeListener(this);
- int value = Settings.System.getInt(getContentResolver(),
- Settings.System.WIFI_SLEEP_POLICY,
- Settings.System.WIFI_SLEEP_POLICY_NEVER);
- pref.setValue(String.valueOf(value));
+ if (Utils.isWifiOnly()) {
+ getPreferenceScreen().removePreference(pref);
+ } else {
+ pref.setOnPreferenceChangeListener(this);
+ int value = Settings.System.getInt(getContentResolver(),
+ Settings.System.WIFI_SLEEP_POLICY,
+ Settings.System.WIFI_SLEEP_POLICY_NEVER);
+ pref.setValue(String.valueOf(value));
+ }
}
registerForContextMenu(getListView());