Index: base/android/java/src/org/chromium/base/ActivityStatus.java |
diff --git a/base/android/java/src/org/chromium/base/ActivityStatus.java b/base/android/java/src/org/chromium/base/ActivityStatus.java |
index c89a0f80f902bb4bc0ece7997d79e36594fbd4b3..7d0ee947590a9ff0c58555fbb1ccfae8d3da801e 100644 |
--- a/base/android/java/src/org/chromium/base/ActivityStatus.java |
+++ b/base/android/java/src/org/chromium/base/ActivityStatus.java |
@@ -7,8 +7,6 @@ package org.chromium.base; |
import android.app.Activity; |
import android.os.Looper; |
-import java.util.concurrent.CopyOnWriteArrayList; |
- |
/** |
* Provides information about the parent activity's status. |
*/ |
@@ -29,10 +27,8 @@ public class ActivityStatus { |
// testing. |
private static int sActivityState; |
- // Use CopyOnWriteArrayList to avoid ConcurrentModificationException when a listener tries to |
- // remove itself while being notified of a state change. |
- private static final CopyOnWriteArrayList<StateListener> sStateListeners = |
- new CopyOnWriteArrayList<StateListener>(); |
+ private static final ObserverList<StateListener> sStateListeners = |
+ new ObserverList<StateListener>(); |
/** |
* Interface to be implemented by listeners. |
@@ -96,7 +92,7 @@ public class ActivityStatus { |
* @param listener Listener to receive state changes. |
*/ |
public static void registerStateListener(StateListener listener) { |
- sStateListeners.add(listener); |
+ sStateListeners.addObserver(listener); |
} |
/** |
@@ -104,6 +100,6 @@ public class ActivityStatus { |
* @param listener Listener that doesn't want to receive state changes. |
*/ |
public static void unregisterStateListener(StateListener listener) { |
- sStateListeners.remove(listener); |
+ sStateListeners.removeObserver(listener); |
} |
} |