Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01fcf487 authored by Vladislav Kaznacheev's avatar Vladislav Kaznacheev
Browse files

Update DocumentsUI according to DragStartHelper API changes

Bug: 27810240
Change-Id: I1daed13d6d9cc215a6b1ba4d0ad259a996b0eb5f
parent f3121f46
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -1084,7 +1084,7 @@ public class DirectoryFragment extends Fragment
        }

        // Make all items draggable.
        view.setOnLongClickListener(mDragHelper);
        view.setOnLongClickListener(onLongClickListener);
    }

    private View.OnDragListener mOnDragListener = new View.OnDragListener() {
@@ -1387,9 +1387,10 @@ public class DirectoryFragment extends Fragment
        }
    }

    private DragStartHelper mDragHelper = new DragStartHelper(null) {
    private DragStartHelper.OnDragStartListener mOnDragStartListener =
            new DragStartHelper.OnDragStartListener() {
        @Override
        protected boolean onDragStart(View v) {
        public boolean onDragStart(View v, DragStartHelper helper) {
            if (isSelected(getModelId(v))) {
                List<DocumentInfo> docs = getDraggableDocuments(v);
                if (docs.isEmpty()) {
@@ -1409,6 +1410,15 @@ public class DirectoryFragment extends Fragment
        }
    };

    private DragStartHelper mDragHelper = new DragStartHelper(null, mOnDragStartListener);

    private View.OnLongClickListener onLongClickListener = new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            return mDragHelper.onLongClick(v);
        }
    };

    // Previously we listened to events with one class, only to bounce them forward
    // to GestureDetector. We're still doing that here, but with a single class
    // that reduces overall complexity in our glue code.
@@ -1439,7 +1449,7 @@ public class DirectoryFragment extends Fragment

            // Detect drag events. When a drag is detected, intercept the rest of the gesture.
            View itemView = rv.findChildViewUnder(e.getX(), e.getY());
            if (itemView != null && mDragHelper.handleTouch(itemView,  e)) {
            if (itemView != null && mDragHelper.onTouch(itemView,  e)) {
                return true;
            }
            // Forward unhandled events to the GestureDetector.
@@ -1451,7 +1461,7 @@ public class DirectoryFragment extends Fragment
        @Override
        public void onTouchEvent(RecyclerView rv, MotionEvent e) {
            View itemView = rv.findChildViewUnder(e.getX(), e.getY());
            mDragHelper.handleTouch(itemView,  e);
            mDragHelper.onTouch(itemView,  e);
            // Note: even though this event is being handled as part of a drag gesture, continue
            // forwarding to the GestureDetector. The detector needs to see the entire cluster of
            // events in order to properly interpret gestures.