diff options
author | Jake Hamby <jhamby@google.com> | 2011-08-30 15:24:35 -0700 |
---|---|---|
committer | Jake Hamby <jhamby@google.com> | 2011-08-31 17:18:36 -0700 |
commit | 9a4543e1de4251463cf14150260baaf8753bd3c0 (patch) | |
tree | 81fd6b0ab0bad7a034961d9d13cc9ca542b3f89b /src/com | |
parent | be4fa0bf95006c8c8e4471c9122c771def38f13b (diff) | |
download | packages_apps_settings-9a4543e1de4251463cf14150260baaf8753bd3c0.zip packages_apps_settings-9a4543e1de4251463cf14150260baaf8753bd3c0.tar.gz packages_apps_settings-9a4543e1de4251463cf14150260baaf8753bd3c0.tar.bz2 |
Fix unresponsive UI during scan and display of "No Bluetooth devices"
- When there are no available Bluetooth devices, we show
"No Bluetooth devices were found nearby" as a preference item after
the scan completes. Update the layout for this Preference item so
that the text is centered and doesn't highlight when touched.
- Fix slow responsiveness on scanning caused by repeated removal of
"No Bluetooth devices were found" preference item on every call to
onBindView().
- If no devices are paired, don't restart the scan on every rotation.
Bug: 5173935
Bug: 5055460
Change-Id: I52fb2d52f315c5e793f08499146842d54c5c3ead
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/settings/ProgressCategory.java | 16 | ||||
-rwxr-xr-x | src/com/android/settings/bluetooth/BluetoothSettings.java | 2 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/com/android/settings/ProgressCategory.java b/src/com/android/settings/ProgressCategory.java index eee19bc..6c74846 100644 --- a/src/com/android/settings/ProgressCategory.java +++ b/src/com/android/settings/ProgressCategory.java @@ -26,12 +26,13 @@ public class ProgressCategory extends ProgressCategoryBase { private boolean mProgress = false; private Preference mNoDeviceFoundPreference; + private boolean mNoDeviceFoundAdded; public ProgressCategory(Context context, AttributeSet attrs) { super(context, attrs); setLayoutResource(R.layout.preference_progress_category); } - + @Override public void onBindView(View view) { super.onBindView(view); @@ -39,21 +40,26 @@ public class ProgressCategory extends ProgressCategoryBase { final View progressBar = view.findViewById(R.id.scanning_progress); textView.setText(mProgress ? R.string.progress_scanning : R.string.progress_tap_to_pair); - boolean noDeviceFound = getPreferenceCount() == 0; + boolean noDeviceFound = (getPreferenceCount() == 0 || + (getPreferenceCount() == 1 && getPreference(0) == mNoDeviceFoundPreference)); textView.setVisibility(noDeviceFound ? View.INVISIBLE : View.VISIBLE); progressBar.setVisibility(mProgress ? View.VISIBLE : View.INVISIBLE); if (mProgress) { - if (mNoDeviceFoundPreference != null) { + if (mNoDeviceFoundAdded) { removePreference(mNoDeviceFoundPreference); + mNoDeviceFoundAdded = false; } } else { - if (noDeviceFound) { + if (noDeviceFound && !mNoDeviceFoundAdded) { if (mNoDeviceFoundPreference == null) { mNoDeviceFoundPreference = new Preference(getContext()); - mNoDeviceFoundPreference.setSummary(R.string.bluetooth_no_devices_found); + mNoDeviceFoundPreference.setLayoutResource(R.layout.preference_empty_list); + mNoDeviceFoundPreference.setTitle(R.string.bluetooth_no_devices_found); + mNoDeviceFoundPreference.setSelectable(false); } addPreference(mNoDeviceFoundPreference); + mNoDeviceFoundAdded = true; } } } diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java index e18e48a..6899bc3 100755 --- a/src/com/android/settings/bluetooth/BluetoothSettings.java +++ b/src/com/android/settings/bluetooth/BluetoothSettings.java @@ -99,8 +99,8 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { @Override public void onActivityCreated(Bundle savedInstanceState) { - mActivityStarted = true; super.onActivityCreated(savedInstanceState); + mActivityStarted = (savedInstanceState == null); // don't auto start scan after rotation mEmptyView = (TextView) getView().findViewById(android.R.id.empty); getListView().setEmptyView(mEmptyView); |