1804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan/* 2804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * Copyright (C) 2016 The Android Open Source Project 3804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * 4804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * Licensed under the Apache License, Version 2.0 (the "License"); 5804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * you may not use this file except in compliance with the License. 6804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * You may obtain a copy of the License at 7804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * 8804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * http://www.apache.org/licenses/LICENSE-2.0 9804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * 10804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * Unless required by applicable law or agreed to in writing, software 11804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * distributed under the License is distributed on an "AS IS" BASIS, 12804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * See the License for the specific language governing permissions and 14804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan * limitations under the License. 15804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan */ 16804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 17804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tanpackage com.android.documentsui.dirlist; 18804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 19804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tanimport android.view.DragEvent; 20804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tanimport android.view.View; 21804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 22da2c0f0b075ad9f770182e706c2ec158989568a7Garfield Tanimport com.android.documentsui.DragAndDropManager; 23804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tanimport com.android.documentsui.ItemDragListener; 24804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 255a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Linimport java.util.TimerTask; 265a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Lin 275a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Linimport javax.annotation.Nullable; 285a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Lin 290f7e5878cc33d857170c0bb867628f73d37c4c5dGarfield Tanclass DirectoryDragListener extends ItemDragListener<DragHost<?>> { 30804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 31da2c0f0b075ad9f770182e706c2ec158989568a7Garfield Tan 320f7e5878cc33d857170c0bb867628f73d37c4c5dGarfield Tan DirectoryDragListener(com.android.documentsui.dirlist.DragHost<?> host) { 330f7e5878cc33d857170c0bb867628f73d37c4c5dGarfield Tan super(host); 34804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan } 35804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 36804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan @Override 37804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan public boolean onDrag(View v, DragEvent event) { 38804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan final boolean result = super.onDrag(v, event); 39804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 401c45629929c31cf7903cf955a48f170a8cdee255Ben Lin switch (event.getAction()) { 411c45629929c31cf7903cf955a48f170a8cdee255Ben Lin case DragEvent.ACTION_DRAG_ENDED: 421c45629929c31cf7903cf955a48f170a8cdee255Ben Lin // getResult() is true if drag was accepted 431c45629929c31cf7903cf955a48f170a8cdee255Ben Lin mDragHost.dragStopped(event.getResult()); 441c45629929c31cf7903cf955a48f170a8cdee255Ben Lin break; 451c45629929c31cf7903cf955a48f170a8cdee255Ben Lin default: 461c45629929c31cf7903cf955a48f170a8cdee255Ben Lin break; 47804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan } 48804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 49804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan return result; 50804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan } 51804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan 52804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan @Override 53804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan public boolean handleDropEventChecked(View v, DragEvent event) { 54804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan return mDragHost.handleDropEvent(v, event); 55804133e4ca98ffa168cd547793054b594cf6d9ccGarfield, Tan } 565a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Lin 575a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Lin @Override 585a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Lin public @Nullable TimerTask createOpenTask(final View v, DragEvent event) { 59da2c0f0b075ad9f770182e706c2ec158989568a7Garfield Tan return mDragHost.canSpringOpen(v) 60d020212fdad3be1537dfa47ff5b67e3bc4272d5eBen Lin ? super.createOpenTask(v, event) : null; 615a305b41ecd9c563c54bda9ff3c0d0f3739c5bdaBen Lin } 62c5e3e8eb996187ba780ef8654e66a58b940dcb40Ben Lin}