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
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
index 23e35f6..4a191e1 100644
--- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
+++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java
@@ -138,7 +138,7 @@
         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
diff --git a/quickstep/src/com/android/quickstep/RotationTouchHelper.java b/quickstep/src/com/android/quickstep/RotationTouchHelper.java
index 2cf3212..1155482 100644
--- a/quickstep/src/com/android/quickstep/RotationTouchHelper.java
+++ b/quickstep/src/com/android/quickstep/RotationTouchHelper.java
@@ -28,9 +28,11 @@
 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 @@
         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 @@
 
     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;