From d1d87315942218816a509798a299612ed674c21c Mon Sep 17 00:00:00 2001 From: John Reck Date: Thu, 8 Mar 2012 13:25:00 -0800 Subject: Remove WebSettings from BrowserSettings in destroy Bug: 5776363 Change-Id: Id142c7096601c2316d71bd9443930080ce92c19c --- src/com/android/browser/BrowserSettings.java | 11 +++++++++++ src/com/android/browser/BrowserWebView.java | 6 ++++++ 2 files changed, 17 insertions(+) (limited to 'src/com/android/browser') diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java index 4f4bb13..4fe93d6 100644 --- a/src/com/android/browser/BrowserSettings.java +++ b/src/com/android/browser/BrowserSettings.java @@ -161,6 +161,17 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, } } + public void stopManagingSettings(WebSettings settings) { + Iterator> iter = mManagedSettings.iterator(); + while (iter.hasNext()) { + WeakReference ref = iter.next(); + if (ref.get() == settings) { + iter.remove(); + return; + } + } + } + private Runnable mSetup = new Runnable() { @Override diff --git a/src/com/android/browser/BrowserWebView.java b/src/com/android/browser/BrowserWebView.java index 7981d8a..49d1a2e 100644 --- a/src/com/android/browser/BrowserWebView.java +++ b/src/com/android/browser/BrowserWebView.java @@ -124,4 +124,10 @@ public class BrowserWebView extends WebView implements WebViewClassic.TitleBarDe return false; } + @Override + public void destroy() { + BrowserSettings.getInstance().stopManagingSettings(getSettings()); + super.destroy(); + } + } -- cgit v1.1