Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e8d9aca authored by Michael Wright's avatar Michael Wright
Browse files

Correctly iterate through MediaProjection callbacks.

Bug: 18393320
Change-Id: I81e46b516e4e94b04a1b8363805b8bb633cb822e
parent 1bd81e31
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -76,6 +76,9 @@ public final class MediaProjection {
        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 @@ public final class MediaProjection {
    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;