Fixing swipe-up form app in landspace, rotates the surface
PreviewPositionHelper was getting the Launcher rotation from context,
instead of RecentsOrientationState
Bug: 156042694
Change-Id: I645eccfcb519c59fe2f78ecb1a77d8a315bc36c9
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java
index a95908d..832f0e2 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java
@@ -19,7 +19,6 @@
import static com.android.launcher3.states.RotationHelper.deltaRotation;
import static com.android.launcher3.touch.PagedOrientationHandler.MATRIX_POST_TRANSLATE;
-import static com.android.quickstep.util.RecentsOrientedState.isFixedRotationTransformEnabled;
import static com.android.quickstep.util.RecentsOrientedState.postDisplayRotation;
import static com.android.systemui.shared.system.WindowManagerWrapper.WINDOWING_MODE_FULLSCREEN;
@@ -67,7 +66,7 @@
// Thumbnail view properties
private final Rect mThumbnailPosition = new Rect();
private final ThumbnailData mThumbnailData = new ThumbnailData();
- private final PreviewPositionHelper mPositionHelper;
+ private final PreviewPositionHelper mPositionHelper = new PreviewPositionHelper();
private final Matrix mInversePositionMatrix = new Matrix();
// TaskView properties
@@ -87,7 +86,6 @@
public TaskViewSimulator(Context context, WindowSizeStrategy sizeStrategy) {
mContext = context;
mSizeStrategy = sizeStrategy;
- mPositionHelper = new PreviewPositionHelper(context);
mOrientationState = new RecentsOrientedState(context, sizeStrategy, i -> { });
// We do not need to attach listeners as the simulator is created just for the gesture
@@ -173,12 +171,12 @@
mLayoutValid = true;
getFullScreenScale();
- mThumbnailData.rotation = isFixedRotationTransformEnabled(mContext)
- ? mOrientationState.getDisplayRotation() : mPositionHelper.getCurrentRotation();
+ mThumbnailData.rotation = mOrientationState.getDisplayRotation();
- mPositionHelper.updateThumbnailMatrix(mThumbnailPosition, mThumbnailData,
- mTaskRect.width(), mTaskRect.height(), mDp);
-
+ mPositionHelper.updateThumbnailMatrix(
+ mThumbnailPosition, mThumbnailData,
+ mTaskRect.width(), mTaskRect.height(),
+ mDp, mOrientationState.getLauncherRotation());
mPositionHelper.getMatrix().invert(mInversePositionMatrix);
PagedOrientationHandler poh = mOrientationState.getOrientationHandler();
@@ -188,7 +186,6 @@
mScrollValid = false;
}
-
if (!mScrollValid) {
mScrollValid = true;
int start = mOrientationState.getOrientationHandler()
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java
index b837a21..a3e360f 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java
@@ -90,7 +90,7 @@
// Contains the portion of the thumbnail that is clipped when fullscreen progress = 0.
private final Rect mPreviewRect = new Rect();
- private final PreviewPositionHelper mPreviewPositionHelper;
+ private final PreviewPositionHelper mPreviewPositionHelper = new PreviewPositionHelper();
// Initialize with dummy value. It is overridden later by TaskView
private TaskView.FullscreenDrawParams mFullscreenParams = TEMP_PARAMS;
@@ -122,7 +122,6 @@
mDimmingPaintAfterClearing.setColor(Color.BLACK);
mActivity = BaseActivity.fromContext(context);
mIsDarkTextTheme = Themes.getAttrBoolean(mActivity, R.attr.isWorkspaceDarkText);
- mPreviewPositionHelper = new PreviewPositionHelper(context);
}
/**
@@ -349,8 +348,11 @@
if (mBitmapShader != null && mThumbnailData != null) {
mPreviewRect.set(0, 0, mThumbnailData.thumbnail.getWidth(),
mThumbnailData.thumbnail.getHeight());
+ int currentRotation = ConfigurationCompat.getWindowConfigurationRotation(
+ mActivity.getResources().getConfiguration());
mPreviewPositionHelper.updateThumbnailMatrix(mPreviewRect, mThumbnailData,
- getMeasuredWidth(), getMeasuredHeight(), mActivity.getDeviceProfile());
+ getMeasuredWidth(), getMeasuredHeight(), mActivity.getDeviceProfile(),
+ currentRotation);
mBitmapShader.setLocalMatrix(mPreviewPositionHelper.mMatrix);
mPaint.setShader(mBitmapShader);
@@ -417,17 +419,6 @@
private float mClipBottom = -1;
private boolean mIsOrientationChanged;
- private final Context mContext;
-
- public PreviewPositionHelper(Context context) {
- mContext = context;
- }
-
- public int getCurrentRotation() {
- return ConfigurationCompat.getWindowConfigurationRotation(
- mContext.getResources().getConfiguration());
- }
-
public Matrix getMatrix() {
return mMatrix;
}
@@ -436,7 +427,7 @@
* Updates the matrix based on the provided parameters
*/
public void updateThumbnailMatrix(Rect thumbnailPosition, ThumbnailData thumbnailData,
- int canvasWidth, int canvasHeight, DeviceProfile dp) {
+ int canvasWidth, int canvasHeight, DeviceProfile dp, int currentRotation) {
boolean isRotated = false;
boolean isOrientationDifferent;
mClipBottom = -1;
@@ -451,7 +442,6 @@
final float thumbnailScale;
int thumbnailRotation = thumbnailData.rotation;
- int currentRotation = getCurrentRotation();
int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation);
Rect deviceInsets = dp.getInsets();