- protected void processView(View view, int type) {
- view.setOnDragListener(new View.OnDragListener() {
- @Override
- public boolean onDrag(View dstView, DragEvent event) {
- Reference<View> ref = (Reference<View>) event.getLocalState();
- final View srcView = ref.reference;
-
- switch (event.getAction()) {
- case DragEvent.ACTION_DRAG_ENTERED:
+ public boolean onDrag(View dstView, DragEvent event) {
+ Reference<View> ref = (Reference<View>) event.getLocalState();
+ final View srcView = ref.reference;
+
+ switch (event.getAction()) {
+ case DragEvent.ACTION_DRAG_ENTERED:
+ srcView.setVisibility(View.VISIBLE);
+ dstView.setVisibility(View.INVISIBLE);
+
+ Integer src = mPositions.get(srcView);
+ Integer dst = mPositions.get(dstView);
+ if (src != null && dst != null)
+ move(src, dst);
+
+ ref.reference = dstView;
+ break;
+
+ case DragEvent.ACTION_DRAG_ENDED:
+ srcView.post(new Runnable() {
+ @Override
+ public void run() {