mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 15:26:58 +00:00
Rotate touch events for land/seascape navbars
Previous change removed checking for navbar location to transpose touch event. fixes: 150700927 Test: Quickstep TAPL test passes. Change-Id: I47683f8a75f24c8bfc46437e0eef9172c23cc452
This commit is contained in:
@@ -45,6 +45,7 @@ import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.anim.AnimationSuccessListener;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.graphics.RotationMode;
|
||||
import com.android.launcher3.model.PagedViewOrientedState;
|
||||
import com.android.launcher3.states.RotationHelper;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
@@ -146,8 +147,8 @@ public abstract class BaseSwipeUpHandler<T extends BaseDraggingActivity, Q exten
|
||||
VibratorWrapper.INSTANCE.get(mContext).vibrate(OVERVIEW_HAPTIC);
|
||||
}
|
||||
|
||||
public Consumer<MotionEvent> getRecentsViewDispatcher() {
|
||||
return mRecentsView != null ? mRecentsView.getEventDispatcher() : null;
|
||||
public Consumer<MotionEvent> getRecentsViewDispatcher(RotationMode navBarRotationMode) {
|
||||
return mRecentsView != null ? mRecentsView.getEventDispatcher(navBarRotationMode) : null;
|
||||
}
|
||||
|
||||
@UiThread
|
||||
|
||||
@@ -176,7 +176,8 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
|
||||
// Proxy events to recents view
|
||||
if (mPassedWindowMoveSlop && mInteractionHandler != null
|
||||
&& !mRecentsViewDispatcher.hasConsumer()) {
|
||||
mRecentsViewDispatcher.setConsumer(mInteractionHandler.getRecentsViewDispatcher());
|
||||
mRecentsViewDispatcher.setConsumer(mInteractionHandler
|
||||
.getRecentsViewDispatcher(mNavBarPosition.getRotationMode()));
|
||||
}
|
||||
int edgeFlags = ev.getEdgeFlags();
|
||||
ev.setEdgeFlags(edgeFlags | EDGE_NAV_BAR);
|
||||
|
||||
@@ -96,6 +96,7 @@ import com.android.launcher3.anim.SpringObjectAnimator;
|
||||
import com.android.launcher3.compat.AccessibilityManagerCompat;
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.dragndrop.DragLayer;
|
||||
import com.android.launcher3.graphics.RotationMode;
|
||||
import com.android.launcher3.states.RotationHelper;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler.CurveProperties;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto;
|
||||
@@ -1946,8 +1947,13 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
|
||||
return offsetX;
|
||||
}
|
||||
|
||||
public Consumer<MotionEvent> getEventDispatcher() {
|
||||
int degreesRotated = RotationHelper.getDegreesFromRotation(mLayoutRotation);
|
||||
public Consumer<MotionEvent> getEventDispatcher(RotationMode navBarRotationMode) {
|
||||
float degreesRotated;
|
||||
if (navBarRotationMode == RotationMode.NORMAL) {
|
||||
degreesRotated = RotationHelper.getDegreesFromRotation(mLayoutRotation);
|
||||
} else {
|
||||
degreesRotated = -navBarRotationMode.surfaceRotation;
|
||||
}
|
||||
if (degreesRotated == 0) {
|
||||
return super::onTouchEvent;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.android.launcher3.states;
|
||||
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LOCKED;
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
|
||||
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
|
||||
import static android.util.DisplayMetrics.DENSITY_DEVICE_STABLE;
|
||||
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
|
||||
@@ -277,7 +276,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener {
|
||||
* Creates a matrix to transform the given motion event specified by degrees.
|
||||
* If {@param inverse} is {@code true}, the inverse of that matrix will be applied
|
||||
*/
|
||||
public static void transformEvent(int degrees, MotionEvent ev, boolean inverse) {
|
||||
public static void transformEvent(float degrees, MotionEvent ev, boolean inverse) {
|
||||
Matrix transform = new Matrix();
|
||||
transform.setRotate(degrees);
|
||||
if (inverse) {
|
||||
|
||||
Reference in New Issue
Block a user