OSDN Git Service

Fixed layout for "Available Devices" in Bluetooth
[android-x86/packages-apps-Settings.git] / src / com / android / settings / ProgressCategory.java
index eee19bc..c1b25d8 100644 (file)
@@ -26,34 +26,40 @@ 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);
-        final TextView textView = (TextView) view.findViewById(R.id.scanning_text);
+        final TextView scanning = (TextView) view.findViewById(R.id.scanning_text);
         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;
-        textView.setVisibility(noDeviceFound ? View.INVISIBLE : View.VISIBLE);
-        progressBar.setVisibility(mProgress ? View.VISIBLE : View.INVISIBLE);
+        scanning.setText(mProgress ? R.string.progress_scanning : R.string.progress_tap_to_pair);
+        boolean noDeviceFound = (getPreferenceCount() == 0 ||
+                (getPreferenceCount() == 1 && getPreference(0) == mNoDeviceFoundPreference));
+        scanning.setVisibility(noDeviceFound ? View.GONE : View.VISIBLE);
+        progressBar.setVisibility(mProgress ? View.VISIBLE : View.GONE);
 
-        if (mProgress) {
-            if (mNoDeviceFoundPreference != null) {
+        if (mProgress || !noDeviceFound) {
+            if (mNoDeviceFoundAdded) {
                 removePreference(mNoDeviceFoundPreference);
+                mNoDeviceFoundAdded = false;
             }
         } else {
-            if (noDeviceFound) {
+            if (!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;
             }
         }
     }
@@ -64,4 +70,3 @@ public class ProgressCategory extends ProgressCategoryBase {
         notifyChanged();
     }
 }
-