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

Commit 090ccc50 authored by Yorke Lee's avatar Yorke Lee
Browse files

Fix flicker when long pressing to drag and drop

Initial creation of drag shadow now uses the same layout
logic as drag hovering so that the shadow does not jump upon
first creation.

Removed setPressed from onLongClick listener to avoid toggling
of pressed state when drag was started.

Bug: 10991974
Change-Id: I186cd62060e3a79913aa89fb7af989f3497e0b10
parent 02bd6dfd
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -24,8 +24,7 @@
        android:id="@+id/contact_favorite_card"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true"
        android:background="?android:attr/selectableItemBackground" >
        android:focusable="true">

        <com.android.contacts.common.widget.LayoutSuppressingQuickContactBadge
            android:id="@+id/contact_tile_quick"
+2 −9
Original line number Diff line number Diff line
@@ -306,14 +306,6 @@ public class PhoneFavoriteListView extends ListView implements SwipeHelperCallba
        }
    }

    private FrameLayout.LayoutParams getDragShadowLayoutParams() {
        final FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
                mDragShadowWidth, mDragShadowHeight);
        lp.leftMargin = mDragShadowLeft;
        lp.topMargin = mDragShadowTop;
        return lp;
    }

    /**
     * @return True if the drag is started.
     */
@@ -361,7 +353,8 @@ public class PhoneFavoriteListView extends ListView implements SwipeHelperCallba
            mDragShadowOverlay.setVisibility(VISIBLE);
            mDragShadowOverlay.setAlpha(DRAG_SHADOW_ALPHA);

            mDragShadowOverlay.setLayoutParams(getDragShadowLayoutParams());
            mDragShadowOverlay.setX(mDragShadowLeft);
            mDragShadowOverlay.setY(mDragShadowTop);

            // x and y passed in are the coordinates of where the user has touched down, calculate
            // the offset to the top left coordinate of the dragged child.  This will be used for
+0 −1
Original line number Diff line number Diff line
@@ -96,7 +96,6 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
        setOnLongClickListener(new OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                setPressed(false);
                final PhoneFavoriteTileView view = (PhoneFavoriteTileView) v;
                // NOTE The drag shadow is handled in the ListView.
                if (view instanceof PhoneFavoriteRegularRowView) {
+0 −1
Original line number Diff line number Diff line
@@ -772,7 +772,6 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
                    setVisibility(View.VISIBLE);
                }
            }
            setPressed(false);
        }

        private void addTileFromEntry(ContactEntry entry, int childIndex, boolean isLastRow) {