Introduce TaskViewsIterator and TaskViewsIterable
- Create TaskViewsIterator to iterate all the current TaskViews inside
RecentsView.
- Create TaskViewsIterable with TaskViewsIterator as its iterator.
- Create `mTaskViewsIterable`, an instance of TaskViewsIterable that
used to make the TaskViews iterable.
- Current `getTaskViews()` return `mTaskViewsIterable` directly.
- Change `getTaskViews()` to be a public function, thus it can be
used outside of the RecentsView.
Some follow-up work includes:
- Replace all the call sites of `getTaskViewAt(0)` with
`getFirstTaskView()`
- Replace `0` as the index of the first TaskView with
`getFirstTaskViewIndex()`
- Audit all the call sites of iterating the TaskViews, let them use
`getTaskViews()` or IterableTaskViews.iterator() if index is needed.
Flag: EXEMPT as no functionality changes
Bug: 379942019
Test: Ensure the TaskViews required are correct in the following
scrnarios:
1. Swiping up from home screen to enter overview with empty or
multiple tasks
2. Swiping up from a fullscreen app to enter overview with
one or multiple tasks
3. Dimissing one or multiple tasks, exit and enter overview w/o
newly opened tasks
4. Remvoing all the tasks, reenter overview w/o newly opened
tasks
Change-Id: I930ce92b7e0bc37005af74a58fd4c0ce3013e5cb
2 files changed