Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 060fcd3f authored by Sid Soundararajan's avatar Sid Soundararajan
Browse files

Remove task based on object rather than position

Is some cases, the adapter is changed before the AnimationListener is
fired. Thus we need to remove the task without relying on position.

BUG: 28703989
Change-Id: If5cfe8589bbf6938c6e57e8e4c7bd54de6e3bd68
parent d6ea95a4
Loading
Loading
Loading
Loading
+5 −11
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
package com.android.systemui.recents.tv.views;

import android.animation.Animator;
import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
@@ -87,7 +86,7 @@ public class TaskStackHorizontalViewAdapter extends

                @Override
                public void onAnimationEnd(Animator animation) {
                    removeAt(position);
                    removeTask(task);
                    EventBus.getDefault().send(new DeleteTaskDataEvent(task));
                    mShouldReset = true;
                }
@@ -148,20 +147,15 @@ public class TaskStackHorizontalViewAdapter extends
        return mTaskList.size();
    }

    private void removeAt(int position) {
        Task removedTask = mTaskList.remove(position);
        if (mGridView != null) {
            mGridView.getStack().removeTask(removedTask, AnimationProps.IMMEDIATE,
                    false);
        }
        notifyItemRemoved(position);
    }

    public void removeTask(Task task) {
        int position = mTaskList.indexOf(task);
        if (position >= 0) {
            mTaskList.remove(position);
            notifyItemRemoved(position);
            if (mGridView != null) {
                mGridView.getStack().removeTask(task, AnimationProps.IMMEDIATE,
                        false);
            }
        }
    }