TaskGrouping.java revision ffa2ec664479bff6b4b61d4c349d9db2cb37ca16
1package com.android.systemui.recents.model; 2 3import java.util.ArrayList; 4 5/** Represents a grouping of tasks witihin a stack. */ 6public class TaskGrouping { 7 8 String affiliation; 9 long latestActiveTimeInGroup; 10 11 ArrayList<Task.TaskKey> mTasks = new ArrayList<Task.TaskKey>(); 12 13 /** Creates a group with a specified affiliation. */ 14 public TaskGrouping(String affiliation) { 15 this.affiliation = affiliation; 16 } 17 18 /** Adds a new task to this group. */ 19 void addTask(Task t) { 20 mTasks.add(t.key); 21 if (t.key.lastActiveTime > latestActiveTimeInGroup) { 22 latestActiveTimeInGroup = t.key.lastActiveTime; 23 } 24 t.setGroup(this); 25 } 26 27 /** Removes a task from this group. */ 28 void removeTask(Task t) { 29 mTasks.remove(t.key); 30 latestActiveTimeInGroup = 0; 31 int taskCount = mTasks.size(); 32 for (int i = 0; i < taskCount; i++) { 33 long lastActiveTime = mTasks.get(i).lastActiveTime; 34 if (lastActiveTime > latestActiveTimeInGroup) { 35 latestActiveTimeInGroup = lastActiveTime; 36 } 37 } 38 t.setGroup(null); 39 } 40 41 /** Gets the front task */ 42 public boolean isFrontMostTask(Task t) { 43 return t.key.equals(mTasks.get(mTasks.size() - 1)); 44 } 45 46 /** Finds the index of a given task in a group. */ 47 public int indexOf(Task t) { 48 return mTasks.indexOf(t.key); 49 } 50 51 /** Returns the number of tasks in this group. */ 52 public int getTaskCount() { return mTasks.size(); } 53} 54