Loading quickstep/src/com/android/quickstep/RecentTasksList.java +2 −3 Original line number Diff line number Diff line Loading @@ -191,6 +191,7 @@ public class RecentTasksList extends TaskStackChangeListener { } else { task = new Task(taskKey); } task.setLastSnapshotData(rawTask); allTasks.add(task); } Loading @@ -200,9 +201,7 @@ public class RecentTasksList extends TaskStackChangeListener { private ArrayList<Task> copyOf(ArrayList<Task> tasks) { ArrayList<Task> newTasks = new ArrayList<>(); for (int i = 0; i < tasks.size(); i++) { Task t = tasks.get(i); newTasks.add(new Task(t.key, t.colorPrimary, t.colorBackground, t.isDockable, t.isLocked, t.taskDescription, t.topActivity)); newTasks.add(new Task(tasks.get(i))); } return newTasks; } Loading quickstep/src/com/android/quickstep/views/RecentsView.java +7 −4 Original line number Diff line number Diff line Loading @@ -646,9 +646,9 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView public TaskView getTaskView(int taskId) { for (int i = 0; i < getTaskViewCount(); i++) { TaskView tv = getTaskViewAt(i); if (tv.getTask() != null && tv.getTask().key != null && tv.getTask().key.id == taskId) { return tv; TaskView taskView = getTaskViewAt(i); if (taskView.hasTaskId(taskId)) { return taskView; } } return null; Loading Loading @@ -808,6 +808,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView final Task task = tasks.get(i); final TaskView taskView = (TaskView) getChildAt(pageIndex); taskView.bind(task, mOrientationState); taskView.updateTaskSize(!taskView.hasTaskId(mRunningTaskId)); } if (mNextPage == INVALID_PAGE) { Loading Loading @@ -942,7 +943,8 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView // Force TaskView to update size from thumbnail final int taskCount = getTaskViewCount(); for (int i = 0; i < taskCount; i++) { getTaskViewAt(i).updateTaskSize(); TaskView taskView = getTaskViewAt(i); taskView.updateTaskSize(!taskView.hasTaskId(mRunningTaskId)); } } Loading Loading @@ -1252,6 +1254,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView // gesture and the task list is loaded and applied mTmpRunningTask = Task.from(new TaskKey(runningTaskInfo), runningTaskInfo, false); taskView.bind(mTmpRunningTask, mOrientationState); taskView.updateTaskSize(false); // Measure and layout immediately so that the scroll values is updated instantly // as the user might be quick-switching Loading quickstep/src/com/android/quickstep/views/TaskThumbnailView.java +0 −28 Original line number Diff line number Diff line Loading @@ -111,9 +111,6 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc private boolean mOverlayEnabled; private OverviewScreenshotActions mOverviewScreenshotActionsPlugin; // TODO(b/179466077): Remove when proper API is ready. private Float mThumbnailRatio = null; public TaskThumbnailView(Context context) { this(context, null); } Loading Loading @@ -454,31 +451,6 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc return mThumbnailData.isRealSnapshot; } // TODO(b/179466077): Remove when proper API is ready. public float getThumbnailRatio() { // API is ready. if (mThumbnailRatio != null) { return mThumbnailRatio; } if (mThumbnailData == null || mThumbnailData.thumbnail == null) { final float[] thumbnailRatios = new float[]{0.8882452f, 1.2834098f, 0.5558415f, 2.15625f}; // Use key's hash code to return a deterministic thumbnail ratio. mThumbnailRatio = thumbnailRatios[mTask.key.hashCode() % thumbnailRatios.length]; return mThumbnailRatio; } float surfaceWidth = mThumbnailData.thumbnail.getWidth() / mThumbnailData.scale; float surfaceHeight = mThumbnailData.thumbnail.getHeight() / mThumbnailData.scale; float availableWidth = surfaceWidth - (mThumbnailData.insets.left + mThumbnailData.insets.right); float availableHeight = surfaceHeight - (mThumbnailData.insets.top + mThumbnailData.insets.bottom); mThumbnailRatio = availableWidth / availableHeight; return mThumbnailRatio; } /** * Utility class to position the thumbnail in the TaskView */ Loading quickstep/src/com/android/quickstep/views/TaskView.java +9 −4 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.app.ActivityOptions; import android.content.Context; import android.content.Intent; import android.graphics.Outline; import android.graphics.Point; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; Loading Loading @@ -449,7 +450,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { cancelPendingLoadTasks(); mTask = task; mSnapshotView.bind(task); updateTaskSize(); setOrientationState(orientedState); } Loading @@ -457,6 +457,10 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { return mTask; } public boolean hasTaskId(int taskId) { return mTask != null && mTask.key != null && mTask.key.id == taskId; } public TaskThumbnailView getThumbnail() { return mSnapshotView; } Loading Loading @@ -1077,9 +1081,11 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { previewPositionHelper); } void updateTaskSize() { void updateTaskSize(boolean variableWidth) { ViewGroup.LayoutParams params = getLayoutParams(); if (mActivity.getDeviceProfile().isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get()) { float thumbnailRatio = mTask != null ? mTask.getVisibleThumbnailRatio() : 0f; if (variableWidth && mActivity.getDeviceProfile().isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get() && thumbnailRatio != 0f) { final int thumbnailPadding = (int) getResources().getDimension( R.dimen.task_thumbnail_top_margin); Loading @@ -1087,7 +1093,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { int taskWidth = lastComputedTaskSize.width(); int taskHeight = lastComputedTaskSize.height(); int boxLength = Math.max(taskWidth, taskHeight); float thumbnailRatio = mSnapshotView.getThumbnailRatio(); int expectedWidth; int expectedHeight; Loading Loading
quickstep/src/com/android/quickstep/RecentTasksList.java +2 −3 Original line number Diff line number Diff line Loading @@ -191,6 +191,7 @@ public class RecentTasksList extends TaskStackChangeListener { } else { task = new Task(taskKey); } task.setLastSnapshotData(rawTask); allTasks.add(task); } Loading @@ -200,9 +201,7 @@ public class RecentTasksList extends TaskStackChangeListener { private ArrayList<Task> copyOf(ArrayList<Task> tasks) { ArrayList<Task> newTasks = new ArrayList<>(); for (int i = 0; i < tasks.size(); i++) { Task t = tasks.get(i); newTasks.add(new Task(t.key, t.colorPrimary, t.colorBackground, t.isDockable, t.isLocked, t.taskDescription, t.topActivity)); newTasks.add(new Task(tasks.get(i))); } return newTasks; } Loading
quickstep/src/com/android/quickstep/views/RecentsView.java +7 −4 Original line number Diff line number Diff line Loading @@ -646,9 +646,9 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView public TaskView getTaskView(int taskId) { for (int i = 0; i < getTaskViewCount(); i++) { TaskView tv = getTaskViewAt(i); if (tv.getTask() != null && tv.getTask().key != null && tv.getTask().key.id == taskId) { return tv; TaskView taskView = getTaskViewAt(i); if (taskView.hasTaskId(taskId)) { return taskView; } } return null; Loading Loading @@ -808,6 +808,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView final Task task = tasks.get(i); final TaskView taskView = (TaskView) getChildAt(pageIndex); taskView.bind(task, mOrientationState); taskView.updateTaskSize(!taskView.hasTaskId(mRunningTaskId)); } if (mNextPage == INVALID_PAGE) { Loading Loading @@ -942,7 +943,8 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView // Force TaskView to update size from thumbnail final int taskCount = getTaskViewCount(); for (int i = 0; i < taskCount; i++) { getTaskViewAt(i).updateTaskSize(); TaskView taskView = getTaskViewAt(i); taskView.updateTaskSize(!taskView.hasTaskId(mRunningTaskId)); } } Loading Loading @@ -1252,6 +1254,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView // gesture and the task list is loaded and applied mTmpRunningTask = Task.from(new TaskKey(runningTaskInfo), runningTaskInfo, false); taskView.bind(mTmpRunningTask, mOrientationState); taskView.updateTaskSize(false); // Measure and layout immediately so that the scroll values is updated instantly // as the user might be quick-switching Loading
quickstep/src/com/android/quickstep/views/TaskThumbnailView.java +0 −28 Original line number Diff line number Diff line Loading @@ -111,9 +111,6 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc private boolean mOverlayEnabled; private OverviewScreenshotActions mOverviewScreenshotActionsPlugin; // TODO(b/179466077): Remove when proper API is ready. private Float mThumbnailRatio = null; public TaskThumbnailView(Context context) { this(context, null); } Loading Loading @@ -454,31 +451,6 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc return mThumbnailData.isRealSnapshot; } // TODO(b/179466077): Remove when proper API is ready. public float getThumbnailRatio() { // API is ready. if (mThumbnailRatio != null) { return mThumbnailRatio; } if (mThumbnailData == null || mThumbnailData.thumbnail == null) { final float[] thumbnailRatios = new float[]{0.8882452f, 1.2834098f, 0.5558415f, 2.15625f}; // Use key's hash code to return a deterministic thumbnail ratio. mThumbnailRatio = thumbnailRatios[mTask.key.hashCode() % thumbnailRatios.length]; return mThumbnailRatio; } float surfaceWidth = mThumbnailData.thumbnail.getWidth() / mThumbnailData.scale; float surfaceHeight = mThumbnailData.thumbnail.getHeight() / mThumbnailData.scale; float availableWidth = surfaceWidth - (mThumbnailData.insets.left + mThumbnailData.insets.right); float availableHeight = surfaceHeight - (mThumbnailData.insets.top + mThumbnailData.insets.bottom); mThumbnailRatio = availableWidth / availableHeight; return mThumbnailRatio; } /** * Utility class to position the thumbnail in the TaskView */ Loading
quickstep/src/com/android/quickstep/views/TaskView.java +9 −4 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.app.ActivityOptions; import android.content.Context; import android.content.Intent; import android.graphics.Outline; import android.graphics.Point; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; Loading Loading @@ -449,7 +450,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { cancelPendingLoadTasks(); mTask = task; mSnapshotView.bind(task); updateTaskSize(); setOrientationState(orientedState); } Loading @@ -457,6 +457,10 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { return mTask; } public boolean hasTaskId(int taskId) { return mTask != null && mTask.key != null && mTask.key.id == taskId; } public TaskThumbnailView getThumbnail() { return mSnapshotView; } Loading Loading @@ -1077,9 +1081,11 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { previewPositionHelper); } void updateTaskSize() { void updateTaskSize(boolean variableWidth) { ViewGroup.LayoutParams params = getLayoutParams(); if (mActivity.getDeviceProfile().isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get()) { float thumbnailRatio = mTask != null ? mTask.getVisibleThumbnailRatio() : 0f; if (variableWidth && mActivity.getDeviceProfile().isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get() && thumbnailRatio != 0f) { final int thumbnailPadding = (int) getResources().getDimension( R.dimen.task_thumbnail_top_margin); Loading @@ -1087,7 +1093,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { int taskWidth = lastComputedTaskSize.width(); int taskHeight = lastComputedTaskSize.height(); int boxLength = Math.max(taskWidth, taskHeight); float thumbnailRatio = mSnapshotView.getThumbnailRatio(); int expectedWidth; int expectedHeight; Loading