diff options
-rw-r--r-- | res/layout/preference_empty_list.xml | 30 | ||||
-rw-r--r-- | src/com/android/settings/ProgressCategory.java | 16 | ||||
-rwxr-xr-x | src/com/android/settings/bluetooth/BluetoothSettings.java | 2 |
3 files changed, 42 insertions, 6 deletions
diff --git a/res/layout/preference_empty_list.xml b/res/layout/preference_empty_list.xml new file mode 100644 index 0000000..1c721ac --- /dev/null +++ b/res/layout/preference_empty_list.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:minHeight="48dip" + android:background="@android:color/transparent"> + + <TextView + android:id="@+android:id/title" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:padding="@*android:dimen/preference_fragment_padding_side" + android:gravity="center" /> + +</LinearLayout> 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); |