Merge "Remove explicit calls to onFilterComplete" into honeycomb
diff --git a/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java b/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
index 91705e5..409ddb7 100644
--- a/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
+++ b/src/com/android/browser/preferences/PrivacySecurityPreferencesFragment.java
@@ -71,8 +71,12 @@
         values[i] = "";
         autologinPref.setEntries(names);
         autologinPref.setEntryValues(values);
-        autologinPref.setValue(BrowserSettings.getInstance()
-                .getAutoLoginAccount(getActivity()));
+        BrowserSettings bs = BrowserSettings.getInstance();
+        if (bs.isAutoLoginEnabled()) {
+            autologinPref.setValue(bs.getAutoLoginAccount(getActivity()));
+        } else {
+            autologinPref.setValue("");
+        }
     }
 
     private void updateAutoLoginSummary(Preference pref) {
diff --git a/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
index 631bf84..cc06349 100644
--- a/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
+++ b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
@@ -109,7 +109,10 @@
             int[] ids = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
             if (ids != null) {
                 for (int id : ids) {
-                    mFactories.remove(id);
+                    BookmarkFactory bf = mFactories.remove(id);
+                    // Workaround a known framework bug
+                    // onDestroy is currently never called
+                    bf.onDestroy();
                 }
             }
         } else if (ACTION_CHANGE_FOLDER.equals(action)) {
@@ -309,9 +312,18 @@
 
         @Override
         public void onDestroy() {
-            recycleBitmaps();
             SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
             prefs.unregisterOnSharedPreferenceChangeListener(this);
+
+            // Workaround known framework bug
+            // This class currently leaks, so free as much memory as we can
+            recycleBitmaps();
+            mBookmarks.clear();
+            mBreadcrumbs.clear();
+            if (mLoadTask != null) {
+                mLoadTask.cancel(false);
+                mLoadTask = null;
+            }
         }
 
         @Override