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

Commit 52f23924 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Fixing recents orientation (when home rotation is allowed) during swipe-up

Bug: 158781568
Bug: 160149607
Change-Id: I27be09febcdb6f19687469db34b002ce682aa0cb
Merged-In: I27be09febcdb6f19687469db34b002ce682aa0cb
(cherry picked from commit 141c231d)
parent 8f490e21
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
        mSizeStrategy = sizeStrategy;

        mOrientationState = new RecentsOrientedState(context, sizeStrategy, i -> { });
        mOrientationState.setGestureActive(true);

        mCurrentFullscreenParams = new FullscreenDrawParams(context);
        mPageSpacing = context.getResources().getDimensionPixelSize(R.dimen.recents_page_spacing);
+10 −3
Original line number Diff line number Diff line
@@ -1003,7 +1003,9 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
        mDwbToastShown = false;
        mActivity.getSystemUiController().updateUiState(UI_STATE_OVERVIEW, 0);
        LayoutUtils.setViewEnabled(mActionsView, true);
        mOrientationState.setGestureActive(false);
        if (mOrientationState.setGestureActive(false)) {
            updateOrientationHandler();
        }
    }

    public @Nullable TaskView getRunningTaskView() {
@@ -1041,7 +1043,10 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
     */
    public void onGestureAnimationStart(int runningTaskId) {
        // This needs to be called before the other states are set since it can create the task view
        mOrientationState.setGestureActive(true);
        if (mOrientationState.setGestureActive(true)) {
            updateOrientationHandler();
        }

        showCurrentTask(runningTaskId);
        setEnableFreeScroll(false);
        setEnableDrawingLiveTile(false);
@@ -1104,7 +1109,9 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
     * Called when a gesture from an app has finished.
     */
    public void onGestureAnimationEnd() {
        mOrientationState.setGestureActive(false);
        if (mOrientationState.setGestureActive(false)) {
            updateOrientationHandler();
        }

        setOnScrollChangeListener(null);
        setEnableFreeScroll(true);
+8 −15
Original line number Diff line number Diff line
@@ -188,8 +188,9 @@ public final class RecentsOrientedState implements SharedPreferences.OnSharedPre
    /**
     * Sets if the swipe up gesture is currently running or not
     */
    public void setGestureActive(boolean isGestureActive) {
    public boolean setGestureActive(boolean isGestureActive) {
        setFlag(FLAG_SWIPE_UP_NOT_RUNNING, !isGestureActive);
        return update(mTouchRotation, mDisplayRotation);
    }

    /**
@@ -202,27 +203,19 @@ public final class RecentsOrientedState implements SharedPreferences.OnSharedPre
     */
    public boolean update(
            @SurfaceRotation int touchRotation, @SurfaceRotation int displayRotation) {
        int recentsActivityRotation = inferRecentsActivityRotation(displayRotation);
        if (mDisplayRotation == displayRotation
                && mTouchRotation == touchRotation
                && mRecentsActivityRotation == recentsActivityRotation) {
            return false;
        }

        mRecentsActivityRotation = recentsActivityRotation;
        mRecentsActivityRotation = inferRecentsActivityRotation(displayRotation);
        mDisplayRotation = displayRotation;
        mTouchRotation = touchRotation;
        mPreviousRotation = touchRotation;

        if (mRecentsActivityRotation == mTouchRotation || canRecentsActivityRotate()) {
        PagedOrientationHandler oldHandler = mOrientationHandler;
        if (mRecentsActivityRotation == mTouchRotation
                || (canRecentsActivityRotate() && (mFlags & FLAG_SWIPE_UP_NOT_RUNNING) != 0)) {
            mOrientationHandler = PagedOrientationHandler.PORTRAIT;
            if (DEBUG) {
                Log.d(TAG, "current RecentsOrientedState: " + this);
            }
            return true;
        }

        if (mTouchRotation == ROTATION_90) {
        } else if (mTouchRotation == ROTATION_90) {
            mOrientationHandler = PagedOrientationHandler.LANDSCAPE;
        } else if (mTouchRotation == ROTATION_270) {
            mOrientationHandler = PagedOrientationHandler.SEASCAPE;
@@ -232,7 +225,7 @@ public final class RecentsOrientedState implements SharedPreferences.OnSharedPre
        if (DEBUG) {
            Log.d(TAG, "current RecentsOrientedState: " + this);
        }
        return true;
        return oldHandler != mOrientationHandler;
    }

    @SurfaceRotation