Disable dock audio settings if the dock doesn't have Bluetooth.

We should really have a separate string here to indicate
this case, but it's pretty late for that sort of thing, so I
left it at the generic "configure dock audio".

We might also want to dim this setting rather than popping
up a "Must dock phone first" dialog if the phone is not
docked.

Bug: 2469862
Change-Id: I4c61f5a50baac55881f5a21e523c370c456f0be8
diff --git a/src/com/android/settings/DockSettings.java b/src/com/android/settings/DockSettings.java
index 795fb3c..0d46ce9 100644
--- a/src/com/android/settings/DockSettings.java
+++ b/src/com/android/settings/DockSettings.java
@@ -18,6 +18,7 @@
 
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.bluetooth.BluetoothDevice;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -91,19 +92,31 @@
     private void handleDockChange(Intent intent) {
         if (mAudioSettings != null) {
             int dockState = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, 0);
-            mDockIntent = intent;
-            int resId = R.string.dock_audio_summary_unknown;
-            switch (dockState) {
-            case Intent.EXTRA_DOCK_STATE_CAR:
-                resId = R.string.dock_audio_summary_car;
-                break;
-            case Intent.EXTRA_DOCK_STATE_DESK:
-                resId = R.string.dock_audio_summary_desk;
-                break;
-            case Intent.EXTRA_DOCK_STATE_UNDOCKED:
-                resId = R.string.dock_audio_summary_none;
+
+            boolean isBluetooth = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE) != null;
+
+            if (!isBluetooth) {
+                // No dock audio if not on Bluetooth.
+                mAudioSettings.setEnabled(false);
+                mAudioSettings.setSummary(R.string.dock_audio_summary_unknown);
+            } else {
+                mAudioSettings.setEnabled(true);
+
+                mDockIntent = intent;
+                int resId = R.string.dock_audio_summary_unknown;
+                switch (dockState) {
+                case Intent.EXTRA_DOCK_STATE_CAR:
+                    resId = R.string.dock_audio_summary_car;
+                    break;
+                case Intent.EXTRA_DOCK_STATE_DESK:
+                    resId = R.string.dock_audio_summary_desk;
+                    break;
+                case Intent.EXTRA_DOCK_STATE_UNDOCKED:
+                    resId = R.string.dock_audio_summary_none;
+                }
+                mAudioSettings.setSummary(resId);
             }
-            mAudioSettings.setSummary(resId);
+
             if (dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED) {
                 // remove undocked dialog if currently showing.
                 try {