summaryrefslogtreecommitdiffstats
path: root/base/android
diff options
context:
space:
mode:
authornileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-12 17:05:59 +0000
committernileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-12 17:05:59 +0000
commitb0a042ffd0b83ece0cc90e128d9f946c2d115d4c (patch)
treeed6a9f533b719cb3560e97fec40074686cf1a637 /base/android
parenta19efb76fe463f1c56f1d3f51fa68dde51384d3d (diff)
downloadchromium_src-b0a042ffd0b83ece0cc90e128d9f946c2d115d4c.zip
chromium_src-b0a042ffd0b83ece0cc90e128d9f946c2d115d4c.tar.gz
chromium_src-b0a042ffd0b83ece0cc90e128d9f946c2d115d4c.tar.bz2
Use CopyOnWriteArrayList to safely maintain a list of observers.
BUG= Review URL: https://chromiumcodereview.appspot.com/11827041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176553 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/android')
-rw-r--r--base/android/java/src/org/chromium/base/ActivityStatus.java11
-rw-r--r--base/android/java/src/org/chromium/base/SystemMonitor.java1
2 files changed, 8 insertions, 4 deletions
diff --git a/base/android/java/src/org/chromium/base/ActivityStatus.java b/base/android/java/src/org/chromium/base/ActivityStatus.java
index e728870..24b9a66 100644
--- a/base/android/java/src/org/chromium/base/ActivityStatus.java
+++ b/base/android/java/src/org/chromium/base/ActivityStatus.java
@@ -7,7 +7,7 @@ package org.chromium.base;
import android.app.Activity;
import android.os.Looper;
-import java.util.ArrayList;
+import java.util.concurrent.CopyOnWriteArrayList;
/**
* Provides information about the parent activity's status.
@@ -29,9 +29,14 @@ public class ActivityStatus {
// testing.
private static int sActivityState;
- private static final ArrayList<StateListener> sStateListeners = new ArrayList<StateListener>();
+ // 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>();
- // Use this interface to listen to all state changes.
+ /**
+ * Interface to be implemented by listeners.
+ */
public interface StateListener {
/**
* Called when the activity's state changes.
diff --git a/base/android/java/src/org/chromium/base/SystemMonitor.java b/base/android/java/src/org/chromium/base/SystemMonitor.java
index 30f61a6..138ae28 100644
--- a/base/android/java/src/org/chromium/base/SystemMonitor.java
+++ b/base/android/java/src/org/chromium/base/SystemMonitor.java
@@ -4,7 +4,6 @@
package org.chromium.base;
-import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;