diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 1f54b17a923..078c2ee122b 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -16,7 +16,6 @@ package com.android.settings; -import android.bluetooth.BluetoothAdapter; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -24,7 +23,6 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; -import android.os.ServiceManager; import android.preference.PreferenceActivity; import android.text.TextUtils; import android.util.Log; @@ -313,9 +311,14 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler { } else if (id == R.id.call_settings) { if (!Utils.isVoiceCapable(this)) target.remove(header); + } else if (id == R.id.wifi_settings) { + // Remove WiFi Settings if WiFi service is not available. + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI)) { + target.remove(header); + } } else if (id == R.id.bluetooth_settings) { // Remove Bluetooth Settings if Bluetooth service is not available. - if (ServiceManager.getService(BluetoothAdapter.BLUETOOTH_SERVICE) == null) { + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) { target.remove(header); } } diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java index 50149d8ede3..f08e083b5b3 100644 --- a/src/com/android/settings/bluetooth/BluetoothEnabler.java +++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java @@ -66,6 +66,7 @@ public final class BluetoothEnabler implements CompoundButton.OnCheckedChangeLis public void resume() { if (mLocalAdapter == null) { + mSwitch.setEnabled(false); return; } @@ -91,11 +92,12 @@ public final class BluetoothEnabler implements CompoundButton.OnCheckedChangeLis mSwitch = switch_; mSwitch.setOnCheckedChangeListener(this); - final int bluetoothState = mLocalAdapter.getBluetoothState(); - boolean isEnabled = bluetoothState == BluetoothAdapter.STATE_ON; - boolean isDisabled = bluetoothState == BluetoothAdapter.STATE_OFF; - mSwitch.setChecked(isEnabled); - mSwitch.setEnabled(isEnabled || isDisabled); + int bluetoothState = BluetoothAdapter.STATE_OFF; + if (mLocalAdapter != null) bluetoothState = mLocalAdapter.getBluetoothState(); + boolean isOn = bluetoothState == BluetoothAdapter.STATE_ON; + boolean isOff = bluetoothState == BluetoothAdapter.STATE_OFF; + mSwitch.setChecked(isOn); + mSwitch.setEnabled(isOn || isOff); } public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { @@ -107,7 +109,9 @@ public final class BluetoothEnabler implements CompoundButton.OnCheckedChangeLis buttonView.setChecked(false); } - mLocalAdapter.setBluetoothEnabled(isChecked); + if (mLocalAdapter != null) { + mLocalAdapter.setBluetoothEnabled(isChecked); + } mSwitch.setEnabled(false); }