From de53b46b165ca65a464ecc6f062da55e11050389 Mon Sep 17 00:00:00 2001 From: Jake Hamby Date: Tue, 6 Sep 2011 15:38:23 -0700 Subject: [PATCH] BT device picker: don't rescan after rotating the device The Bluetooth device picker was restarting the device scan after the screen is rotated. Fix this by only starting the scan when the savedInstanceState Bundle passed to onCreate() is null. Also removes "No Bluetooth devices were found nearby" from list if the user switches to a different app and then switches back to the device picker. Bug: 5249380 Change-Id: I8959c850649eb713fb930ee0a8a7bcb73ca7c1aa --- src/com/android/settings/ProgressCategory.java | 5 ++--- .../android/settings/bluetooth/DevicePickerFragment.java | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/ProgressCategory.java b/src/com/android/settings/ProgressCategory.java index 6c74846ce7e..e854a0038d6 100644 --- a/src/com/android/settings/ProgressCategory.java +++ b/src/com/android/settings/ProgressCategory.java @@ -45,13 +45,13 @@ public class ProgressCategory extends ProgressCategoryBase { textView.setVisibility(noDeviceFound ? View.INVISIBLE : View.VISIBLE); progressBar.setVisibility(mProgress ? View.VISIBLE : View.INVISIBLE); - if (mProgress) { + if (mProgress || !noDeviceFound) { if (mNoDeviceFoundAdded) { removePreference(mNoDeviceFoundPreference); mNoDeviceFoundAdded = false; } } else { - if (noDeviceFound && !mNoDeviceFoundAdded) { + if (!mNoDeviceFoundAdded) { if (mNoDeviceFoundPreference == null) { mNoDeviceFoundPreference = new Preference(getContext()); mNoDeviceFoundPreference.setLayoutResource(R.layout.preference_empty_list); @@ -70,4 +70,3 @@ public class ProgressCategory extends ProgressCategoryBase { notifyChanged(); } } - diff --git a/src/com/android/settings/bluetooth/DevicePickerFragment.java b/src/com/android/settings/bluetooth/DevicePickerFragment.java index 8b32941d3dd..87d31e72c46 100644 --- a/src/com/android/settings/bluetooth/DevicePickerFragment.java +++ b/src/com/android/settings/bluetooth/DevicePickerFragment.java @@ -33,6 +33,7 @@ public final class DevicePickerFragment extends DeviceListPreferenceFragment { private boolean mNeedAuth; private String mLaunchPackage; private String mLaunchClass; + private boolean mStartScanOnResume; @Override void addPreferencesForActivity() { @@ -50,13 +51,17 @@ public final class DevicePickerFragment extends DeviceListPreferenceFragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActivity().setTitle(getString(R.string.device_picker)); + mStartScanOnResume = (savedInstanceState == null); // don't start scan after rotation } @Override public void onResume() { super.onResume(); addCachedDevices(); - mLocalAdapter.startScanning(true); + if (mStartScanOnResume) { + mLocalAdapter.startScanning(true); + mStartScanOnResume = false; + } } @Override