diff --git a/go/quickstep/res/layout/clear_all_button.xml b/go/quickstep/res/layout/clear_all_button.xml
new file mode 100644
index 0000000000..eceffec42f
--- /dev/null
+++ b/go/quickstep/res/layout/clear_all_button.xml
@@ -0,0 +1,28 @@
+
+
+
diff --git a/go/quickstep/res/layout/icon_recents_root_view.xml b/go/quickstep/res/layout/icon_recents_root_view.xml
index 6dc293f748..6fb7e19d13 100644
--- a/go/quickstep/res/layout/icon_recents_root_view.xml
+++ b/go/quickstep/res/layout/icon_recents_root_view.xml
@@ -19,29 +19,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
-
-
-
-
+ android:scrollbars="none"/>
{
+public final class TaskAdapter extends Adapter {
public static final int CHANGE_EVENT_TYPE_EMPTY_TO_CONTENT = 0;
public static final int MAX_TASKS_TO_DISPLAY = 6;
private static final String TAG = "TaskAdapter";
+ private static final int ITEM_TYPE_TASK = 0;
+ private static final int ITEM_TYPE_CLEAR_ALL = 1;
private final TaskListLoader mLoader;
private TaskActionController mTaskActionController;
+ private OnClickListener mClearAllListener;
private boolean mIsShowingLoadingUi;
public TaskAdapter(@NonNull TaskListLoader loader) {
@@ -52,6 +57,10 @@ public final class TaskAdapter extends Adapter {
mTaskActionController = taskActionController;
}
+ public void setOnClearAllClickListener(OnClickListener listener) {
+ mClearAllListener = listener;
+ }
+
/**
* Sets all positions in the task adapter to loading views, binding new views if necessary.
* This changes the task adapter's view of the data, so the appropriate notify events should be
@@ -65,21 +74,32 @@ public final class TaskAdapter extends Adapter {
}
@Override
- public TaskHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- TaskItemView itemView = (TaskItemView) LayoutInflater.from(parent.getContext())
- .inflate(R.layout.task_item_view, parent, false);
- TaskHolder holder = new TaskHolder(itemView);
- itemView.setOnClickListener(view -> mTaskActionController.launchTask(holder));
- return holder;
+ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ switch (viewType) {
+ case ITEM_TYPE_TASK:
+ TaskItemView itemView = (TaskItemView) LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.task_item_view, parent, false);
+ TaskHolder taskHolder = new TaskHolder(itemView);
+ itemView.setOnClickListener(view -> mTaskActionController.launchTask(taskHolder));
+ return taskHolder;
+ case ITEM_TYPE_CLEAR_ALL:
+ Button clearView = (Button) LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.clear_all_button, parent, false);
+ ClearAllHolder clearAllHolder = new ClearAllHolder(clearView);
+ clearView.setOnClickListener(mClearAllListener);
+ return clearAllHolder;
+ default:
+ throw new IllegalArgumentException("No known holder for item type: " + viewType);
+ }
}
@Override
- public void onBindViewHolder(TaskHolder holder, int position) {
+ public void onBindViewHolder(ViewHolder holder, int position) {
onBindViewHolderInternal(holder, position, false /* willAnimate */);
}
@Override
- public void onBindViewHolder(@NonNull TaskHolder holder, int position,
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position,
@NonNull List