Loading quickstep/src/com/android/quickstep/util/TaskViewSimulator.java +10 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.quickstep.util; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static com.android.launcher3.Flags.enableGridOnlyOverview; import static com.android.launcher3.states.RotationHelper.deltaRotation; import static com.android.launcher3.touch.PagedOrientationHandler.MATRIX_POST_TRANSLATE; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT; Loading Loading @@ -108,6 +109,7 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { private boolean mIsDesktopTask; private int mTaskRectTranslationX; private int mTaskRectTranslationY; private int mPivotOffsetX; public TaskViewSimulator(Context context, BaseActivityInterface sizeStrategy) { mContext = context; Loading Loading @@ -179,9 +181,10 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { // Ensure the task rect is inside the full task rect mTaskRect.offset(fullTaskSize.left, fullTaskSize.top); } else { fullTaskSize = mTaskRect; fullTaskSize = new Rect(mTaskRect); mTaskRect.offset(mTaskRectTranslationX, mTaskRectTranslationY); } fullTaskSize.offset(mTaskRectTranslationX, mTaskRectTranslationY); fullTaskSize.offset(mTaskRectTranslationX + mPivotOffsetX, mTaskRectTranslationY); return mOrientationState.getFullScreenScaleAndPivot(fullTaskSize, mDp, mPivot); } Loading Loading @@ -265,6 +268,11 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { */ public void addAppToOverviewAnim(PendingAnimation pa, TimeInterpolator interpolator) { pa.addFloat(fullScreenProgress, AnimatedFloat.VALUE, 1, 0, interpolator); if (enableGridOnlyOverview() && mDp.isTablet) { int translationXToMiddle = mDp.widthPx / 2 - mTaskRect.centerX(); taskPrimaryTranslation.value = translationXToMiddle; mPivotOffsetX = translationXToMiddle; } pa.addFloat(recentsViewScale, AnimatedFloat.VALUE, getFullScreenScale(), 1, interpolator); } Loading quickstep/src/com/android/quickstep/views/RecentsView.java +13 −4 Original line number Diff line number Diff line Loading @@ -2101,11 +2101,15 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T } float accumulatedTranslationX = 0; float translateXToMiddle = enableGridOnlyOverview() && mActivity.getDeviceProfile().isTablet ? mActivity.getDeviceProfile().widthPx / 2 - mLastComputedGridTaskSize.centerX() : 0; for (int i = 0; i < taskCount; i++) { TaskView taskView = requireTaskViewAt(i); taskView.updateTaskSize(); taskView.getPrimaryNonGridTranslationProperty().set(taskView, accumulatedTranslationX); taskView.getSecondaryNonGridTranslationProperty().set(taskView, 0f); taskView.setNonGridPivotTranslationX(translateXToMiddle); // Compensate space caused by TaskView scaling. float widthDiff = taskView.getLayoutParams().width * (1 - taskView.getNonGridScale()); Loading Loading @@ -4322,15 +4326,20 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T Utilities.getPivotsForScalingRectToRect(mTempRect, selectedTaskPosition, mTempPointF); setPivotX(mTempPointF.x); setPivotY(mTempPointF.y); } else { mTempRect.set(mLastComputedTaskSize); // Only update pivot when it is tablet and not in grid yet, so the pivot is correct // for non-current tasks when swiping up to overview if (enableGridOnlyOverview() && mActivity.getDeviceProfile().isTablet && !mOverviewGridEnabled) { mTempRect.offset(mActivity.getDeviceProfile().widthPx / 2 - mTempRect.centerX(), 0); } getPagedViewOrientedState().getFullScreenScaleAndPivot(mTempRect, mActivity.getDeviceProfile(), mTempPointF); } setPivotX(mTempPointF.x); setPivotY(mTempPointF.y); } } private void updatePageOffsets() { float offset = mAdjacentPageHorizontalOffset; Loading quickstep/src/com/android/quickstep/views/TaskView.java +13 −3 Original line number Diff line number Diff line Loading @@ -384,6 +384,7 @@ public class TaskView extends FrameLayout implements Reusable { // switch. private float mNonGridTranslationX; private float mNonGridTranslationY; private float mNonGridPivotTranslationX; // Used when in SplitScreenSelectState private float mSplitSelectTranslationY; private float mSplitSelectTranslationX; Loading Loading @@ -1284,8 +1285,8 @@ public class TaskView extends FrameLayout implements Reusable { } protected void resetPersistentViewTransforms() { mNonGridTranslationX = mNonGridTranslationY = mGridTranslationX = mGridTranslationY = mBoxTranslationY = 0f; mNonGridTranslationX = mNonGridTranslationY = mGridTranslationX = mGridTranslationY = mBoxTranslationY = mNonGridPivotTranslationX = 0f; resetViewTransforms(); } Loading Loading @@ -1487,6 +1488,14 @@ public class TaskView extends FrameLayout implements Reusable { applyTranslationX(); } /** * Set translation X for non-grid pivot */ public void setNonGridPivotTranslationX(float nonGridPivotTranslationX) { mNonGridPivotTranslationX = nonGridPivotTranslationX; applyTranslationX(); } public float getScrollAdjustment(boolean gridEnabled) { float scrollAdjustment = 0; if (gridEnabled) { Loading Loading @@ -1529,7 +1538,8 @@ public class TaskView extends FrameLayout implements Reusable { * change according to a temporary state (e.g. task offset). */ public float getPersistentTranslationX() { return getNonGridTrans(mNonGridTranslationX) + getGridTrans(mGridTranslationX); return getNonGridTrans(mNonGridTranslationX) + getGridTrans(mGridTranslationX) + getNonGridTrans(mNonGridPivotTranslationX); } /** Loading Loading
quickstep/src/com/android/quickstep/util/TaskViewSimulator.java +10 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.quickstep.util; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static com.android.launcher3.Flags.enableGridOnlyOverview; import static com.android.launcher3.states.RotationHelper.deltaRotation; import static com.android.launcher3.touch.PagedOrientationHandler.MATRIX_POST_TRANSLATE; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT; Loading Loading @@ -108,6 +109,7 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { private boolean mIsDesktopTask; private int mTaskRectTranslationX; private int mTaskRectTranslationY; private int mPivotOffsetX; public TaskViewSimulator(Context context, BaseActivityInterface sizeStrategy) { mContext = context; Loading Loading @@ -179,9 +181,10 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { // Ensure the task rect is inside the full task rect mTaskRect.offset(fullTaskSize.left, fullTaskSize.top); } else { fullTaskSize = mTaskRect; fullTaskSize = new Rect(mTaskRect); mTaskRect.offset(mTaskRectTranslationX, mTaskRectTranslationY); } fullTaskSize.offset(mTaskRectTranslationX, mTaskRectTranslationY); fullTaskSize.offset(mTaskRectTranslationX + mPivotOffsetX, mTaskRectTranslationY); return mOrientationState.getFullScreenScaleAndPivot(fullTaskSize, mDp, mPivot); } Loading Loading @@ -265,6 +268,11 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { */ public void addAppToOverviewAnim(PendingAnimation pa, TimeInterpolator interpolator) { pa.addFloat(fullScreenProgress, AnimatedFloat.VALUE, 1, 0, interpolator); if (enableGridOnlyOverview() && mDp.isTablet) { int translationXToMiddle = mDp.widthPx / 2 - mTaskRect.centerX(); taskPrimaryTranslation.value = translationXToMiddle; mPivotOffsetX = translationXToMiddle; } pa.addFloat(recentsViewScale, AnimatedFloat.VALUE, getFullScreenScale(), 1, interpolator); } Loading
quickstep/src/com/android/quickstep/views/RecentsView.java +13 −4 Original line number Diff line number Diff line Loading @@ -2101,11 +2101,15 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T } float accumulatedTranslationX = 0; float translateXToMiddle = enableGridOnlyOverview() && mActivity.getDeviceProfile().isTablet ? mActivity.getDeviceProfile().widthPx / 2 - mLastComputedGridTaskSize.centerX() : 0; for (int i = 0; i < taskCount; i++) { TaskView taskView = requireTaskViewAt(i); taskView.updateTaskSize(); taskView.getPrimaryNonGridTranslationProperty().set(taskView, accumulatedTranslationX); taskView.getSecondaryNonGridTranslationProperty().set(taskView, 0f); taskView.setNonGridPivotTranslationX(translateXToMiddle); // Compensate space caused by TaskView scaling. float widthDiff = taskView.getLayoutParams().width * (1 - taskView.getNonGridScale()); Loading Loading @@ -4322,15 +4326,20 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T Utilities.getPivotsForScalingRectToRect(mTempRect, selectedTaskPosition, mTempPointF); setPivotX(mTempPointF.x); setPivotY(mTempPointF.y); } else { mTempRect.set(mLastComputedTaskSize); // Only update pivot when it is tablet and not in grid yet, so the pivot is correct // for non-current tasks when swiping up to overview if (enableGridOnlyOverview() && mActivity.getDeviceProfile().isTablet && !mOverviewGridEnabled) { mTempRect.offset(mActivity.getDeviceProfile().widthPx / 2 - mTempRect.centerX(), 0); } getPagedViewOrientedState().getFullScreenScaleAndPivot(mTempRect, mActivity.getDeviceProfile(), mTempPointF); } setPivotX(mTempPointF.x); setPivotY(mTempPointF.y); } } private void updatePageOffsets() { float offset = mAdjacentPageHorizontalOffset; Loading
quickstep/src/com/android/quickstep/views/TaskView.java +13 −3 Original line number Diff line number Diff line Loading @@ -384,6 +384,7 @@ public class TaskView extends FrameLayout implements Reusable { // switch. private float mNonGridTranslationX; private float mNonGridTranslationY; private float mNonGridPivotTranslationX; // Used when in SplitScreenSelectState private float mSplitSelectTranslationY; private float mSplitSelectTranslationX; Loading Loading @@ -1284,8 +1285,8 @@ public class TaskView extends FrameLayout implements Reusable { } protected void resetPersistentViewTransforms() { mNonGridTranslationX = mNonGridTranslationY = mGridTranslationX = mGridTranslationY = mBoxTranslationY = 0f; mNonGridTranslationX = mNonGridTranslationY = mGridTranslationX = mGridTranslationY = mBoxTranslationY = mNonGridPivotTranslationX = 0f; resetViewTransforms(); } Loading Loading @@ -1487,6 +1488,14 @@ public class TaskView extends FrameLayout implements Reusable { applyTranslationX(); } /** * Set translation X for non-grid pivot */ public void setNonGridPivotTranslationX(float nonGridPivotTranslationX) { mNonGridPivotTranslationX = nonGridPivotTranslationX; applyTranslationX(); } public float getScrollAdjustment(boolean gridEnabled) { float scrollAdjustment = 0; if (gridEnabled) { Loading Loading @@ -1529,7 +1538,8 @@ public class TaskView extends FrameLayout implements Reusable { * change according to a temporary state (e.g. task offset). */ public float getPersistentTranslationX() { return getNonGridTrans(mNonGridTranslationX) + getGridTrans(mGridTranslationX); return getNonGridTrans(mNonGridTranslationX) + getGridTrans(mGridTranslationX) + getNonGridTrans(mNonGridPivotTranslationX); } /** Loading