Correctly iterate through MediaProjection callbacks.
Bug: 18393320
Change-Id: I81e46b516e4e94b04a1b8363805b8bb633cb822e
diff --git a/media/java/android/media/projection/MediaProjection.java b/media/java/android/media/projection/MediaProjection.java
index e6dadf9..3f942899 100644
--- a/media/java/android/media/projection/MediaProjection.java
+++ b/media/java/android/media/projection/MediaProjection.java
@@ -76,6 +76,9 @@
if (callback == null) {
throw new IllegalArgumentException("callback should not be null");
}
+ if (handler == null) {
+ handler = new Handler();
+ }
mCallbacks.put(callback, new CallbackRecord(callback, handler));
}
@@ -183,16 +186,15 @@
private final class MediaProjectionCallback extends IMediaProjectionCallback.Stub {
@Override
public void onStop() {
- final int N = mCallbacks.size();
- for (int i = 0; i < N; i++) {
- mCallbacks.get(i).onStop();
+ for (CallbackRecord cbr : mCallbacks.values()) {
+ cbr.onStop();
}
}
}
private final static class CallbackRecord {
- private Callback mCallback;
- private Handler mHandler;
+ private final Callback mCallback;
+ private final Handler mHandler;
public CallbackRecord(Callback callback, Handler handler) {
mCallback = callback;