Rename task input controller.

The TaskInputController class doesn't need to be tightly coupled with
the actual input method, so we should rename it and the methods to
correspond to the actual logic. For example, both tapping a task and
pressing the overview button on recents should launch a task and should
both use this logic.

Bug: 114136250
Test: Launch tasks, clear tasks, clear all
Change-Id: If4f7f1d6ee9b05ffaf65cb13df633679cc8efcbe
This commit is contained in:
Kevin 2019-03-21 11:32:04 -07:00
parent 1bfb0c1c51
commit 969e7a6c57
4 changed files with 29 additions and 23 deletions

View File

@ -23,24 +23,25 @@ import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.ActivityManagerWrapper;
/** /**
* Controller responsible for task logic that occurs on various input to the recents view. * Controller that provides logic for task-related commands on recents and updating the model/view
* as appropriate.
*/ */
public final class TaskInputController { public final class TaskActionController {
private final TaskListLoader mLoader; private final TaskListLoader mLoader;
private final TaskAdapter mAdapter; private final TaskAdapter mAdapter;
public TaskInputController(TaskListLoader loader,TaskAdapter adapter) { public TaskActionController(TaskListLoader loader, TaskAdapter adapter) {
mLoader = loader; mLoader = loader;
mAdapter = adapter; mAdapter = adapter;
} }
/** /**
* Logic that occurs when a task view is tapped. Launches the respective task. * Launch the task associated with the task holder, animating into the app.
* *
* @param viewHolder the task view holder that has been tapped * @param viewHolder the task view holder to launch
*/ */
public void onTaskClicked(TaskHolder viewHolder) { public void launchTask(TaskHolder viewHolder) {
TaskItemView itemView = (TaskItemView) (viewHolder.itemView); TaskItemView itemView = (TaskItemView) (viewHolder.itemView);
View v = itemView.getThumbnailView(); View v = itemView.getThumbnailView();
int left = 0; int left = 0;
@ -53,7 +54,12 @@ public final class TaskInputController {
opts, null /* resultCallback */, null /* resultCallbackHandler */); opts, null /* resultCallback */, null /* resultCallbackHandler */);
} }
public void onTaskSwiped(TaskHolder viewHolder) { /**
* Removes the task holder and the task, updating the model and the view.
*
* @param viewHolder the task view holder to remove
*/
public void removeTask(TaskHolder viewHolder) {
int position = viewHolder.getAdapterPosition(); int position = viewHolder.getAdapterPosition();
Task task = viewHolder.getTask(); Task task = viewHolder.getTask();
ActivityManagerWrapper.getInstance().removeTask(task.key.id); ActivityManagerWrapper.getInstance().removeTask(task.key.id);
@ -62,9 +68,9 @@ public final class TaskInputController {
} }
/** /**
* Logic that occurs when clear all is triggered. * Clears all tasks and updates the model and view.
*/ */
public void onClearAllClicked(View view) { public void clearAllTasks() {
// TODO: Play an animation so transition is more natural. // TODO: Play an animation so transition is more natural.
int count = mAdapter.getItemCount(); int count = mAdapter.getItemCount();
ActivityManagerWrapper.getInstance().removeAllRecentTasks(); ActivityManagerWrapper.getInstance().removeAllRecentTasks();

View File

@ -39,14 +39,14 @@ public final class TaskAdapter extends Adapter<TaskHolder> {
private static final String TAG = "TaskAdapter"; private static final String TAG = "TaskAdapter";
private final TaskListLoader mLoader; private final TaskListLoader mLoader;
private final ArrayMap<Integer, TaskItemView> mTaskIdToViewMap = new ArrayMap<>(); private final ArrayMap<Integer, TaskItemView> mTaskIdToViewMap = new ArrayMap<>();
private TaskInputController mInputController; private TaskActionController mTaskActionController;
public TaskAdapter(@NonNull TaskListLoader loader) { public TaskAdapter(@NonNull TaskListLoader loader) {
mLoader = loader; mLoader = loader;
} }
public void setInputController(TaskInputController inputController) { public void setActionController(TaskActionController taskActionController) {
mInputController = inputController; mTaskActionController = taskActionController;
} }
/** /**
@ -64,7 +64,7 @@ public final class TaskAdapter extends Adapter<TaskHolder> {
TaskItemView itemView = (TaskItemView) LayoutInflater.from(parent.getContext()) TaskItemView itemView = (TaskItemView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.task_item_view, parent, false); .inflate(R.layout.task_item_view, parent, false);
TaskHolder holder = new TaskHolder(itemView); TaskHolder holder = new TaskHolder(itemView);
itemView.setOnClickListener(view -> mInputController.onTaskClicked(holder)); itemView.setOnClickListener(view -> mTaskActionController.launchTask(holder));
return holder; return holder;
} }

View File

@ -26,11 +26,11 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
*/ */
public final class TaskSwipeCallback extends ItemTouchHelper.SimpleCallback { public final class TaskSwipeCallback extends ItemTouchHelper.SimpleCallback {
private final TaskInputController mTaskInputController; private final TaskActionController mTaskActionController;
public TaskSwipeCallback(TaskInputController inputController) { public TaskSwipeCallback(TaskActionController taskActionController) {
super(0 /* dragDirs */, RIGHT); super(0 /* dragDirs */, RIGHT);
mTaskInputController = inputController; mTaskActionController = taskActionController;
} }
@Override @Override
@ -42,7 +42,7 @@ public final class TaskSwipeCallback extends ItemTouchHelper.SimpleCallback {
@Override @Override
public void onSwiped(ViewHolder viewHolder, int direction) { public void onSwiped(ViewHolder viewHolder, int direction) {
if (direction == RIGHT) { if (direction == RIGHT) {
mTaskInputController.onTaskSwiped((TaskHolder) viewHolder); mTaskActionController.removeTask((TaskHolder) viewHolder);
} }
} }
} }

View File

@ -36,7 +36,7 @@ import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver;
import com.android.launcher3.R; import com.android.launcher3.R;
import com.android.quickstep.RecentsToActivityHelper; import com.android.quickstep.RecentsToActivityHelper;
import com.android.quickstep.TaskAdapter; import com.android.quickstep.TaskAdapter;
import com.android.quickstep.TaskInputController; import com.android.quickstep.TaskActionController;
import com.android.quickstep.TaskListLoader; import com.android.quickstep.TaskListLoader;
import com.android.quickstep.TaskSwipeCallback; import com.android.quickstep.TaskSwipeCallback;
@ -74,7 +74,7 @@ public final class IconRecentsView extends FrameLayout {
private final Context mContext; private final Context mContext;
private final TaskListLoader mTaskLoader; private final TaskListLoader mTaskLoader;
private final TaskAdapter mTaskAdapter; private final TaskAdapter mTaskAdapter;
private final TaskInputController mTaskInputController; private final TaskActionController mTaskActionController;
private RecentsToActivityHelper mActivityHelper; private RecentsToActivityHelper mActivityHelper;
private RecyclerView mTaskRecyclerView; private RecyclerView mTaskRecyclerView;
@ -86,8 +86,8 @@ public final class IconRecentsView extends FrameLayout {
mContext = context; mContext = context;
mTaskLoader = new TaskListLoader(mContext); mTaskLoader = new TaskListLoader(mContext);
mTaskAdapter = new TaskAdapter(mTaskLoader); mTaskAdapter = new TaskAdapter(mTaskLoader);
mTaskInputController = new TaskInputController(mTaskLoader, mTaskAdapter); mTaskActionController = new TaskActionController(mTaskLoader, mTaskAdapter);
mTaskAdapter.setInputController(mTaskInputController); mTaskAdapter.setActionController(mTaskActionController);
} }
@Override @Override
@ -99,7 +99,7 @@ public final class IconRecentsView extends FrameLayout {
mTaskRecyclerView.setLayoutManager( mTaskRecyclerView.setLayoutManager(
new LinearLayoutManager(mContext, VERTICAL, true /* reverseLayout */)); new LinearLayoutManager(mContext, VERTICAL, true /* reverseLayout */));
ItemTouchHelper helper = new ItemTouchHelper( ItemTouchHelper helper = new ItemTouchHelper(
new TaskSwipeCallback(mTaskInputController)); new TaskSwipeCallback(mTaskActionController));
helper.attachToRecyclerView(mTaskRecyclerView); helper.attachToRecyclerView(mTaskRecyclerView);
mEmptyView = findViewById(R.id.recent_task_empty_view); mEmptyView = findViewById(R.id.recent_task_empty_view);
@ -117,7 +117,7 @@ public final class IconRecentsView extends FrameLayout {
}); });
View clearAllView = findViewById(R.id.clear_all_button); View clearAllView = findViewById(R.id.clear_all_button);
clearAllView.setOnClickListener(mTaskInputController::onClearAllClicked); clearAllView.setOnClickListener(v -> mTaskActionController.clearAllTasks());
} }
} }