From 0928a62d4230bb2e961f028efff5a196382f8dc2 Mon Sep 17 00:00:00 2001 From: Nathaniel McCallum Date: Mon, 9 Dec 2013 15:13:55 -0500 Subject: [PATCH] Don't use anonymous classes in ReorderableBaseAdapter --- .../adapters/ReorderableBaseAdapter.java | 97 ++++++++++--------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/src/org/fedorahosted/freeotp/adapters/ReorderableBaseAdapter.java b/src/org/fedorahosted/freeotp/adapters/ReorderableBaseAdapter.java index 846469a..f1bd5c4 100644 --- a/src/org/fedorahosted/freeotp/adapters/ReorderableBaseAdapter.java +++ b/src/org/fedorahosted/freeotp/adapters/ReorderableBaseAdapter.java @@ -26,9 +26,11 @@ import android.content.ClipData; import android.view.DragEvent; import android.view.View; import android.view.View.DragShadowBuilder; +import android.view.View.OnDragListener; +import android.view.View.OnLongClickListener; import android.view.ViewParent; -public abstract class ReorderableBaseAdapter extends BaseAdapter { +public abstract class ReorderableBaseAdapter extends BaseAdapter implements OnLongClickListener, OnDragListener { private final WeakHashMap mPositions = new WeakHashMap(); private class Reference { public Reference(T t) { reference = t; } @@ -53,60 +55,59 @@ public abstract class ReorderableBaseAdapter extends BaseAdapter { } @Override - protected void processView(View view, int type) { - view.setOnDragListener(new View.OnDragListener() { - @Override - public boolean onDrag(View dstView, DragEvent event) { - Reference ref = (Reference) event.getLocalState(); - final View srcView = ref.reference; - - switch (event.getAction()) { - case DragEvent.ACTION_DRAG_ENTERED: + public boolean onDrag(View dstView, DragEvent event) { + Reference ref = (Reference) 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() { 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() { - srcView.setVisibility(View.VISIBLE); - } - }); - break; } + }); + break; + } - return true; - } - }); + return true; + } - view.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(final View view) { + // Force a reset of any states + notifyDataSetChanged(); + + // Start the drag on the main loop to allow + // the above state reset to settle. + view.post(new Runnable() { @Override - public boolean onLongClick(final View view) { - // Force a reset of any states - notifyDataSetChanged(); - - // Start the drag on the main loop to allow - // the above state reset to settle. - view.post(new Runnable() { - @Override - public void run() { - ClipData data = ClipData.newPlainText("", ""); - DragShadowBuilder sb = new View.DragShadowBuilder(view); - view.startDrag(data, sb, new Reference(view), 0); - } - }); - - return true; + public void run() { + ClipData data = ClipData.newPlainText("", ""); + DragShadowBuilder sb = new View.DragShadowBuilder(view); + view.startDrag(data, sb, new Reference(view), 0); } }); + + return true; + } + + @Override + protected void processView(View view, int type) { + view.setOnDragListener(this); + view.setOnLongClickListener(this); } protected int getPositionFromView(View view) { -- 2.43.2