X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff..269195b3729c1bdc22e9053ee4ebca667ea8549d:/Android/webViewMarker/src/main/java/com/blahti/drag/DragLayer.java diff --git a/Android/webViewMarker/src/main/java/com/blahti/drag/DragLayer.java b/Android/webViewMarker/src/main/java/com/blahti/drag/DragLayer.java new file mode 100755 index 0000000..050f657 --- /dev/null +++ b/Android/webViewMarker/src/main/java/com/blahti/drag/DragLayer.java @@ -0,0 +1,101 @@ +/* + * This is a modified version of a class from the Android Open Source Project. + * The original copyright and license information follows. + * + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.blahti.drag; + +import android.content.Context; +import android.graphics.Rect; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.KeyEvent; +import android.view.View; + +/** + * A ViewGroup that coordinates dragging across its descendants. + * + *

This class used DragLayer in the Android Launcher activity as a model. + * It is a bit different in several respects: + * (1) It extends MyAbsoluteLayout rather than FrameLayout; (2) it implements DragSource and DropTarget methods + * that were done in a separate Workspace class in the Launcher. + */ +public class DragLayer extends MyAbsoluteLayout implements DragSource, DropTarget { + private DragController mDragController; + + public DragLayer (Context context, AttributeSet attrs) { + super(context, attrs); + } + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + return mDragController.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); + } + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + return mDragController.onInterceptTouchEvent(ev); + } + @Override + public boolean onTouchEvent(MotionEvent ev) { + return mDragController.onTouchEvent(ev); + } + @Override + public boolean dispatchUnhandledMove(View focused, int direction) { + return mDragController.dispatchUnhandledMove(focused, direction); + } + + // Interfaces of DragSource + @Override + public boolean allowDrag() { + return true; + } + @Override + public void setDragController(DragController controller) { + mDragController = controller; + } + @Override + public void onDropCompleted(View target, boolean success) { + } + + // Interfaces of DropTarget + @Override + public void onDrop(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo) { + final View v = (View)dragInfo; + final int w = v.getWidth(); + final int h = v.getHeight(); + final int left = x - xOffset; + final int top = y - yOffset; + final DragLayer.LayoutParams lp = new DragLayer.LayoutParams (w, h, left, top); + updateViewLayout(v, lp); + } + @Override + public void onDragEnter(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo) { + } + @Override + public void onDragOver(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo) { + } + @Override + public void onDragExit(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo) { + } + @Override + public boolean acceptDrop(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo) { + return true; + } + @Override + public Rect estimateDropLocation(DragSource source, int x, int y, int xOffset, int yOffset, DragView dragView, Object dragInfo, Rect recycle) { + return null; + } +}