From bb55f9e982c70caaf0468c4df22cebeba936b56c Mon Sep 17 00:00:00 2001 From: Vinit Nayak Date: Sun, 3 May 2020 21:39:06 -0700 Subject: [PATCH] Use rotation based on PagedOrientationHandler instead of touch Fixes: 154928106 Test: Tested overview w/ and w/o home rotation enabled. Change-Id: Ib7e91e51b2181824e5520ad69965ed3379302c27 --- .../src/com/android/quickstep/views/TaskMenuView.java | 3 ++- .../src/com/android/quickstep/views/TaskView.java | 6 ++---- .../android/launcher3/touch/HomeRotatedPageHandler.java | 6 ++++++ .../android/launcher3/touch/LandscapePagedViewHandler.java | 7 ++++++- .../android/launcher3/touch/PagedOrientationHandler.java | 3 ++- .../android/launcher3/touch/PortraitPagedViewHandler.java | 7 ++++++- .../android/launcher3/touch/SeascapePagedViewHandler.java | 5 +++++ 7 files changed, 29 insertions(+), 8 deletions(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskMenuView.java index 9b475205dd..512bbac6bb 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskMenuView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskMenuView.java @@ -239,7 +239,8 @@ public class TaskMenuView extends AbstractFloatingView { setLayoutParams(params); setScaleX(taskView.getScaleX()); setScaleY(taskView.getScaleY()); - mOptionLayout.setOrientation(orientationHandler.getTaskMenuLayoutOrientation()); + mOptionLayout.setOrientation(orientationHandler + .getTaskMenuLayoutOrientation(mOptionLayout)); setPosition(sTempRect.left - insets.left, sTempRect.top - insets.top, taskView.getPagedOrientationHandler()); } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java index f8f927b9d4..617a840b54 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java @@ -448,14 +448,12 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { } public void setOrientationState(RecentsOrientedState orientationState) { - int iconRotation = orientationState.getTouchRotation(); PagedOrientationHandler orientationHandler = orientationState.getOrientationHandler(); boolean isRtl = orientationHandler.getRecentsRtlSetting(getResources()); LayoutParams snapshotParams = (LayoutParams) mSnapshotView.getLayoutParams(); int thumbnailPadding = (int) getResources().getDimension(R.dimen.task_thumbnail_top_margin); LayoutParams iconParams = (LayoutParams) mIconView.getLayoutParams(); - int rotation = orientationState.getTouchRotationDegrees(); - switch (iconRotation) { + switch (orientationHandler.getRotation()) { case Surface.ROTATION_90: iconParams.gravity = (isRtl ? END : START) | CENTER_VERTICAL; iconParams.rightMargin = -thumbnailPadding; @@ -480,7 +478,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { break; } mIconView.setLayoutParams(iconParams); - mIconView.setRotation(rotation); + mIconView.setRotation(orientationHandler.getDegreesRotated()); if (mMenuView != null) { mMenuView.onRotationChanged(); diff --git a/src/com/android/launcher3/touch/HomeRotatedPageHandler.java b/src/com/android/launcher3/touch/HomeRotatedPageHandler.java index 710b676880..db5c659e04 100644 --- a/src/com/android/launcher3/touch/HomeRotatedPageHandler.java +++ b/src/com/android/launcher3/touch/HomeRotatedPageHandler.java @@ -18,6 +18,7 @@ package com.android.launcher3.touch; import android.graphics.RectF; import android.view.Surface; +import android.widget.LinearLayout; public class HomeRotatedPageHandler extends PortraitPagedViewHandler { @Override @@ -46,4 +47,9 @@ public class HomeRotatedPageHandler extends PortraitPagedViewHandler { } } // TODO (b/149609488) handle 180 case as well } + + @Override + public int getTaskMenuLayoutOrientation(LinearLayout taskMenuLayout) { + return taskMenuLayout.getOrientation(); + } } diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java index 86d3c615e8..5007ca0ae9 100644 --- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java @@ -176,6 +176,11 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler { return 90; } + @Override + public int getRotation() { + return Surface.ROTATION_90; + } + @Override public void offsetTaskRect(RectF rect, float value, int displayRotation, int launcherRotation) { if (displayRotation == Surface.ROTATION_0) { @@ -246,7 +251,7 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler { } @Override - public int getTaskMenuLayoutOrientation() { + public int getTaskMenuLayoutOrientation(LinearLayout taskMenuLayout) { return LinearLayout.HORIZONTAL; } diff --git a/src/com/android/launcher3/touch/PagedOrientationHandler.java b/src/com/android/launcher3/touch/PagedOrientationHandler.java index 02a020f61a..cdfe6d5a12 100644 --- a/src/com/android/launcher3/touch/PagedOrientationHandler.java +++ b/src/com/android/launcher3/touch/PagedOrientationHandler.java @@ -81,6 +81,7 @@ public interface PagedOrientationHandler { void setMaxScroll(AccessibilityEvent event, int maxScroll); boolean getRecentsRtlSetting(Resources resources); float getDegreesRotated(); + int getRotation(); void offsetTaskRect(RectF rect, float value, int delta, int launcherRotation); int getPrimaryValue(int x, int y); int getSecondaryValue(int x, int y); @@ -95,7 +96,7 @@ public interface PagedOrientationHandler { float getTaskMenuX(float x, View thumbnailView); float getTaskMenuY(float y, View thumbnailView); int getTaskMenuWidth(View view); - int getTaskMenuLayoutOrientation(); + int getTaskMenuLayoutOrientation(LinearLayout taskMenuLayout); void setLayoutParamsForTaskMenuOptionItem(LinearLayout.LayoutParams lp); /** diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java index b253e7d764..25dc1f6ca0 100644 --- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java +++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java @@ -173,6 +173,11 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { return 0; } + @Override + public int getRotation() { + return Surface.ROTATION_0; + } + @Override public void offsetTaskRect(RectF rect, float value, int displayRotation, int launcherRotation) { if (displayRotation == Surface.ROTATION_0) { @@ -243,7 +248,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { } @Override - public int getTaskMenuLayoutOrientation() { + public int getTaskMenuLayoutOrientation(LinearLayout taskMenuLayout) { return LinearLayout.VERTICAL; } diff --git a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java index e86ec3b6af..dde2829859 100644 --- a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java @@ -54,6 +54,11 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler { return 270; } + @Override + public int getRotation() { + return Surface.ROTATION_270; + } + @Override public boolean isGoingUp(float displacement) { return displacement < 0;