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

Commit 6835115c authored by Vinit Nayak's avatar Vinit Nayak
Browse files

Explicitly set X and Y values when offsetting split tasks

* Race condition where DeviceProfile that gets set on
TaskViewSimulator initially has incorrect values
(dp.isLandscape is incorrect)
* The correct one eventually gets set, but in the meantime
we set the split offset assuming in incorrect value in
PagedOrientationHandler#setLeashSplitOffset()
* Once corrected, we weren't removing the old offset
that was set. Now we ensure only either an X or Y offset set.

Bug: 199376724
Test: Enter split, rotate device and quickswitch.
Both tasks should be visible throughout the gesture

Change-Id: I9fa44642ab440a0200c0b0eb9b37574e47b7100d
parent 2d9741b8
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -89,13 +89,13 @@ public abstract class SwipeUpAnimationLogic implements
                LauncherSplitScreenListener.INSTANCE.getNoCreate()
                        .getRunningSplitTaskIds().length > 1;

        TaskViewSimulator primaryTVS = new TaskViewSimulator(context,
                gestureState.getActivityInterface());
        primaryTVS.getOrientationState().update(
                mDeviceState.getRotationTouchHelper().getCurrentActiveRotation(),
                mDeviceState.getRotationTouchHelper().getDisplayRotation());
        mTargetGluer = new RemoteTargetGluer(mContext, mGestureState.getActivityInterface());
        mRemoteTargetHandles = mTargetGluer.getRemoteTargetHandles();
        runActionOnRemoteHandles(remoteTargetHandle ->
                remoteTargetHandle.getTaskViewSimulator().getOrientationState().update(
                        mDeviceState.getRotationTouchHelper().getCurrentActiveRotation(),
                        mDeviceState.getRotationTouchHelper().getDisplayRotation()
                ));
    }

    protected void initTransitionEndpoints(DeviceProfile dp) {
+2 −0
Original line number Diff line number Diff line
@@ -503,9 +503,11 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
            if (dp.isLandscape) {
                splitOffset.x = splitInfo.leftTopBounds.width() +
                        splitInfo.visualDividerBounds.width();
                splitOffset.y = 0;
            } else {
                splitOffset.y = splitInfo.leftTopBounds.height() +
                        splitInfo.visualDividerBounds.height();
                splitOffset.x = 0;
            }
        }
    }