Merge "Fix bug where we left recents right after entering" into ub-launcher3-qt-dev

This commit is contained in:
TreeHugger Robot
2019-05-02 20:50:03 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 6 deletions
@@ -26,16 +26,18 @@ import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import java.util.function.Consumer;
/**
* Callback for swipe input on {@link TaskHolder} views in the recents view.
*/
public final class TaskSwipeCallback extends ItemTouchHelper.SimpleCallback {
private final TaskActionController mTaskActionController;
private final Consumer<TaskHolder> mOnTaskSwipeCallback;
public TaskSwipeCallback(TaskActionController taskActionController) {
public TaskSwipeCallback(Consumer<TaskHolder> onTaskSwipeCallback) {
super(0 /* dragDirs */, RIGHT);
mTaskActionController = taskActionController;
mOnTaskSwipeCallback = onTaskSwipeCallback;
}
@Override
@@ -47,7 +49,7 @@ public final class TaskSwipeCallback extends ItemTouchHelper.SimpleCallback {
@Override
public void onSwiped(ViewHolder viewHolder, int direction) {
if (direction == RIGHT) {
mTaskActionController.removeTask((TaskHolder) viewHolder);
mOnTaskSwipeCallback.accept((TaskHolder) viewHolder);
}
}
@@ -168,7 +168,12 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
mTaskRecyclerView.setAdapter(mTaskAdapter);
mTaskRecyclerView.setLayoutManager(mTaskLayoutManager);
ItemTouchHelper helper = new ItemTouchHelper(
new TaskSwipeCallback(mTaskActionController));
new TaskSwipeCallback(holder -> {
mTaskActionController.removeTask(holder);
if (mTaskLoader.getCurrentTaskList().isEmpty()) {
mActivityHelper.leaveRecents();
}
}));
helper.attachToRecyclerView(mTaskRecyclerView);
mTaskRecyclerView.addOnChildAttachStateChangeListener(
new OnChildAttachStateChangeListener() {
@@ -459,7 +464,6 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
if (mShowingContentView != mEmptyView && taskListSize == 0) {
mShowingContentView = mEmptyView;
crossfadeViews(mEmptyView, mContentView);
mActivityHelper.leaveRecents();
}
if (mShowingContentView != mContentView && taskListSize > 0) {
mShowingContentView = mContentView;