Loading quickstep/src/com/android/quickstep/OrientationTouchTransformer.java +29 −9 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ class OrientationTouchTransformer { }; private static final String TAG = "OrientationTouchTransformer"; private static final boolean DEBUG = false; private static final boolean DEBUG = true; private static final int QUICKSTEP_ROTATION_UNINITIALIZED = -1; Loading Loading @@ -163,6 +163,10 @@ class OrientationTouchTransformer { void setNavigationMode(SysUINavigationMode.Mode newMode, Info info, Resources newRes) { if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "setNavigationMode new: " + newMode + " oldMode: " + mMode + " " + this); } if (mMode == newMode) { return; } Loading Loading @@ -254,10 +258,18 @@ class OrientationTouchTransformer { mCurrentDisplay = new CurrentDisplay(region.realSize, region.rotation); OrientationRectF regionToKeep = mSwipeTouchRegions.get(mCurrentDisplay); if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "cached region: " + regionToKeep + " mCurrentDisplay: " + mCurrentDisplay + " " + this); } if (regionToKeep == null) { regionToKeep = createRegionForDisplay(region); } mSwipeTouchRegions.clear(); if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "adding region: " + regionToKeep + " mCurrentDisplay: " + mCurrentDisplay + " " + this); } mSwipeTouchRegions.put(mCurrentDisplay, regionToKeep); updateAssistantRegions(regionToKeep); } Loading @@ -273,7 +285,8 @@ class OrientationTouchTransformer { private OrientationRectF createRegionForDisplay(Info display) { if (DEBUG) { Log.d(TAG, "creating rotation region for: " + mCurrentDisplay.rotation); Log.d(TAG, "creating rotation region for: " + mCurrentDisplay.rotation + " with mode: " + mMode + " displayRotation: " + display.rotation); } Point size = display.realSize; Loading @@ -287,14 +300,19 @@ class OrientationTouchTransformer { } else { mAssistantLeftRegion.setEmpty(); mAssistantRightRegion.setEmpty(); int navbarSize = getNavbarSize(ResourceUtils.NAVBAR_LANDSCAPE_LEFT_RIGHT_SIZE); if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "else case mode: " + mMode + " getNavbarSize: " + navbarSize + " rotation: " + rotation + " " + this); } switch (rotation) { case Surface.ROTATION_90: orientationRectF.left = orientationRectF.right - getNavbarSize(ResourceUtils.NAVBAR_LANDSCAPE_LEFT_RIGHT_SIZE); - navbarSize; break; case Surface.ROTATION_270: orientationRectF.right = orientationRectF.left + getNavbarSize(ResourceUtils.NAVBAR_LANDSCAPE_LEFT_RIGHT_SIZE); + navbarSize; break; default: orientationRectF.top = orientationRectF.bottom - touchHeight; Loading Loading @@ -339,7 +357,7 @@ class OrientationTouchTransformer { boolean touchInValidSwipeRegions(float x, float y) { if (TestProtocol.sDebugTracing) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "touchInValidSwipeRegions " + x + "," + y + " in " + mLastRectTouched); + mLastRectTouched + " this: " + this); } if (mLastRectTouched != null) { return mLastRectTouched.contains(x, y); Loading Loading @@ -462,7 +480,8 @@ class OrientationTouchTransformer { if (DEBUG) { Log.d(TAG, "Transforming rotation due to forceTransform, " + "mCurrentRotation: " + mCurrentDisplay.rotation + "mRotation: " + mRotation); + "mRotation: " + mRotation + " this: " + this); } event.transform(mTmpMatrix); return true; Loading @@ -475,7 +494,8 @@ class OrientationTouchTransformer { Log.d(TAG, "original: " + event.getX() + ", " + event.getY() + " new: " + mTmpPoint[0] + ", " + mTmpPoint[1] + " rect: " + this + " forceTransform: " + forceTransform + " contains: " + contains(mTmpPoint[0], mTmpPoint[1])); + " contains: " + contains(mTmpPoint[0], mTmpPoint[1]) + " this: " + this); } if (contains(mTmpPoint[0], mTmpPoint[1])) { Loading quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +18 −2 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.view.MotionEvent; import android.view.Surface; Loading @@ -61,6 +62,7 @@ import androidx.annotation.BinderThread; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.DisplayController.DisplayInfoChangeListener; import com.android.launcher3.util.DisplayController.Info; Loading Loading @@ -127,14 +129,27 @@ public class RecentsAnimationDeviceState implements private boolean mIsUserSetupComplete; public RecentsAnimationDeviceState(Context context) { this(context, false); } /** * @param isInstanceForTouches {@code true} if this is the persistent instance being used for * gesture touch handling */ public RecentsAnimationDeviceState(Context context, boolean isInstanceForTouches) { mContext = context; mDisplayController = DisplayController.INSTANCE.get(context); mSysUiNavMode = SysUINavigationMode.INSTANCE.get(context); mDisplayId = mDisplayController.getInfo().id; mIsOneHandedModeSupported = SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false); runOnDestroy(() -> mDisplayController.removeChangeListener(this)); mRotationTouchHelper = new RotationTouchHelper(context, mDisplayController); mRotationTouchHelper = RotationTouchHelper.INSTANCE.get(context); if (isInstanceForTouches) { // rotationTouchHelper doesn't get initialized after being destroyed, so only destroy // if primary TouchInteractionService instance needs to be destroyed. mRotationTouchHelper.init(); runOnDestroy(mRotationTouchHelper::destroy); } // Register for user unlocked if necessary mIsUserUnlocked = context.getSystemService(UserManager.class) Loading Loading @@ -214,6 +229,7 @@ public class RecentsAnimationDeviceState implements * Cleans up all the registered listeners and receivers. */ public void destroy() { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "destroying RADS", new Throwable()); for (Runnable r : mOnDestroyActions) { r.run(); } Loading quickstep/src/com/android/quickstep/RotationTouchHelper.java +45 −11 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.android.quickstep.SysUINavigationMode.Mode.THREE_BUTTONS; import android.content.Context; import android.content.res.Resources; import android.util.Log; import android.view.MotionEvent; import android.view.OrientationEventListener; Loading @@ -31,6 +32,7 @@ import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.util.DisplayController; 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; Loading @@ -43,10 +45,13 @@ public class RotationTouchHelper implements SysUINavigationMode.NavigationModeChangeListener, DisplayInfoChangeListener { private final OrientationTouchTransformer mOrientationTouchTransformer; private final DisplayController mDisplayController; private final SysUINavigationMode mSysUiNavMode; private final int mDisplayId; public static final MainThreadInitializedObject<RotationTouchHelper> INSTANCE = new MainThreadInitializedObject<>(RotationTouchHelper::new); private OrientationTouchTransformer mOrientationTouchTransformer; private DisplayController mDisplayController; private SysUINavigationMode mSysUiNavMode; private int mDisplayId; private int mDisplayRotation; private final ArrayList<Runnable> mOnDestroyActions = new ArrayList<>(); Loading Loading @@ -117,25 +122,46 @@ public class RotationTouchHelper implements */ private boolean mInOverview; private boolean mTaskListFrozen; private final Context mContext; public RotationTouchHelper(Context context, DisplayController displayController) { /** * Keeps track of whether destroy has been called for this instance. Mainly used for TAPL tests * where multiple instances of RotationTouchHelper are being created. b/177316094 */ private boolean mNeedsInit = true; private RotationTouchHelper(Context context) { mContext = context; mDisplayController = displayController; Log.d(TestProtocol.NO_SWIPE_TO_HOME, "RotationTouchHelper ctor init? " + mNeedsInit + " " + this); if (mNeedsInit) { init(); } } public void init() { if (!mNeedsInit) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "Did not need init? " + " " + this); return; } Log.d(TestProtocol.NO_SWIPE_TO_HOME, "RotationTouchHelper init() " + this, new Throwable()); mDisplayController = DisplayController.INSTANCE.get(mContext); Resources resources = mContext.getResources(); mSysUiNavMode = SysUINavigationMode.INSTANCE.get(context); mSysUiNavMode = SysUINavigationMode.INSTANCE.get(mContext); mDisplayId = mDisplayController.getInfo().id; mOrientationTouchTransformer = new OrientationTouchTransformer(resources, mMode, () -> QuickStepContract.getWindowCornerRadius(resources)); // Register for navigation mode changes onNavigationModeChanged(mSysUiNavMode.addModeChangeListener(this)); SysUINavigationMode.Mode newMode = mSysUiNavMode.addModeChangeListener(this); Log.d(TestProtocol.NO_SWIPE_TO_HOME, "AddedModeChangeListener: " + this + " currentMode: " + newMode); onNavigationModeChanged(newMode); runOnDestroy(() -> mSysUiNavMode.removeModeChangeListener(this)); mOrientationListener = new OrientationEventListener(context) { mOrientationListener = new OrientationEventListener(mContext) { @Override public void onOrientationChanged(int degrees) { int newRotation = RecentsOrientedState.getRotationForUserDegreesRotated(degrees, Loading @@ -154,6 +180,7 @@ public class RotationTouchHelper implements } } }; mNeedsInit = false; } private void setupOrientationSwipeHandler() { Loading @@ -176,9 +203,11 @@ public class RotationTouchHelper implements * Cleans up all the registered listeners and receivers. */ public void destroy() { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "destroying " + this); for (Runnable r : mOnDestroyActions) { r.run(); } mNeedsInit = true; } public boolean isTaskListFrozen() { Loading Loading @@ -223,6 +252,7 @@ public class RotationTouchHelper implements @Override public void onNavigationModeChanged(SysUINavigationMode.Mode newMode) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "nav mode changed: " + newMode); mDisplayController.removeChangeListener(this); mDisplayController.addChangeListener(this); onDisplayInfoChanged(mContext, mDisplayController.getInfo(), CHANGE_ALL); Loading Loading @@ -374,4 +404,8 @@ public class RotationTouchHelper implements pw.println(" displayRotation=" + getDisplayRotation()); mOrientationTouchTransformer.dump(pw); } public OrientationTouchTransformer getOrientationTouchTransformer() { return mOrientationTouchTransformer; } } quickstep/src/com/android/quickstep/TouchInteractionService.java +3 −1 Original line number Diff line number Diff line Loading @@ -300,7 +300,9 @@ public class TouchInteractionService extends Service implements PluginListener<O // Everything else should be initialized in onUserUnlocked() below. mMainChoreographer = Choreographer.getInstance(); mAM = ActivityManagerWrapper.getInstance(); mDeviceState = new RecentsAnimationDeviceState(this); mDeviceState = new RecentsAnimationDeviceState(this, true); Log.d(TestProtocol.NO_SWIPE_TO_HOME, "RADS OTT instance: " + mDeviceState.getRotationTouchHelper().getOrientationTouchTransformer()); mRotationTouchHelper = mDeviceState.getRotationTouchHelper(); mDeviceState.addNavigationModeChangedCallback(this::onNavigationModeChanged); mDeviceState.addOneHandedModeChangedCallback(this::onOneHandedModeOverlayChanged); Loading Loading
quickstep/src/com/android/quickstep/OrientationTouchTransformer.java +29 −9 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ class OrientationTouchTransformer { }; private static final String TAG = "OrientationTouchTransformer"; private static final boolean DEBUG = false; private static final boolean DEBUG = true; private static final int QUICKSTEP_ROTATION_UNINITIALIZED = -1; Loading Loading @@ -163,6 +163,10 @@ class OrientationTouchTransformer { void setNavigationMode(SysUINavigationMode.Mode newMode, Info info, Resources newRes) { if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "setNavigationMode new: " + newMode + " oldMode: " + mMode + " " + this); } if (mMode == newMode) { return; } Loading Loading @@ -254,10 +258,18 @@ class OrientationTouchTransformer { mCurrentDisplay = new CurrentDisplay(region.realSize, region.rotation); OrientationRectF regionToKeep = mSwipeTouchRegions.get(mCurrentDisplay); if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "cached region: " + regionToKeep + " mCurrentDisplay: " + mCurrentDisplay + " " + this); } if (regionToKeep == null) { regionToKeep = createRegionForDisplay(region); } mSwipeTouchRegions.clear(); if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "adding region: " + regionToKeep + " mCurrentDisplay: " + mCurrentDisplay + " " + this); } mSwipeTouchRegions.put(mCurrentDisplay, regionToKeep); updateAssistantRegions(regionToKeep); } Loading @@ -273,7 +285,8 @@ class OrientationTouchTransformer { private OrientationRectF createRegionForDisplay(Info display) { if (DEBUG) { Log.d(TAG, "creating rotation region for: " + mCurrentDisplay.rotation); Log.d(TAG, "creating rotation region for: " + mCurrentDisplay.rotation + " with mode: " + mMode + " displayRotation: " + display.rotation); } Point size = display.realSize; Loading @@ -287,14 +300,19 @@ class OrientationTouchTransformer { } else { mAssistantLeftRegion.setEmpty(); mAssistantRightRegion.setEmpty(); int navbarSize = getNavbarSize(ResourceUtils.NAVBAR_LANDSCAPE_LEFT_RIGHT_SIZE); if (DEBUG) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "else case mode: " + mMode + " getNavbarSize: " + navbarSize + " rotation: " + rotation + " " + this); } switch (rotation) { case Surface.ROTATION_90: orientationRectF.left = orientationRectF.right - getNavbarSize(ResourceUtils.NAVBAR_LANDSCAPE_LEFT_RIGHT_SIZE); - navbarSize; break; case Surface.ROTATION_270: orientationRectF.right = orientationRectF.left + getNavbarSize(ResourceUtils.NAVBAR_LANDSCAPE_LEFT_RIGHT_SIZE); + navbarSize; break; default: orientationRectF.top = orientationRectF.bottom - touchHeight; Loading Loading @@ -339,7 +357,7 @@ class OrientationTouchTransformer { boolean touchInValidSwipeRegions(float x, float y) { if (TestProtocol.sDebugTracing) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "touchInValidSwipeRegions " + x + "," + y + " in " + mLastRectTouched); + mLastRectTouched + " this: " + this); } if (mLastRectTouched != null) { return mLastRectTouched.contains(x, y); Loading Loading @@ -462,7 +480,8 @@ class OrientationTouchTransformer { if (DEBUG) { Log.d(TAG, "Transforming rotation due to forceTransform, " + "mCurrentRotation: " + mCurrentDisplay.rotation + "mRotation: " + mRotation); + "mRotation: " + mRotation + " this: " + this); } event.transform(mTmpMatrix); return true; Loading @@ -475,7 +494,8 @@ class OrientationTouchTransformer { Log.d(TAG, "original: " + event.getX() + ", " + event.getY() + " new: " + mTmpPoint[0] + ", " + mTmpPoint[1] + " rect: " + this + " forceTransform: " + forceTransform + " contains: " + contains(mTmpPoint[0], mTmpPoint[1])); + " contains: " + contains(mTmpPoint[0], mTmpPoint[1]) + " this: " + this); } if (contains(mTmpPoint[0], mTmpPoint[1])) { Loading
quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +18 −2 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.view.MotionEvent; import android.view.Surface; Loading @@ -61,6 +62,7 @@ import androidx.annotation.BinderThread; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.DisplayController.DisplayInfoChangeListener; import com.android.launcher3.util.DisplayController.Info; Loading Loading @@ -127,14 +129,27 @@ public class RecentsAnimationDeviceState implements private boolean mIsUserSetupComplete; public RecentsAnimationDeviceState(Context context) { this(context, false); } /** * @param isInstanceForTouches {@code true} if this is the persistent instance being used for * gesture touch handling */ public RecentsAnimationDeviceState(Context context, boolean isInstanceForTouches) { mContext = context; mDisplayController = DisplayController.INSTANCE.get(context); mSysUiNavMode = SysUINavigationMode.INSTANCE.get(context); mDisplayId = mDisplayController.getInfo().id; mIsOneHandedModeSupported = SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false); runOnDestroy(() -> mDisplayController.removeChangeListener(this)); mRotationTouchHelper = new RotationTouchHelper(context, mDisplayController); mRotationTouchHelper = RotationTouchHelper.INSTANCE.get(context); if (isInstanceForTouches) { // rotationTouchHelper doesn't get initialized after being destroyed, so only destroy // if primary TouchInteractionService instance needs to be destroyed. mRotationTouchHelper.init(); runOnDestroy(mRotationTouchHelper::destroy); } // Register for user unlocked if necessary mIsUserUnlocked = context.getSystemService(UserManager.class) Loading Loading @@ -214,6 +229,7 @@ public class RecentsAnimationDeviceState implements * Cleans up all the registered listeners and receivers. */ public void destroy() { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "destroying RADS", new Throwable()); for (Runnable r : mOnDestroyActions) { r.run(); } Loading
quickstep/src/com/android/quickstep/RotationTouchHelper.java +45 −11 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.android.quickstep.SysUINavigationMode.Mode.THREE_BUTTONS; import android.content.Context; import android.content.res.Resources; import android.util.Log; import android.view.MotionEvent; import android.view.OrientationEventListener; Loading @@ -31,6 +32,7 @@ import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.util.DisplayController; 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; Loading @@ -43,10 +45,13 @@ public class RotationTouchHelper implements SysUINavigationMode.NavigationModeChangeListener, DisplayInfoChangeListener { private final OrientationTouchTransformer mOrientationTouchTransformer; private final DisplayController mDisplayController; private final SysUINavigationMode mSysUiNavMode; private final int mDisplayId; public static final MainThreadInitializedObject<RotationTouchHelper> INSTANCE = new MainThreadInitializedObject<>(RotationTouchHelper::new); private OrientationTouchTransformer mOrientationTouchTransformer; private DisplayController mDisplayController; private SysUINavigationMode mSysUiNavMode; private int mDisplayId; private int mDisplayRotation; private final ArrayList<Runnable> mOnDestroyActions = new ArrayList<>(); Loading Loading @@ -117,25 +122,46 @@ public class RotationTouchHelper implements */ private boolean mInOverview; private boolean mTaskListFrozen; private final Context mContext; public RotationTouchHelper(Context context, DisplayController displayController) { /** * Keeps track of whether destroy has been called for this instance. Mainly used for TAPL tests * where multiple instances of RotationTouchHelper are being created. b/177316094 */ private boolean mNeedsInit = true; private RotationTouchHelper(Context context) { mContext = context; mDisplayController = displayController; Log.d(TestProtocol.NO_SWIPE_TO_HOME, "RotationTouchHelper ctor init? " + mNeedsInit + " " + this); if (mNeedsInit) { init(); } } public void init() { if (!mNeedsInit) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "Did not need init? " + " " + this); return; } Log.d(TestProtocol.NO_SWIPE_TO_HOME, "RotationTouchHelper init() " + this, new Throwable()); mDisplayController = DisplayController.INSTANCE.get(mContext); Resources resources = mContext.getResources(); mSysUiNavMode = SysUINavigationMode.INSTANCE.get(context); mSysUiNavMode = SysUINavigationMode.INSTANCE.get(mContext); mDisplayId = mDisplayController.getInfo().id; mOrientationTouchTransformer = new OrientationTouchTransformer(resources, mMode, () -> QuickStepContract.getWindowCornerRadius(resources)); // Register for navigation mode changes onNavigationModeChanged(mSysUiNavMode.addModeChangeListener(this)); SysUINavigationMode.Mode newMode = mSysUiNavMode.addModeChangeListener(this); Log.d(TestProtocol.NO_SWIPE_TO_HOME, "AddedModeChangeListener: " + this + " currentMode: " + newMode); onNavigationModeChanged(newMode); runOnDestroy(() -> mSysUiNavMode.removeModeChangeListener(this)); mOrientationListener = new OrientationEventListener(context) { mOrientationListener = new OrientationEventListener(mContext) { @Override public void onOrientationChanged(int degrees) { int newRotation = RecentsOrientedState.getRotationForUserDegreesRotated(degrees, Loading @@ -154,6 +180,7 @@ public class RotationTouchHelper implements } } }; mNeedsInit = false; } private void setupOrientationSwipeHandler() { Loading @@ -176,9 +203,11 @@ public class RotationTouchHelper implements * Cleans up all the registered listeners and receivers. */ public void destroy() { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "destroying " + this); for (Runnable r : mOnDestroyActions) { r.run(); } mNeedsInit = true; } public boolean isTaskListFrozen() { Loading Loading @@ -223,6 +252,7 @@ public class RotationTouchHelper implements @Override public void onNavigationModeChanged(SysUINavigationMode.Mode newMode) { Log.d(TestProtocol.NO_SWIPE_TO_HOME, "nav mode changed: " + newMode); mDisplayController.removeChangeListener(this); mDisplayController.addChangeListener(this); onDisplayInfoChanged(mContext, mDisplayController.getInfo(), CHANGE_ALL); Loading Loading @@ -374,4 +404,8 @@ public class RotationTouchHelper implements pw.println(" displayRotation=" + getDisplayRotation()); mOrientationTouchTransformer.dump(pw); } public OrientationTouchTransformer getOrientationTouchTransformer() { return mOrientationTouchTransformer; } }
quickstep/src/com/android/quickstep/TouchInteractionService.java +3 −1 Original line number Diff line number Diff line Loading @@ -300,7 +300,9 @@ public class TouchInteractionService extends Service implements PluginListener<O // Everything else should be initialized in onUserUnlocked() below. mMainChoreographer = Choreographer.getInstance(); mAM = ActivityManagerWrapper.getInstance(); mDeviceState = new RecentsAnimationDeviceState(this); mDeviceState = new RecentsAnimationDeviceState(this, true); Log.d(TestProtocol.NO_SWIPE_TO_HOME, "RADS OTT instance: " + mDeviceState.getRotationTouchHelper().getOrientationTouchTransformer()); mRotationTouchHelper = mDeviceState.getRotationTouchHelper(); mDeviceState.addNavigationModeChangedCallback(this::onNavigationModeChanged); mDeviceState.addOneHandedModeChangedCallback(this::onOneHandedModeOverlayChanged); Loading