summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Pinkevich <spinkevich@google.com>2023-12-12 13:06:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-12-12 13:06:40 +0000
commit2adff1b7c01615d0bded76c02ebdb99f6e95237e (patch)
tree40a054a1f3b91fd9b45748461558ca33a528fcec
parent6263ac3894f7562788c49066ce0474a9bb1c5f29 (diff)
parent83462a488bdf7a8456ef8123346a08faf06c3bf6 (diff)
downloadLauncher3-2adff1b7c01615d0bded76c02ebdb99f6e95237e.tar.gz
Merge "Update secondary grid translation" into main
-rw-r--r--quickstep/src/com/android/quickstep/views/RecentsView.java23
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskView.java63
2 files changed, 29 insertions, 57 deletions
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 7e1034b16a..87cee63f9e 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -2124,8 +2124,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
for (int i = 0; i < taskCount; i++) {
TaskView taskView = requireTaskViewAt(i);
taskView.updateTaskSize();
- taskView.getPrimaryNonGridTranslationProperty().set(taskView, accumulatedTranslationX);
- taskView.getSecondaryNonGridTranslationProperty().set(taskView, 0f);
+ taskView.setNonGridTranslationX(accumulatedTranslationX);
taskView.setNonGridPivotTranslationX(translateXToMiddle);
// Compensate space caused by TaskView scaling.
float widthDiff =
@@ -2642,23 +2641,25 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
if (endState.displayOverviewTasksAsGrid(mActivity.getDeviceProfile())) {
TaskView runningTaskView = getRunningTaskView();
float runningTaskPrimaryGridTranslation = 0;
+ float runningTaskSecondaryGridTranslation = 0;
if (runningTaskView != null) {
// Apply the grid translation to running task unless it's being snapped to
// and removes the current translation applied to the running task.
- runningTaskPrimaryGridTranslation = mOrientationHandler.getPrimaryValue(
- runningTaskView.getGridTranslationX(),
- runningTaskView.getGridTranslationY())
- - runningTaskView.getPrimaryNonGridTranslationProperty().get(
- runningTaskView);
+ runningTaskPrimaryGridTranslation = runningTaskView.getGridTranslationX()
+ - runningTaskView.getNonGridTranslationX();
+ runningTaskSecondaryGridTranslation = runningTaskView.getGridTranslationY();
}
for (TaskViewSimulator tvs : taskViewSimulators) {
if (animatorSet == null) {
setGridProgress(1);
tvs.taskPrimaryTranslation.value = runningTaskPrimaryGridTranslation;
+ tvs.taskSecondaryTranslation.value = runningTaskSecondaryGridTranslation;
} else {
animatorSet.play(ObjectAnimator.ofFloat(this, RECENTS_GRID_PROGRESS, 1));
animatorSet.play(tvs.taskPrimaryTranslation.animateToValue(
runningTaskPrimaryGridTranslation));
+ animatorSet.play(tvs.taskSecondaryTranslation.animateToValue(
+ runningTaskSecondaryGridTranslation));
}
}
}
@@ -3123,6 +3124,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
+ snappedTaskNonGridScrollAdjustment);
}
+ final TaskView runningTask = getRunningTaskView();
+ if (showAsGrid() && enableGridOnlyOverview() && runningTask != null) {
+ runActionOnRemoteHandles(
+ remoteTargetHandle -> remoteTargetHandle.getTaskViewSimulator()
+ .taskSecondaryTranslation.value = runningTask.getGridTranslationY()
+ );
+ }
+
mClearAllButton.setGridTranslationPrimary(
clearAllTotalTranslationX - snappedTaskGridTranslationX);
mClearAllButton.setGridScrollOffset(
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index af4f402f07..b42f0552cd 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -119,6 +119,8 @@ import com.android.systemui.shared.recents.model.ThumbnailData;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.QuickStepContract;
+import kotlin.Unit;
+
import java.lang.annotation.Retention;
import java.util.Arrays;
import java.util.Collections;
@@ -127,8 +129,6 @@ import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Stream;
-import kotlin.Unit;
-
/**
* A task in the Recents view.
*/
@@ -304,32 +304,6 @@ public class TaskView extends FrameLayout implements Reusable {
}
};
- private static final FloatProperty<TaskView> NON_GRID_TRANSLATION_X =
- new FloatProperty<TaskView>("nonGridTranslationX") {
- @Override
- public void setValue(TaskView taskView, float v) {
- taskView.setNonGridTranslationX(v);
- }
-
- @Override
- public Float get(TaskView taskView) {
- return taskView.mNonGridTranslationX;
- }
- };
-
- private static final FloatProperty<TaskView> NON_GRID_TRANSLATION_Y =
- new FloatProperty<TaskView>("nonGridTranslationY") {
- @Override
- public void setValue(TaskView taskView, float v) {
- taskView.setNonGridTranslationY(v);
- }
-
- @Override
- public Float get(TaskView taskView) {
- return taskView.mNonGridTranslationY;
- }
- };
-
public static final FloatProperty<TaskView> GRID_END_TRANSLATION_X =
new FloatProperty<TaskView>("gridEndTranslationX") {
@Override
@@ -386,7 +360,6 @@ public class TaskView extends FrameLayout implements Reusable {
// Applied as a complement to gridTranslation, for adjusting the carousel overview and quick
// switch.
private float mNonGridTranslationX;
- private float mNonGridTranslationY;
private float mNonGridPivotTranslationX;
// Used when in SplitScreenSelectState
private float mSplitSelectTranslationY;
@@ -1323,7 +1296,7 @@ public class TaskView extends FrameLayout implements Reusable {
}
protected void resetPersistentViewTransforms() {
- mNonGridTranslationX = mNonGridTranslationY = mGridTranslationX =
+ mNonGridTranslationX = mGridTranslationX =
mGridTranslationY = mBoxTranslationY = mNonGridPivotTranslationX = 0f;
resetViewTransforms();
}
@@ -1494,14 +1467,16 @@ public class TaskView extends FrameLayout implements Reusable {
applyTranslationY();
}
- private void setNonGridTranslationX(float nonGridTranslationX) {
- mNonGridTranslationX = nonGridTranslationX;
- applyTranslationX();
+ public float getNonGridTranslationX() {
+ return mNonGridTranslationX;
}
- private void setNonGridTranslationY(float nonGridTranslationY) {
- mNonGridTranslationY = nonGridTranslationY;
- applyTranslationY();
+ /**
+ * Updates X coordinate of non-grid translation.
+ */
+ public void setNonGridTranslationX(float nonGridTranslationX) {
+ mNonGridTranslationX = nonGridTranslationX;
+ applyTranslationX();
}
public void setGridTranslationX(float gridTranslationX) {
@@ -1540,7 +1515,7 @@ public class TaskView extends FrameLayout implements Reusable {
if (gridEnabled) {
scrollAdjustment += mGridTranslationX;
} else {
- scrollAdjustment += getPrimaryNonGridTranslationProperty().get(this);
+ scrollAdjustment += getNonGridTranslationX();
}
return scrollAdjustment;
}
@@ -1586,9 +1561,7 @@ public class TaskView extends FrameLayout implements Reusable {
* change according to a temporary state (e.g. task offset).
*/
public float getPersistentTranslationY() {
- return mBoxTranslationY
- + getNonGridTrans(mNonGridTranslationY)
- + getGridTrans(mGridTranslationY);
+ return mBoxTranslationY + getGridTrans(mGridTranslationY);
}
public FloatProperty<TaskView> getPrimarySplitTranslationProperty() {
@@ -1626,16 +1599,6 @@ public class TaskView extends FrameLayout implements Reusable {
TASK_RESISTANCE_TRANSLATION_X, TASK_RESISTANCE_TRANSLATION_Y);
}
- public FloatProperty<TaskView> getPrimaryNonGridTranslationProperty() {
- return getPagedOrientationHandler().getPrimaryValue(
- NON_GRID_TRANSLATION_X, NON_GRID_TRANSLATION_Y);
- }
-
- public FloatProperty<TaskView> getSecondaryNonGridTranslationProperty() {
- return getPagedOrientationHandler().getSecondaryValue(
- NON_GRID_TRANSLATION_X, NON_GRID_TRANSLATION_Y);
- }
-
@Override
public boolean hasOverlappingRendering() {
// TODO: Clip-out the icon region from the thumbnail, since they are overlapping.