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

Commit df022bd4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Restrict the area for the input to unsatsh the taskbar" into tm-dev

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 = context.getResources().getDisplayMetrics().widthPixels;
        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);
            }
        }
    }
}