Use CopyOnWriteArrayList for mDragCallbacks.
Bug: 33396891
Needs to be combined with a touch fix; this alone will solve crashing,
but not freezing.
Change-Id: Ifab9ef779d00c8a9b59f231fce330ae8fc41528c
diff --git a/src/com/android/calculator2/DragLayout.java b/src/com/android/calculator2/DragLayout.java
index c96d139..561d0ec 100644
--- a/src/com/android/calculator2/DragLayout.java
+++ b/src/com/android/calculator2/DragLayout.java
@@ -27,8 +27,8 @@
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
-import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
public class DragLayout extends RelativeLayout {
@@ -40,7 +40,8 @@
private FrameLayout mHistoryFrame;
private ViewDragHelper mDragHelper;
- private final List<DragCallback> mDragCallbacks = new ArrayList<>();
+ // No concurrency; allow modifications while iterating.
+ private final List<DragCallback> mDragCallbacks = new CopyOnWriteArrayList<>();
private CloseCallback mCloseCallback;
private int mDraggingState = ViewDragHelper.STATE_IDLE;