Merge "Update secondary grid translation" into main

This commit is contained in:
Sergey Pinkevich
2023-12-12 13:06:40 +00:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 57 deletions
@@ -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(
@@ -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.