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

Commit 50ec0e89 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Sebastián Franco
Browse files

Small improvement for ag/17016891 (unstash taskbar input area size)

Get the device width form DeviceProfile instead of context for efficiency.

Bug: 204166104
Test: Unstash and stash taskbar, done in both orientations.
Change-Id: I14c3593552939f3be78f3e5c1193020873555d37
parents 59534c7a 91c37bbd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@
    <dimen name="taskbar_contextual_buttons_size">35dp</dimen>
    <dimen name="taskbar_stashed_size">24dp</dimen>
    <dimen name="taskbar_stashed_handle_width">220dp</dimen>
    <dimen name="taskbar_unstash_input_area">316dp</dimen>
    <dimen name="taskbar_stashed_handle_height">4dp</dimen>
    <dimen name="taskbar_edu_wave_anim_trans_y">25dp</dimen>
    <dimen name="taskbar_edu_wave_anim_trans_y_return_overshoot">4dp</dimen>
+25 −8
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;

import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.taskbar.TaskbarActivityContext;
import com.android.quickstep.InputConsumer;
@@ -36,14 +37,20 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer {
    private final GestureDetector mLongPressDetector;
    private final float mSquaredTouchSlop;


    private float mDownX, mDownY;
    private boolean mCanceledUnstashHint;
    private final float mUnstashArea;
    private final float mScreenWidth;

    public TaskbarStashInputConsumer(Context context, InputConsumer delegate,
            InputMonitorCompat inputMonitor, TaskbarActivityContext taskbarActivityContext) {
        super(delegate, inputMonitor);
        mTaskbarActivityContext = taskbarActivityContext;
        mSquaredTouchSlop = Utilities.squaredTouchSlop(context);
        mScreenWidth = taskbarActivityContext.getDeviceProfile().widthPx;
        mUnstashArea = context.getResources()
                .getDimensionPixelSize(R.dimen.taskbar_unstash_input_area);

        mLongPressDetector = new GestureDetector(context, new SimpleOnGestureListener() {
            @Override
@@ -69,11 +76,13 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer {
                final float y = ev.getRawY();
                switch (ev.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        if (isInArea(x)) {
                            mDownX = x;
                            mDownY = y;
                            mTaskbarActivityContext.startTaskbarUnstashHint(
                                    /* animateForward = */ true);
                            mCanceledUnstashHint = false;
                        }
                        break;
                    case MotionEvent.ACTION_MOVE:
                        if (!mCanceledUnstashHint
@@ -95,10 +104,18 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer {
        }
    }

    private boolean isInArea(float x) {
        float areaFromMiddle = mUnstashArea / 2.0f;
        float distFromMiddle = Math.abs(mScreenWidth / 2.0f - x);
        return distFromMiddle < areaFromMiddle;
    }

    private void onLongPressDetected(MotionEvent motionEvent) {
        if (mTaskbarActivityContext != null
                && mTaskbarActivityContext.onLongPressToUnstashTaskbar()) {
        if (mTaskbarActivityContext != null && isInArea(motionEvent.getRawX())) {
            boolean taskBarPressed = mTaskbarActivityContext.onLongPressToUnstashTaskbar();
            if (taskBarPressed) {
                setActive(motionEvent);
            }
        }
    }
}