mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Restrict the area for the input to unsatsh the taskbar
The input to unstash the taskbar should only be 48dp more than taskbar_stashed_handle_width or 316dp for wich I created a new variable. Bug: 204166104 Test: Manually stashing and unstashing the taskbar. Change-Id: I94e2e289fcd1169ed0e38a0c45abca6c0ae5c502
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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:
|
||||
mDownX = x;
|
||||
mDownY = y;
|
||||
mTaskbarActivityContext.startTaskbarUnstashHint(
|
||||
/* animateForward = */ true);
|
||||
mCanceledUnstashHint = false;
|
||||
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()) {
|
||||
setActive(motionEvent);
|
||||
if (mTaskbarActivityContext != null && isInArea(motionEvent.getRawX())) {
|
||||
boolean taskBarPressed = mTaskbarActivityContext.onLongPressToUnstashTaskbar();
|
||||
if (taskBarPressed) {
|
||||
setActive(motionEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user