/** Returns the transition rect for the given task id. */
  TaskViewTransform getThumbnailTransitionTransform(
      TaskStack stack, TaskStackView stackView, int runningTaskId, Task runningTaskOut) {
    // Find the running task in the TaskStack
    Task task = null;
    ArrayList<Task> tasks = stack.getTasks();
    if (runningTaskId != -1) {
      // Otherwise, try and find the task with the
      int taskCount = tasks.size();
      for (int i = taskCount - 1; i >= 0; i--) {
        Task t = tasks.get(i);
        if (t.key.id == runningTaskId) {
          task = t;
          runningTaskOut.copyFrom(t);
          break;
        }
      }
    }
    if (task == null) {
      // If no task is specified or we can not find the task just use the front most one
      task = tasks.get(tasks.size() - 1);
      runningTaskOut.copyFrom(task);
    }

    // Get the transform for the running task
    stackView.getScroller().setStackScrollToInitialState();
    mTmpTransform =
        stackView
            .getStackAlgorithm()
            .getStackTransform(task, stackView.getScroller().getStackScroll(), mTmpTransform, null);
    return mTmpTransform;
  }
  /** Binds this task view to the task */
  public void onTaskBound(Task t) {
    mTask = t;
    mTask.setCallbacks(this);

    // Hide the action button if lock to app is disabled for this view
    int lockButtonVisibility = (!t.lockToTaskEnabled || !t.lockToThisTask) ? GONE : VISIBLE;
    if (mActionButtonView.getVisibility() != lockButtonVisibility) {
      mActionButtonView.setVisibility(lockButtonVisibility);
      requestLayout();
    }
  }
 @Override
 public void onTaskDataUnloaded() {
   if (mThumbnailView != null && mHeaderView != null) {
     // Unbind each of the views from the task data and remove the task callback
     mTask.setCallbacks(null);
     mThumbnailView.unbindFromTask();
     mHeaderView.unbindFromTask();
     // Unbind any listeners
     mHeaderView.mApplicationIcon.setOnClickListener(null);
     mHeaderView.mDismissButton.setOnClickListener(null);
     mActionButtonView.setOnClickListener(null);
     if (Constants.DebugFlags.App.EnableDevAppInfoOnLongPress) {
       mHeaderView.mApplicationIcon.setOnLongClickListener(null);
     }
   }
   mTaskDataLoaded = false;
 }