mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 11:18:21 +00:00
Merge "Fix some touch issues during gesture nav transition" into sc-dev
This commit is contained in:
@@ -233,6 +233,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
|
||||
// Used to control launcher components throughout the swipe gesture.
|
||||
private AnimatorControllerWithResistance mLauncherTransitionController;
|
||||
private boolean mHasEndedLauncherTransition;
|
||||
|
||||
private AnimationFactory mAnimationFactory = (t) -> { };
|
||||
|
||||
@@ -617,11 +618,11 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
|
||||
/**
|
||||
* We don't want to change mLauncherTransitionController if mGestureState.getEndTarget() == HOME
|
||||
* (it has its own animation).
|
||||
* (it has its own animation) or if we explicitly ended the controller already.
|
||||
* @return Whether we can create the launcher controller or update its progress.
|
||||
*/
|
||||
private boolean canCreateNewOrUpdateExistingLauncherTransitionController() {
|
||||
return mGestureState.getEndTarget() != HOME;
|
||||
return mGestureState.getEndTarget() != HOME && !mHasEndedLauncherTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1455,6 +1456,8 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
}
|
||||
|
||||
private void endLauncherTransitionController() {
|
||||
mHasEndedLauncherTransition = true;
|
||||
|
||||
if (mLauncherTransitionController != null) {
|
||||
// End the animation, but stay at the same visual progress.
|
||||
mLauncherTransitionController.getNormalController().dispatchSetInterpolator(
|
||||
|
||||
@@ -1286,8 +1286,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
}
|
||||
|
||||
private void updateOrientationHandler() {
|
||||
updateOrientationHandler(true);
|
||||
}
|
||||
|
||||
private void updateOrientationHandler(boolean forceRecreateDragLayerControllers) {
|
||||
// Handle orientation changes.
|
||||
PagedOrientationHandler oldOrientationHandler = mOrientationHandler;
|
||||
mOrientationHandler = mOrientationState.getOrientationHandler();
|
||||
|
||||
mIsRtl = mOrientationHandler.getRecentsRtlSetting(getResources());
|
||||
setLayoutDirection(mIsRtl
|
||||
? View.LAYOUT_DIRECTION_RTL
|
||||
@@ -1296,7 +1302,13 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
? View.LAYOUT_DIRECTION_LTR
|
||||
: View.LAYOUT_DIRECTION_RTL);
|
||||
mClearAllButton.setRotation(mOrientationHandler.getDegreesRotated());
|
||||
mActivity.getDragLayer().recreateControllers();
|
||||
|
||||
if (forceRecreateDragLayerControllers
|
||||
|| !mOrientationHandler.equals(oldOrientationHandler)) {
|
||||
// Changed orientations, update controllers so they intercept accordingly.
|
||||
mActivity.getDragLayer().recreateControllers();
|
||||
}
|
||||
|
||||
boolean isInLandscape = mOrientationState.getTouchRotation() != ROTATION_0
|
||||
|| mOrientationState.getRecentsActivityRotation() != ROTATION_0;
|
||||
mActionsView.updateHiddenFlags(HIDDEN_NON_ZERO_ROTATION,
|
||||
@@ -1616,7 +1628,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
setCurrentPage(0);
|
||||
LayoutUtils.setViewEnabled(mActionsView, true);
|
||||
if (mOrientationState.setGestureActive(false)) {
|
||||
updateOrientationHandler();
|
||||
updateOrientationHandler(/* forceRecreateDragLayerControllers = */ false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user