Loading quickstep/src/com/android/quickstep/views/RecentsView.java +47 −37 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; /** Loading Loading @@ -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()) { Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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; } Loading Loading @@ -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; } Loading @@ -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) { Loading Loading @@ -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); } } } Loading @@ -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(); } Loading Loading @@ -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 Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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); } Loading Loading @@ -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; } Loading Loading @@ -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( Loading Loading @@ -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( Loading Loading @@ -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); } Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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)) { Loading Loading @@ -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; } Loading Loading @@ -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( Loading @@ -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); } } Loading @@ -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; } Loading @@ -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); Loading Loading @@ -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); } Loading Loading @@ -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()); } Loading Loading @@ -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) Loading Loading @@ -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); } } Loading Loading @@ -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 Loading
quickstep/src/com/android/quickstep/views/RecentsView.java +47 −37 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; /** Loading Loading @@ -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()) { Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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; } Loading Loading @@ -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; } Loading @@ -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) { Loading Loading @@ -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); } } } Loading @@ -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(); } Loading Loading @@ -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 Loading Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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); } Loading Loading @@ -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; } Loading Loading @@ -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( Loading Loading @@ -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( Loading Loading @@ -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); } Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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)) { Loading Loading @@ -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; } Loading Loading @@ -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( Loading @@ -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); } } Loading @@ -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; } Loading @@ -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); Loading Loading @@ -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); } Loading Loading @@ -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()); } Loading Loading @@ -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) Loading Loading @@ -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); } } Loading Loading @@ -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