diff options
author | Gilles Debunne <debunne@google.com> | 2011-07-07 14:24:26 -0700 |
---|---|---|
committer | Gilles Debunne <debunne@google.com> | 2011-07-08 09:40:47 -0700 |
commit | 6dc0f9639e5c566818930fa183e67927a1b761f8 (patch) | |
tree | 1f888c3002686fb317163ce90346e559275e8828 | |
parent | 606d8788520e854cca641e91aa7435366a024733 (diff) | |
download | packages_apps_Settings-6dc0f9639e5c566818930fa183e67927a1b761f8.zip packages_apps_Settings-6dc0f9639e5c566818930fa183e67927a1b761f8.tar.gz packages_apps_Settings-6dc0f9639e5c566818930fa183e67927a1b761f8.tar.bz2 |
Refactor Bluetooth settings
Two lists: paired devices and available devices.
New item at top for the device itself (not connected to discoverable, this is a larger
refactoring).
New settings icon.
Change-Id: I788a6c0afdb07309d449a4d41a02cf8480c95a37
-rw-r--r-- | res/drawable-hdpi/ic_bt_config.png | bin | 1767 -> 773 bytes | |||
-rw-r--r-- | res/drawable-mdpi/ic_bt_config.png | bin | 1196 -> 653 bytes | |||
-rw-r--r-- | res/values/strings.xml | 6 | ||||
-rw-r--r-- | src/com/android/settings/bluetooth/BluetoothSettings.java | 93 |
4 files changed, 63 insertions, 36 deletions
diff --git a/res/drawable-hdpi/ic_bt_config.png b/res/drawable-hdpi/ic_bt_config.png Binary files differindex c6d2483..47b4ba2 100644 --- a/res/drawable-hdpi/ic_bt_config.png +++ b/res/drawable-hdpi/ic_bt_config.png diff --git a/res/drawable-mdpi/ic_bt_config.png b/res/drawable-mdpi/ic_bt_config.png Binary files differindex eefda26..7928104 100644 --- a/res/drawable-mdpi/ic_bt_config.png +++ b/res/drawable-mdpi/ic_bt_config.png diff --git a/res/values/strings.xml b/res/values/strings.xml index 251da79..f8d38a2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -955,10 +955,10 @@ <string name="bluetooth_searching_for_devices">Searching\u2026</string> <!-- Bluetooth settings: The sub heading for device settings. [CHAR LIMIT=30] --> <string name="bluetooth_preference_device_settings">Device settings</string> - <!-- Bluetooth settings: The sub heading for paired devices. [CHAR LIMIT=30] --> + <!-- Bluetooth settings: The sub heading for devices which have already been paired with this device. [CHAR LIMIT=40] --> <string name="bluetooth_preference_paired_devices">Paired devices</string> - <!-- Bluetooth settings: The sub heading for found devices when scanning. [CHAR LIMIT=30] --> - <string name="bluetooth_preference_found_devices">Found devices</string> + <!-- Bluetooth settings: The sub heading for available devices during and after scanning. [CHAR LIMIT=40] --> + <string name="bluetooth_preference_found_devices">Available devices</string> <!-- Bluetooth settings. Context menu item for a device. Action will connect to all profiles on the device. --> <string name="bluetooth_device_context_connect">Connect</string> <!-- Bluetooth settings. Context menu item for a device. Action will disconnect from all profiles on the device. --> diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java index 6a5641f..2208223 100644 --- a/src/com/android/settings/bluetooth/BluetoothSettings.java +++ b/src/com/android/settings/bluetooth/BluetoothSettings.java @@ -23,6 +23,7 @@ import android.bluetooth.BluetoothDevice; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; import android.preference.PreferenceGroup; import android.preference.PreferenceScreen; import android.util.Log; @@ -51,8 +52,8 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { private BluetoothEnabler mBluetoothEnabler; - private PreferenceGroup mFoundDevicesCategory; - private boolean mFoundDevicesCategoryIsPresent; + private PreferenceGroup mAvailableDevicesCategory; + private boolean mAvailableDevicesCategoryIsPresent; private View mView; private TextView mEmptyView; @@ -97,10 +98,6 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { mBluetoothEnabler = new BluetoothEnabler(activity, actionBarSwitch); - if (mLocalAdapter != null && mLocalAdapter.isEnabled()) { - activity.getActionBar().setSubtitle(mLocalAdapter.getName()); - } - setHasOptionsMenu(true); } @@ -159,8 +156,8 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { } private void startScanning() { - if (!mFoundDevicesCategoryIsPresent) { - getPreferenceScreen().addPreference(mFoundDevicesCategory); + if (!mAvailableDevicesCategoryIsPresent) { + getPreferenceScreen().addPreference(mAvailableDevicesCategory); } mLocalAdapter.startScanning(true); } @@ -171,6 +168,16 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { super.onDevicePreferenceClick(btPreference); } + private void addDeviceCategory(PreferenceGroup preferenceGroup, int titleId, + BluetoothDeviceFilter.Filter filter) { + preferenceGroup.setTitle(titleId); + getPreferenceScreen().addPreference(preferenceGroup); + setFilter(filter); + setDeviceListGroup(preferenceGroup); + addCachedDevices(); + preferenceGroup.setEnabled(true); + } + private void updateContent(int bluetoothState) { final PreferenceScreen preferenceScreen = getPreferenceScreen(); getActivity().invalidateOptionsMenu(); @@ -179,42 +186,58 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { switch (bluetoothState) { case BluetoothAdapter.STATE_ON: preferenceScreen.removeAll(); - - // Add bonded devices from cache first - setFilter(BluetoothDeviceFilter.BONDED_DEVICE_FILTER); - setDeviceListGroup(preferenceScreen); preferenceScreen.setOrderingAsAdded(true); - addCachedDevices(); - int numberOfPairedDevices = preferenceScreen.getPreferenceCount(); - - // Found devices category - mFoundDevicesCategory = new ProgressCategory(getActivity(), null); - mFoundDevicesCategory.setTitle(R.string.bluetooth_preference_found_devices); - preferenceScreen.addPreference(mFoundDevicesCategory); - mFoundDevicesCategoryIsPresent = true; - - // Unbonded found devices from cache - setFilter(BluetoothDeviceFilter.UNBONDED_DEVICE_FILTER); - setDeviceListGroup(mFoundDevicesCategory); - addCachedDevices(); - - int numberOfUnpairedDevices = mFoundDevicesCategory.getPreferenceCount(); - if (numberOfUnpairedDevices == 0) { - preferenceScreen.removePreference(mFoundDevicesCategory); - mFoundDevicesCategoryIsPresent = false; + // This device + if (mMyDevicePreference == null) { + mMyDevicePreference = new Preference(getActivity()); + } + if (mLocalAdapter != null) { + mMyDevicePreference.setTitle(mLocalAdapter.getName()); } + mMyDevicePreference.setEnabled(true); + preferenceScreen.addPreference(mMyDevicePreference); - if (numberOfPairedDevices == 0) startScanning(); + // Paired devices category + if (mPairedDevicesCategory == null) { + mPairedDevicesCategory = new PreferenceCategory(getActivity()); + } else { + mPairedDevicesCategory.removeAll(); + } + addDeviceCategory(mPairedDevicesCategory, + R.string.bluetooth_preference_paired_devices, + BluetoothDeviceFilter.BONDED_DEVICE_FILTER); + int numberOfPairedDevices = mPairedDevicesCategory.getPreferenceCount(); + + // Available devices category + if (mAvailableDevicesCategory == null) { + mAvailableDevicesCategory = new ProgressCategory(getActivity(), null); + } else { + mAvailableDevicesCategory.removeAll(); + } + addDeviceCategory(mAvailableDevicesCategory, + R.string.bluetooth_preference_found_devices, + BluetoothDeviceFilter.UNBONDED_DEVICE_FILTER); + int numberOfAvailableDevices = mAvailableDevicesCategory.getPreferenceCount(); + mAvailableDevicesCategoryIsPresent = true; + + if (numberOfAvailableDevices == 0) { + preferenceScreen.removePreference(mAvailableDevicesCategory); + mAvailableDevicesCategoryIsPresent = false; + } - return; + if (numberOfPairedDevices == 0) { + preferenceScreen.removePreference(mPairedDevicesCategory); + startScanning(); + } + return; // not break case BluetoothAdapter.STATE_TURNING_OFF: int preferenceCount = preferenceScreen.getPreferenceCount(); for (int i = 0; i < preferenceCount; i++) { preferenceScreen.getPreference(i).setEnabled(false); } - return; + return; // not break case BluetoothAdapter.STATE_OFF: messageId = R.string.bluetooth_empty_list_bluetooth_off; @@ -268,6 +291,10 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { } }; + private Preference mMyDevicePreference; + + private PreferenceGroup mPairedDevicesCategory; + /** * Add a listener, which enables the advanced settings icon. * @param preference the newly added preference |