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