summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJake Hamby <jhamby@google.com>2011-03-28 20:25:23 -0700
committerJake Hamby <jhamby@google.com>2011-03-28 20:25:23 -0700
commitf1139aab801f89a19cf7c95f7c25fe49a4efc67b (patch)
tree5422625dd9f1a0772bbe0fec72fc73ad19e93318
parentf3b325f54dadb482d73111ab17cf6a51784de11a (diff)
downloadpackages_apps_settings-f1139aab801f89a19cf7c95f7c25fe49a4efc67b.zip
packages_apps_settings-f1139aab801f89a19cf7c95f7c25fe49a4efc67b.tar.gz
packages_apps_settings-f1139aab801f89a19cf7c95f7c25fe49a4efc67b.tar.bz2
Fix NPE in WirelessSettings.onCreate() for SDK and non-BT devices.
Fix NPE when entering Settings app in the SDK (and for devices without Bluetooth). Also remove the "Bluetooth settings" item in addition to the Bluetooth toggle item from Wireless settings when BT is missing. Bug: 4149307 Change-Id: Iecc5960a193cf88664d3217b4d7bdbc2276dabc0
-rw-r--r--src/com/android/settings/WirelessSettings.java6
-rw-r--r--src/com/android/settings/bluetooth/BluetoothEnabler.java10
-rw-r--r--src/com/android/settings/bluetooth/BluetoothSettings.java2
3 files changed, 9 insertions, 9 deletions
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index 4b92749..2844f3b 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -19,8 +19,6 @@ package com.android.settings;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.TelephonyProperties;
import com.android.settings.bluetooth.BluetoothEnabler;
-import com.android.settings.bluetooth.LocalBluetoothAdapter;
-import com.android.settings.bluetooth.LocalBluetoothManager;
import com.android.settings.wifi.WifiEnabler;
import com.android.settings.nfc.NfcEnabler;
@@ -105,8 +103,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
mAirplaneModeEnabler = new AirplaneModeEnabler(activity, airplane);
mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE);
mWifiEnabler = new WifiEnabler(activity, wifi);
- mBtEnabler = new BluetoothEnabler(activity,
- LocalBluetoothManager.getInstance(activity).getBluetoothAdapter(), bt);
+ mBtEnabler = new BluetoothEnabler(activity, bt);
mNfcEnabler = new NfcEnabler(activity, nfc);
String toggleable = Settings.System.getString(activity.getContentResolver(),
@@ -128,6 +125,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
// Remove Bluetooth Settings if Bluetooth service is not available.
if (ServiceManager.getService(BluetoothAdapter.BLUETOOTH_SERVICE) == null) {
getPreferenceScreen().removePreference(bt);
+ getPreferenceScreen().removePreference(findPreference(KEY_BT_SETTINGS));
}
// Remove NFC if its not available
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index 9aeb1b9..79f23bb 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -50,17 +50,19 @@ public final class BluetoothEnabler implements Preference.OnPreferenceChangeList
}
};
- public BluetoothEnabler(Context context, LocalBluetoothAdapter adapter,
- CheckBoxPreference checkBox) {
+ public BluetoothEnabler(Context context, CheckBoxPreference checkBox) {
mContext = context;
mCheckBox = checkBox;
mOriginalSummary = checkBox.getSummary();
checkBox.setPersistent(false);
- mLocalAdapter = adapter;
- if (adapter == null) {
+ LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context);
+ if (manager == null) {
// Bluetooth is not supported
+ mLocalAdapter = null;
checkBox.setEnabled(false);
+ } else {
+ mLocalAdapter = manager.getBluetoothAdapter();
}
mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
}
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index c6ba9af..5e4e130 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -58,7 +58,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
void addPreferencesForActivity() {
addPreferencesFromResource(R.xml.bluetooth_settings);
- mEnabler = new BluetoothEnabler(getActivity(), mLocalAdapter,
+ mEnabler = new BluetoothEnabler(getActivity(),
(CheckBoxPreference) findPreference(KEY_BT_CHECKBOX));
mDiscoverableEnabler = new BluetoothDiscoverableEnabler(getActivity(),