Index: components/dom_distiller/android/java/src/org/chromium/components/dom_distiller/core/DistilledPagePrefs.java |
diff --git a/components/dom_distiller/android/java/src/org/chromium/components/dom_distiller/core/DistilledPagePrefs.java b/components/dom_distiller/android/java/src/org/chromium/components/dom_distiller/core/DistilledPagePrefs.java |
index d69d4fb8adaaa486d85fe3872f551ad39c4dfd74..3ba9f7ea82d8c7facdf39e2a982de411cd0d1a03 100644 |
--- a/components/dom_distiller/android/java/src/org/chromium/components/dom_distiller/core/DistilledPagePrefs.java |
+++ b/components/dom_distiller/android/java/src/org/chromium/components/dom_distiller/core/DistilledPagePrefs.java |
@@ -65,19 +65,29 @@ public final class DistilledPagePrefs { |
mObserverMap = new HashMap<Observer, DistilledPagePrefsObserverWrapper>(); |
} |
- public void addObserver(Observer obs) { |
+ /* |
+ * Adds the observer to listen to changes in DistilledPagePrefs. |
+ * @return whether the observerMap was changed as a result of the call. |
+ */ |
+ public boolean addObserver(Observer obs) { |
+ if (mObserverMap.containsKey(obs)) return false; |
DistilledPagePrefsObserverWrapper wrappedObserver = |
new DistilledPagePrefsObserverWrapper(obs); |
nativeAddObserver(mDistilledPagePrefsAndroid, wrappedObserver.getNativePtr()); |
mObserverMap.put(obs, wrappedObserver); |
+ return true; |
} |
- public void removeObserver(Observer obs) { |
+ /* |
+ * Removes the observer and unregisters it from DistilledPagePrefs changes. |
+ * @return whether the observer was removed as a result of the call. |
+ */ |
+ public boolean removeObserver(Observer obs) { |
DistilledPagePrefsObserverWrapper wrappedObserver = mObserverMap.remove(obs); |
- if (wrappedObserver != null) { |
- nativeRemoveObserver(mDistilledPagePrefsAndroid, wrappedObserver.getNativePtr()); |
- wrappedObserver.destroy(); |
- } |
+ if (wrappedObserver == null) return false; |
+ nativeRemoveObserver(mDistilledPagePrefsAndroid, wrappedObserver.getNativePtr()); |
+ wrappedObserver.destroy(); |
+ return true; |
} |
public void setTheme(Theme theme) { |