OSDN Git Service

b/2238546 Fixed NPE in Settings when Bluetooth "class" is null
authorMichael Chan <mchan@android.com>
Thu, 5 Nov 2009 01:19:48 +0000 (17:19 -0800)
committerMichael Chan <mchan@android.com>
Thu, 5 Nov 2009 01:19:48 +0000 (17:19 -0800)
src/com/android/settings/bluetooth/CachedBluetoothDevice.java

index 1b45628..03328b5 100644 (file)
@@ -616,12 +616,16 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
     }
 
     public int getBtClassDrawable() {
-        switch (mBtClass.getMajorDeviceClass()) {
-        case BluetoothClass.Device.Major.COMPUTER:
-            return R.drawable.ic_bt_laptop;
+        if (mBtClass != null) {
+            switch (mBtClass.getMajorDeviceClass()) {
+            case BluetoothClass.Device.Major.COMPUTER:
+                return R.drawable.ic_bt_laptop;
 
-        case BluetoothClass.Device.Major.PHONE:
-            return R.drawable.ic_bt_cellphone;
+            case BluetoothClass.Device.Major.PHONE:
+                return R.drawable.ic_bt_cellphone;
+            }
+        } else {
+            Log.w(TAG, "mBtClass is null");
         }
 
         if (mProfiles.size() > 0) {
@@ -630,7 +634,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
             } else if (mProfiles.contains(Profile.HEADSET)) {
                 return R.drawable.ic_bt_headset_hfp;
             }
-        } else {
+        } else if (mBtClass != null) {
             if (mBtClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
                 return R.drawable.ic_bt_headphones_a2dp;