private boolean findAppropriateDropHandle(DragEvent event) { Log.i(TAG, "Loc of parent: x:" + mLocationOnScreen[0] + " y:" + mLocationOnScreen[1]); mDragLocationOnScreen[0] = (int) (mLocationOnScreen[0] + event.getX()); mDragLocationOnScreen[1] = (int) (mLocationOnScreen[1] + event.getY()); Log.i( TAG, "FPN Drag location relative, x: " + mDragLocationOnScreen[0] + " y: " + mDragLocationOnScreen[1]); if (mCurrentDropHandleView != null) { ((DropAcceptable) mCurrentDropHandleView).onDrop(event); mCurrentDropHandleView = null; return true; } else { return false; } }
private boolean findAppropriateDragMoveHandle(DragEvent event) { Log.i(TAG, "Loc of parent: x:" + mLocationOnScreen[0] + " y:" + mLocationOnScreen[1]); mDragLocationOnScreen[0] = (int) (mLocationOnScreen[0] + event.getX()); mDragLocationOnScreen[1] = (int) (mLocationOnScreen[1] + event.getY()); Log.i( TAG, "FPN Drag location relative, x: " + mDragLocationOnScreen[0] + " y: " + mDragLocationOnScreen[1]); boolean moveOnHandleView; if (mCurrentDropHandleView != null) { Log.i(TAG, "There is drop handle view, test it!"); // Test if still move on the drop handle view moveOnHandleView = ViewUtil.isViewContained( mCurrentDropHandleView, mDragLocationOnScreen[0], mDragLocationOnScreen[1]); if (!moveOnHandleView) { // Exit ((DropAcceptable) mCurrentDropHandleView).onDragExited(event); mCurrentDropHandleView = null; return false; } else { return true; } } else { // Test if there is a new view become drop handle boolean foundNewDropHandle = false; for (int i = 0; i < mNavigatorContainer.getChildCount(); i++) { View view = mNavigatorContainer.getChildAt(i); moveOnHandleView = ViewUtil.isViewContained(view, mDragLocationOnScreen[0], mDragLocationOnScreen[1]); if (moveOnHandleView) { Log.i( TAG, "Drag enter child view: " + i + " class: " + view.getClass().getSimpleName() + " l: " + view.getLeft() + " width: " + view.getWidth() + " t: " + view.getTop() + " height: " + view.getHeight() + " r: " + view.getRight() + " b: " + view.getBottom()); if (view instanceof DropAcceptable) { mCurrentDropHandleView = view; foundNewDropHandle = true; ((DropAcceptable) mCurrentDropHandleView).onDragEntered(event); } if (foundNewDropHandle) { Log.i(TAG, "Find new drop handle view!"); return true; } else { Log.i(TAG, "Not find new drop handle view yet!"); } } } return false; } }