Fix Bluetooth Settings activity memory leak.

    There were two leaks in Bluetooth Settings: one when rotating the
    phone and other when scanning for bluetooth devices.
diff --git a/src/com/android/settings/ProgressCategory.java b/src/com/android/settings/ProgressCategory.java
index 15810b3..f611137 100644
--- a/src/com/android/settings/ProgressCategory.java
+++ b/src/com/android/settings/ProgressCategory.java
@@ -26,7 +26,8 @@
 public class ProgressCategory extends PreferenceCategory {
 
     private boolean mProgress = false;
-    
+    private View oldView = null;
+
     public ProgressCategory(Context context, AttributeSet attrs) {
         super(context, attrs);
         setLayoutResource(R.layout.preference_progress_category);
@@ -41,6 +42,13 @@
         int visibility = mProgress ? View.VISIBLE : View.INVISIBLE;
         textView.setVisibility(visibility);
         progressBar.setVisibility(visibility);
+
+        if (oldView != null) {
+            oldView.findViewById(R.id.scanning_progress).setVisibility(View.GONE);
+            oldView.findViewById(R.id.scanning_text).setVisibility(View.GONE);
+            oldView.setVisibility(View.GONE);
+        }
+        oldView = view;
     }
     
     /**
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 1e73b2d..78c531c 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -188,7 +188,8 @@
         super.onPause();
 
         mLocalManager.setForegroundActivity(null);
-
+        mDevicePreferenceMap.clear();
+        mDeviceList.removeAll();
         unregisterReceiver(mReceiver);
 
         mLocalManager.unregisterCallback(this);