a4ccb86ddc
- Reverting changes to the existing thumbnail transition to prevent breaking applications that currently depend on that transition. As a result, we need to create a new, hidden, aspect-scaled thumbnail transition, and instead use that thumbnail to animate the recents header so that we don't have to wait to do that inside the Recents activity. In order for this to work, we also have to ensure that the thumbnail surface destruction is synchronized with the application that is currently closing (when going down to recents) or opening (when coming back up). The current thumbnail is destroyed when the animation ends, but that can be at least 1 frame before the surface for the animating window is destroyed. We change this by deferring destruction of this thumbnail window to the animation that is being closed. Especially on the way up, not having to wait for us to hide the header before doing the transition up can save us the duration of that first animation (> 100ms). - Other optimizations: * No longer creating a new stack view on each transition to calculate the target rect * Removing unnecessary call to get the thumbnail when transitioning up/down (the actual window does its own animation. * We reduced numerous system calls per task by adding a flag to ignore home-stack tasks and caching the activity label and icon (and task description icon). These caches follow the same eviction schemes as the thumbnail and icon cache. - Also tweaked the touch slop for the nav bar swiping gesture to prevent conflicting with tapping on home (Bug 17109581) Change-Id: Ica697aad788051a9203edd9351c583e1cb038a71