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}