private synchronized void handleDocked(BluetoothDevice device, int state, int startId) { if (device != null && LocalBluetoothPreferences.getDockAutoConnectSetting(this, device.getAddress())) { // Setting == auto connect initBtSettings(device, state, false); applyBtSettings(mDevice, startId); } else { createDialog(device, state, startId); } }
private void createDialog(BluetoothDevice device, int state, int startId) { if (mDialog != null) { // Shouldn't normally happen mDialog.dismiss(); mDialog = null; } mDevice = device; switch (state) { case Intent.EXTRA_DOCK_STATE_CAR: case Intent.EXTRA_DOCK_STATE_DESK: case Intent.EXTRA_DOCK_STATE_LE_DESK: case Intent.EXTRA_DOCK_STATE_HE_DESK: break; default: return; } startForeground(0, new Notification()); final AlertDialog.Builder ab = new AlertDialog.Builder(this); View view; LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); mAudioMediaCheckbox = null; if (device != null) { // Device in a new dock. boolean firstTime = !LocalBluetoothPreferences.hasDockAutoConnectSetting(this, device.getAddress()); CharSequence[] items = initBtSettings(device, state, firstTime); ab.setTitle(getString(R.string.bluetooth_dock_settings_title)); // Profiles ab.setMultiChoiceItems(items, mCheckedItems, mMultiClickListener); // Remember this settings view = inflater.inflate(R.layout.remember_dock_setting, null); CheckBox rememberCheckbox = (CheckBox) view.findViewById(R.id.remember); // check "Remember setting" by default if no value was saved boolean checked = firstTime || LocalBluetoothPreferences.getDockAutoConnectSetting(this, device.getAddress()); rememberCheckbox.setChecked(checked); rememberCheckbox.setOnCheckedChangeListener(mCheckedChangeListener); if (DEBUG) { Log.d( TAG, "Auto connect = " + LocalBluetoothPreferences.getDockAutoConnectSetting(this, device.getAddress())); } } else { ab.setTitle(getString(R.string.bluetooth_dock_settings_title)); view = inflater.inflate(R.layout.dock_audio_media_enable_dialog, null); mAudioMediaCheckbox = (CheckBox) view.findViewById(R.id.dock_audio_media_enable_cb); boolean checked = Settings.Global.getInt(getContentResolver(), Settings.Global.DOCK_AUDIO_MEDIA_ENABLED, 0) == 1; mAudioMediaCheckbox.setChecked(checked); mAudioMediaCheckbox.setOnCheckedChangeListener(mCheckedChangeListener); } float pixelScaleFactor = getResources().getDisplayMetrics().density; int viewSpacingLeft = (int) (14 * pixelScaleFactor); int viewSpacingRight = (int) (14 * pixelScaleFactor); ab.setView(view, viewSpacingLeft, 0 /* top */, viewSpacingRight, 0 /* bottom */); // Ok Button ab.setPositiveButton(getString(android.R.string.ok), mClickListener); mStartIdAssociatedWithDialog = startId; mDialog = ab.create(); mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); mDialog.setOnDismissListener(mDismissListener); mDialog.show(); }