Fields Summary |
---|
private static final String | TAG |
private static final int | MENU_SCAN |
private static final String | KEY_BT_CHECKBOX |
private static final String | KEY_BT_DISCOVERABLE |
private static final String | KEY_BT_DEVICE_LIST |
private static final String | KEY_BT_NAME |
private static final String | KEY_BT_SCAN |
private LocalBluetoothManager | mLocalManager |
private BluetoothEnabler | mEnabler |
private BluetoothDiscoverableEnabler | mDiscoverableEnabler |
private BluetoothNamePreference | mNamePreference |
private com.android.settings.ProgressCategory | mDeviceList |
private WeakHashMap | mDevicePreferenceMap |
private final android.content.BroadcastReceiver | mReceiver |
Methods Summary |
---|
private void | addDevices()
List<LocalBluetoothDevice> devices = mLocalManager.getLocalDeviceManager().getDevicesCopy();
for (LocalBluetoothDevice device : devices) {
onDeviceAdded(device);
}
|
private void | createDevicePreference(LocalBluetoothDevice device)
BluetoothDevicePreference preference = new BluetoothDevicePreference(this, device);
mDeviceList.addPreference(preference);
mDevicePreferenceMap.put(device, preference);
|
private LocalBluetoothDevice | getDeviceFromMenuInfo(android.view.ContextMenu.ContextMenuInfo menuInfo)
if ((menuInfo == null) || !(menuInfo instanceof AdapterContextMenuInfo)) {
return null;
}
AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) menuInfo;
Preference pref = (Preference) getPreferenceScreen().getRootAdapter().getItem(
adapterMenuInfo.position);
if (pref == null || !(pref instanceof BluetoothDevicePreference)) {
return null;
}
return ((BluetoothDevicePreference) pref).getDevice();
|
private void | onBluetoothStateChanged(int bluetoothState)
// When bluetooth is enabled (and we are in the activity, which we are),
// we should start a scan
if (bluetoothState == BluetoothDevice.BLUETOOTH_STATE_ON) {
mLocalManager.startScanning(false);
} else if (bluetoothState == BluetoothDevice.BLUETOOTH_STATE_OFF) {
mDeviceList.setProgress(false);
}
|
public boolean | onContextItemSelected(android.view.MenuItem item)
LocalBluetoothDevice device = getDeviceFromMenuInfo(item.getMenuInfo());
if (device == null) return false;
device.onContextItemSelected(item);
return true;
|
protected void | onCreate(android.os.Bundle savedInstanceState)
super.onCreate(savedInstanceState);
mLocalManager = LocalBluetoothManager.getInstance(this);
if (mLocalManager == null) finish();
addPreferencesFromResource(R.xml.bluetooth_settings);
mEnabler = new BluetoothEnabler(
this,
(CheckBoxPreference) findPreference(KEY_BT_CHECKBOX));
mDiscoverableEnabler = new BluetoothDiscoverableEnabler(
this,
(CheckBoxPreference) findPreference(KEY_BT_DISCOVERABLE));
mNamePreference = (BluetoothNamePreference) findPreference(KEY_BT_NAME);
mDeviceList = (ProgressCategory) findPreference(KEY_BT_DEVICE_LIST);
registerForContextMenu(getListView());
|
public void | onCreateContextMenu(android.view.ContextMenu menu, android.view.View v, android.view.ContextMenu.ContextMenuInfo menuInfo)
LocalBluetoothDevice device = getDeviceFromMenuInfo(menuInfo);
if (device == null) return;
device.onCreateContextMenu(menu);
|
public boolean | onCreateOptionsMenu(android.view.Menu menu)
menu.add(0, MENU_SCAN, 0, R.string.bluetooth_scan_for_devices)
.setIcon(com.android.internal.R.drawable.ic_menu_refresh)
.setAlphabeticShortcut('r");
return true;
|
public void | onDeviceAdded(LocalBluetoothDevice device)
if (mDevicePreferenceMap.get(device) != null) {
throw new IllegalStateException("Got onDeviceAdded, but device already exists");
}
createDevicePreference(device);
|
public void | onDeviceDeleted(LocalBluetoothDevice device)
BluetoothDevicePreference preference = mDevicePreferenceMap.remove(device);
if (preference != null) {
mDeviceList.removePreference(preference);
}
|
public boolean | onOptionsItemSelected(android.view.MenuItem item)
switch (item.getItemId()) {
case MENU_SCAN:
mLocalManager.startScanning(true);
return true;
default:
return false;
}
|
protected void | onPause()
super.onPause();
mLocalManager.setForegroundActivity(null);
unregisterReceiver(mReceiver);
mLocalManager.unregisterCallback(this);
mNamePreference.pause();
mDiscoverableEnabler.pause();
mEnabler.pause();
|
public boolean | onPreferenceTreeClick(android.preference.PreferenceScreen preferenceScreen, android.preference.Preference preference)
if (KEY_BT_SCAN.equals(preference.getKey())) {
mLocalManager.startScanning(true);
return true;
}
if (preference instanceof BluetoothDevicePreference) {
BluetoothDevicePreference btPreference = (BluetoothDevicePreference) preference;
btPreference.getDevice().onClicked();
return true;
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
public boolean | onPrepareOptionsMenu(android.view.Menu menu)
menu.findItem(MENU_SCAN).setEnabled(mLocalManager.getBluetoothManager().isEnabled());
return true;
|
protected void | onResume()
super.onResume();
// Repopulate (which isn't too bad since it's cached in the settings
// bluetooth manager
mDevicePreferenceMap.clear();
mDeviceList.removeAll();
addDevices();
mEnabler.resume();
mDiscoverableEnabler.resume();
mNamePreference.resume();
mLocalManager.registerCallback(this);
mLocalManager.startScanning(false);
registerReceiver(mReceiver,
new IntentFilter(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION));
mLocalManager.setForegroundActivity(this);
|
public void | onScanningStateChanged(boolean started)
mDeviceList.setProgress(started);
|