Merge "Update secondary grid translation" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
2adff1b7c0
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user