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

Commit d8ad6b25 authored by Vinit Nayak's avatar Vinit Nayak
Browse files

Make RotationTouchHelper singleton to report single rotation state

Multiple instances of RotationTouchHelper were being
created and reporting conflicting and incorrect information
to sysui for current quickswitch state.

Bug: 183897242
Test: Ensure quickswitch gestures work as expected.
Change-Id: Ia8716f2b597033e9e81291e0b4490119c30ad972
parent 5ecf5717
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ public class RecentsAnimationDeviceState implements
        mDisplayId = mDisplayHolder.getInfo().id;
        mIsOneHandedModeSupported = SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false);
        runOnDestroy(() -> mDisplayHolder.removeChangeListener(this));
        mRotationTouchHelper = new RotationTouchHelper(context, mDisplayHolder);
        mRotationTouchHelper = RotationTouchHelper.INSTANCE.get(context);
        runOnDestroy(mRotationTouchHelper::destroy);

        // Register for user unlocked if necessary
+7 −2
Original line number Diff line number Diff line
@@ -28,9 +28,11 @@ import android.view.MotionEvent;
import android.view.OrientationEventListener;

import com.android.launcher3.testing.TestProtocol;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.DisplayController.DisplayHolder;
import com.android.launcher3.util.DisplayController.DisplayInfoChangeListener;
import com.android.launcher3.util.DisplayController.Info;
import com.android.launcher3.util.MainThreadInitializedObject;
import com.android.quickstep.util.RecentsOrientedState;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.QuickStepContract;
@@ -43,6 +45,9 @@ public class RotationTouchHelper implements
        SysUINavigationMode.NavigationModeChangeListener,
        DisplayInfoChangeListener {

    public static final MainThreadInitializedObject<RotationTouchHelper> INSTANCE =
            new MainThreadInitializedObject<>(RotationTouchHelper::new);

    private final OrientationTouchTransformer mOrientationTouchTransformer;
    private final DisplayHolder mDisplayHolder;
    private final SysUINavigationMode mSysUiNavMode;
@@ -121,9 +126,9 @@ public class RotationTouchHelper implements

    private final Context mContext;

    public RotationTouchHelper(Context context, DisplayHolder displayHolder) {
    private RotationTouchHelper(Context context) {
        mContext = context;
        mDisplayHolder = displayHolder;
        mDisplayHolder = DisplayController.getDefaultDisplay(context);
        Resources resources = mContext.getResources();
        mSysUiNavMode = SysUINavigationMode.INSTANCE.get(context);
        mDisplayId = mDisplayHolder.getInfo().id;