| 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) {
|
|
|