From c0a51abd857dd6962ba7a0bc7cf725fdd2519688 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Fri, 12 Mar 2010 14:53:49 -0500 Subject: [PATCH] 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 --- src/com/android/settings/DockSettings.java | 37 +++++++++++++++------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/com/android/settings/DockSettings.java b/src/com/android/settings/DockSettings.java index 795fb3c6425..0d46ce9a9b2 100644 --- a/src/com/android/settings/DockSettings.java +++ b/src/com/android/settings/DockSettings.java @@ -18,6 +18,7 @@ package com.android.settings; 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 @@ public class DockSettings extends PreferenceActivity { 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 {