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

Commit 0ef81fdc authored by Jon Miranda's avatar Jon Miranda
Browse files

Uses a TransformingTouchDelegate to extend touch target for widgets list.

The widget row contents were being clipped, which made it seem like
the horizontal scroll was broken.

Bug: 30023607
Change-Id: I00b0c334bbb0faf166d4cd168392cc494ed732e0
parent 1cc48e1d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -59,8 +59,8 @@
            android:id="@+id/widgets_cell_list"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/widget_row_padding"
            android:layout_marginLeft="@dimen/widget_row_padding"
            android:paddingStart="@dimen/widget_row_padding"
            android:paddingEnd="0dp"
            android:orientation="horizontal"
            android:divider="@drawable/widgets_row_divider"
            android:showDividers="middle"/>
+17 −16
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.launcher3.model.WidgetsModel;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.util.TransformingTouchDelegate;

/**
 * The widgets list view container.
@@ -63,11 +64,11 @@ public class WidgetsContainerView extends BaseContainerView
    private IconCache mIconCache;

    private final Rect mTmpBgPaddingRect = new Rect();
    private final Rect mTmpRect = new Rect();

    /* Recycler view related member variables */
    private WidgetsRecyclerView mRecyclerView;
    private WidgetsListAdapter mAdapter;
    private TransformingTouchDelegate mRecyclerViewTouchDelegate;

    /* Touch handling related member variables. */
    private Toast mWidgetInstructionToast;
@@ -94,30 +95,30 @@ public class WidgetsContainerView extends BaseContainerView
        }
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        getRevealView().getBackground().getPadding(mTmpBgPaddingRect);
        mRecyclerViewTouchDelegate.setBounds(
                mRecyclerView.getLeft() - mTmpBgPaddingRect.left,
                mRecyclerView.getTop() - mTmpBgPaddingRect.top,
                mRecyclerView.getRight() + mTmpBgPaddingRect.right,
                mRecyclerView.getBottom() + mTmpBgPaddingRect.bottom);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mRecyclerView = (WidgetsRecyclerView) getContentView().findViewById(R.id.widgets_list_view);
        mRecyclerView.setAdapter(mAdapter);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        mRecyclerViewTouchDelegate = new TransformingTouchDelegate(mRecyclerView);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        getRevealView().getBackground().getPadding(mTmpBgPaddingRect);
        if (Utilities.isRtl(getResources())) {
            getContentView().setPadding(0, mTmpBgPaddingRect.top, mTmpBgPaddingRect.right,
                    mTmpBgPaddingRect.bottom);
            mTmpRect.set(mTmpBgPaddingRect.left, 0, 0, 0);
            mRecyclerView.updateBackgroundPadding(mTmpRect);
        } else {
            getContentView().setPadding(mTmpBgPaddingRect.left, mTmpBgPaddingRect.top, 0,
                    mTmpBgPaddingRect.bottom);
            mTmpRect.set(0, 0, mTmpBgPaddingRect.right, 0);
            mRecyclerView.updateBackgroundPadding(mTmpRect);
        }

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        ((View) mRecyclerView.getParent()).setTouchDelegate(mRecyclerViewTouchDelegate);
    }

    //