Merge "Separate getTaskViewAt usage" into sc-v2-dev
This commit is contained in:
commit
d6a28fe202
|
@ -107,6 +107,7 @@ import android.widget.ListView;
|
|||
import android.widget.OverScroller;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.UiThread;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
|
@ -181,6 +182,7 @@ import com.android.wm.shell.pip.IPipAnimationListener;
|
|||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
|
@ -822,7 +824,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
@Override
|
||||
public void onTaskIconChanged(String pkg, UserHandle user) {
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView tv = getTaskViewAt(i);
|
||||
TaskView tv = requireTaskViewAt(i);
|
||||
Task task = tv.getTask();
|
||||
if (task != null && task.key != null && pkg.equals(task.key.getPackageName())
|
||||
&& task.key.userId == user.getIdentifier()) {
|
||||
|
@ -1104,7 +1106,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
}
|
||||
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
int[] taskIds = taskView.getTaskIds();
|
||||
if (taskIds[0] == taskId || taskIds[1] == taskId) {
|
||||
return taskView;
|
||||
|
@ -1181,7 +1183,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
if (showAsGrid()) {
|
||||
int taskCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
if (isTaskViewVisible(taskView) && taskView.offerTouchToChildren(ev)) {
|
||||
// Keep consuming events to pass to delegate
|
||||
return true;
|
||||
|
@ -1418,7 +1420,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
if (runningTaskId != -1) {
|
||||
targetPage = indexOfChild(newRunningTaskView);
|
||||
} else if (getTaskViewCount() > 0) {
|
||||
targetPage = indexOfChild(getTaskViewAt(0));
|
||||
targetPage = indexOfChild(requireTaskViewAt(0));
|
||||
}
|
||||
} else if (currentTaskId != -1) {
|
||||
currentTaskView = getTaskViewByTaskId(currentTaskId);
|
||||
|
@ -1452,7 +1454,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
private void removeTasksViewsAndClearAllButton() {
|
||||
for (int i = getTaskViewCount() - 1; i >= 0; i--) {
|
||||
removeView(getTaskViewAt(i));
|
||||
removeView(requireTaskViewAt(i));
|
||||
}
|
||||
if (indexOfChild(mClearAllButton) != -1) {
|
||||
removeView(mClearAllButton);
|
||||
|
@ -1498,7 +1500,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
public void resetTaskVisuals() {
|
||||
for (int i = getTaskViewCount() - 1; i >= 0; i--) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
if (mIgnoreResetTaskId != taskView.getTaskIds()[0]) {
|
||||
taskView.resetViewTransforms();
|
||||
taskView.setIconScaleAndDim(mTaskIconScaledDown ? 0 : 1);
|
||||
|
@ -1539,7 +1541,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mFullscreenProgress = fullscreenProgress;
|
||||
int taskCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
getTaskViewAt(i).setFullscreenProgress(mFullscreenProgress);
|
||||
requireTaskViewAt(i).setFullscreenProgress(mFullscreenProgress);
|
||||
}
|
||||
mClearAllButton.setFullscreenProgress(fullscreenProgress);
|
||||
|
||||
|
@ -1666,7 +1668,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
float accumulatedTranslationX = 0;
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
taskView.updateTaskSize();
|
||||
taskView.getPrimaryNonGridTranslationProperty().set(taskView, accumulatedTranslationX);
|
||||
taskView.getSecondaryNonGridTranslationProperty().set(taskView, 0f);
|
||||
|
@ -1812,7 +1814,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
// Update the task data for the in/visible children
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
Task task = taskView.getTask();
|
||||
int index = indexOfChild(taskView);
|
||||
boolean visible;
|
||||
|
@ -1955,7 +1957,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
}
|
||||
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
if (taskView.getTaskViewId() == taskViewId) {
|
||||
return taskView;
|
||||
}
|
||||
|
@ -2053,7 +2055,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
int runningIndex = getCurrentPage();
|
||||
AnimatorSet as = new AnimatorSet();
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
View taskView = getTaskViewAt(i);
|
||||
View taskView = requireTaskViewAt(i);
|
||||
if (runningIndex == i && taskView.getAlpha() != 0) {
|
||||
continue;
|
||||
}
|
||||
|
@ -2064,7 +2066,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
private void updateChildTaskOrientations() {
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
getTaskViewAt(i).setOrientationState(mOrientationState);
|
||||
requireTaskViewAt(i).setOrientationState(mOrientationState);
|
||||
}
|
||||
TaskMenuView tv = (TaskMenuView) getTopOpenViewWithType(mActivity, TYPE_TASK_MENU);
|
||||
if (tv != null) {
|
||||
|
@ -2269,7 +2271,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mTaskIconScaledDown = isScaledDown;
|
||||
int taskCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
getTaskViewAt(i).setIconScaleAndDim(mTaskIconScaledDown ? 0 : 1);
|
||||
requireTaskViewAt(i).setIconScaleAndDim(mTaskIconScaledDown ? 0 : 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2285,7 +2287,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mTaskIconScaledDown = false;
|
||||
int taskCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
taskView.setIconScaleAnimStartProgress(0f);
|
||||
taskView.animateIconScaleAndDimIntoView();
|
||||
}
|
||||
|
@ -2357,7 +2359,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mTopRowIdSet.clear();
|
||||
}
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
int taskWidthAndSpacing = taskView.getLayoutParams().width + mPageSpacing;
|
||||
// Evenly distribute tasks between rows unless rearranging due to task dismissal, in
|
||||
// which case keep tasks in their respective rows. For the running task, don't join
|
||||
|
@ -2422,7 +2424,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
if (j == focusedTaskIndex) {
|
||||
continue;
|
||||
}
|
||||
widthOffset += getTaskViewAt(j).getLayoutParams().width + mPageSpacing;
|
||||
widthOffset += requireTaskViewAt(j).getLayoutParams().width + mPageSpacing;
|
||||
}
|
||||
|
||||
float currentTaskTranslationX = mIsRtl ? widthOffset : -widthOffset;
|
||||
|
@ -2441,7 +2443,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
if (j == focusedTaskIndex) {
|
||||
continue;
|
||||
}
|
||||
widthOffset += getTaskViewAt(j).getLayoutParams().width + mPageSpacing;
|
||||
widthOffset += requireTaskViewAt(j).getLayoutParams().width + mPageSpacing;
|
||||
}
|
||||
|
||||
float currentTaskTranslationX = mIsRtl ? widthOffset : -widthOffset;
|
||||
|
@ -2519,7 +2521,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
}
|
||||
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
taskView.setGridTranslationX(gridTranslations[i] - snappedTaskGridTranslationX
|
||||
+ snappedTaskNonGridScrollAdjustment);
|
||||
}
|
||||
|
@ -2560,7 +2562,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mGridProgress = gridProgress;
|
||||
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
getTaskViewAt(i).setGridProgress(gridProgress);
|
||||
requireTaskViewAt(i).setGridProgress(gridProgress);
|
||||
}
|
||||
mClearAllButton.setGridProgress(gridProgress);
|
||||
}
|
||||
|
@ -2723,7 +2725,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mTopRowIdSet.size() > 0 && mTopRowIdSet.size() >= (taskCount - 1) / 2f;
|
||||
// Pick the next focused task from the preferred row.
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
if (taskView == dismissedTaskView) {
|
||||
continue;
|
||||
}
|
||||
|
@ -2826,7 +2828,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
+ (taskCount - 1) * halfAdditionalDismissTranslationOffset,
|
||||
END_DISMISS_TRANSLATION_INTERPOLATION_OFFSET, 1);
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
anim.setFloat(taskView, TaskView.GRID_END_TRANSLATION_X, longGridRowWidthDiff,
|
||||
clampToProgress(LINEAR, dismissTranslationInterpolationEnd, 1));
|
||||
dismissTranslationInterpolationEnd = Utilities.boundToRange(
|
||||
|
@ -3142,7 +3144,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
// Rebalance tasks in the grid
|
||||
int highestVisibleTaskIndex = getHighestVisibleTaskIndex();
|
||||
if (highestVisibleTaskIndex < Integer.MAX_VALUE) {
|
||||
TaskView taskView = getTaskViewAt(highestVisibleTaskIndex);
|
||||
TaskView taskView = requireTaskViewAt(highestVisibleTaskIndex);
|
||||
|
||||
boolean shouldRebalance;
|
||||
int screenStart = mOrientationHandler.getPrimaryScroll(
|
||||
|
@ -3240,7 +3242,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
IntArray topArray = new IntArray(mTopRowIdSet.size());
|
||||
int taskViewCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskViewCount; i++) {
|
||||
int taskViewId = getTaskViewAt(i).getTaskViewId();
|
||||
int taskViewId = requireTaskViewAt(i).getTaskViewId();
|
||||
if (mTopRowIdSet.contains(taskViewId)) {
|
||||
topArray.add(taskViewId);
|
||||
}
|
||||
|
@ -3259,7 +3261,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
IntArray bottomArray = new IntArray(bottomRowIdArraySize);
|
||||
int taskViewCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskViewCount; i++) {
|
||||
int taskViewId = getTaskViewAt(i).getTaskViewId();
|
||||
int taskViewId = requireTaskViewAt(i).getTaskViewId();
|
||||
if (!mTopRowIdSet.contains(taskViewId) && taskViewId != mFocusedTaskViewId) {
|
||||
bottomArray.add(taskViewId);
|
||||
}
|
||||
|
@ -3329,7 +3331,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
int count = getTaskViewCount();
|
||||
for (int i = 0; i < count; i++) {
|
||||
addDismissedTaskAnimations(getTaskViewAt(i), duration, anim);
|
||||
addDismissedTaskAnimations(requireTaskViewAt(i), duration, anim);
|
||||
}
|
||||
|
||||
mPendingAnimation = anim;
|
||||
|
@ -3452,7 +3454,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mContentAlpha = alpha;
|
||||
int runningTaskId = getTaskIdsForRunningTaskView()[0];
|
||||
for (int i = getTaskViewCount() - 1; i >= 0; i--) {
|
||||
TaskView child = getTaskViewAt(i);
|
||||
TaskView child = requireTaskViewAt(i);
|
||||
int[] childTaskIds = child.getTaskIds();
|
||||
if (!mRunningTaskTileHidden ||
|
||||
(childTaskIds[0] != runningTaskId && childTaskIds[1] != runningTaskId)) {
|
||||
|
@ -3553,6 +3555,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
return child instanceof TaskView ? (TaskView) child : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* A version of {@link #getTaskViewAt} when the caller is sure about the input index.
|
||||
*/
|
||||
@NonNull
|
||||
private TaskView requireTaskViewAt(int index) {
|
||||
return Objects.requireNonNull(getTaskViewAt(index));
|
||||
}
|
||||
|
||||
public void setOnEmptyMessageUpdatedListener(OnEmptyMessageUpdatedListener listener) {
|
||||
mOnEmptyMessageUpdatedListener = listener;
|
||||
}
|
||||
|
@ -3769,7 +3779,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
protected void setTaskViewsResistanceTranslation(float translation) {
|
||||
mTaskViewsSecondaryTranslation = translation;
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView task = getTaskViewAt(i);
|
||||
TaskView task = requireTaskViewAt(i);
|
||||
task.getTaskResistanceTranslationProperty().set(task, translation / getScaleY());
|
||||
}
|
||||
runActionOnRemoteHandles(
|
||||
|
@ -3779,14 +3789,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
private void updateTaskViewsSnapshotRadius() {
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
getTaskViewAt(i).updateSnapshotRadius();
|
||||
requireTaskViewAt(i).updateSnapshotRadius();
|
||||
}
|
||||
}
|
||||
|
||||
protected void setTaskViewsPrimarySplitTranslation(float translation) {
|
||||
mTaskViewsPrimarySplitTranslation = translation;
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView task = getTaskViewAt(i);
|
||||
TaskView task = requireTaskViewAt(i);
|
||||
task.getPrimarySplitTranslationProperty().set(task, translation);
|
||||
}
|
||||
}
|
||||
|
@ -3794,7 +3804,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
protected void setTaskViewsSecondarySplitTranslation(float translation) {
|
||||
mTaskViewsSecondarySplitTranslation = translation;
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
if (taskView == mSplitHiddenTaskView) {
|
||||
continue;
|
||||
}
|
||||
|
@ -3808,7 +3818,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
public void applySplitPrimaryScrollOffset() {
|
||||
if (isSplitPlaceholderFirstInGrid()) {
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
getTaskViewAt(i).setSplitScrollOffsetPrimary(mSplitPlaceholderSize);
|
||||
requireTaskViewAt(i).setSplitScrollOffsetPrimary(mSplitPlaceholderSize);
|
||||
}
|
||||
} else if (isSplitPlaceholderLastInGrid()) {
|
||||
mClearAllButton.setSplitSelectScrollOffsetPrimary(-mSplitPlaceholderSize);
|
||||
|
@ -3850,7 +3860,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
*/
|
||||
public void resetSplitPrimaryScrollOffset() {
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
getTaskViewAt(i).setSplitScrollOffsetPrimary(0);
|
||||
requireTaskViewAt(i).setSplitScrollOffsetPrimary(0);
|
||||
}
|
||||
mClearAllButton.setSplitSelectScrollOffsetPrimary(0);
|
||||
}
|
||||
|
@ -4077,8 +4087,8 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mTaskViewDeadZoneRect.setEmpty();
|
||||
int count = getTaskViewCount();
|
||||
if (count > 0) {
|
||||
final View taskView = getTaskViewAt(0);
|
||||
getTaskViewAt(count - 1).getHitRect(mTaskViewDeadZoneRect);
|
||||
final View taskView = requireTaskViewAt(0);
|
||||
requireTaskViewAt(count - 1).getHitRect(mTaskViewDeadZoneRect);
|
||||
mTaskViewDeadZoneRect.union(taskView.getLeft(), taskView.getTop(), taskView.getRight(),
|
||||
taskView.getBottom());
|
||||
}
|
||||
|
@ -4559,7 +4569,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
|
||||
final int taskCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
TaskView taskView = getTaskViewAt(i);
|
||||
TaskView taskView = requireTaskViewAt(i);
|
||||
float scrollDiff = taskView.getScrollAdjustment(showAsFullscreen, showAsGrid);
|
||||
int pageScroll = newPageScrolls[i] + (int) scrollDiff;
|
||||
if ((mIsRtl && pageScroll < clearAllScroll + clearAllWidth)
|
||||
|
@ -4727,7 +4737,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
int overlayEnabledPage = mOverlayEnabled ? getNextPage() : -1;
|
||||
int taskCount = getTaskViewCount();
|
||||
for (int i = 0; i < taskCount; i++) {
|
||||
getTaskViewAt(i).setOverlayEnabled(i == overlayEnabledPage);
|
||||
requireTaskViewAt(i).setOverlayEnabled(i == overlayEnabledPage);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4881,7 +4891,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
|||
mColorTint = tintAmount;
|
||||
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
getTaskViewAt(i).setColorTint(mColorTint, mTintingColor);
|
||||
requireTaskViewAt(i).setColorTint(mColorTint, mTintingColor);
|
||||
}
|
||||
|
||||
Drawable scrimBg = mActivity.getScrimView().getBackground();
|
||||
|
|
Loading…
Reference in New Issue