Recents: CardStackView Redesign

TODO:
- Implment a bitmap cache for card previews

Key Contibutors
- Yamil
- Oliver
- Lo
- Aaron

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>

Recents: Some Updates:

- Fix clear all, implement it in card stach view with same logic of default
- Visual fixes
- Other miscs

Squashed from Oliver's feature repo.

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>

Recents: Move UX fill text to bottom

- One app in recents case has empty space on bottom now

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>

SystemUI: Display Pie in forced immersive mode

When an app developer decides that it is needed, immersive mode can be
turned on by the app. Prior to this commit, the stock navigation bar
was always shown when it was done. This commit creates a special
immersive mode (forced immersive mode) which is enabled when an app
requests immersive mode (status bar and navigation bar can be hidden)
if the user has chosen to use Pie prior to this. This mode then makes
Pie appear instead of the stock navigation bar.

It should be noted that this also introduces a minor issue when the
user turns off the standard immersive mode as when doing so, the new
forced immersive state is enabled until the QS panel is closed/swiped
up, after which the system automatically switches over to the fully
disabled state. This is caused by the QS panel still appearing to be
immersive to the system. It can be seen on the other side of the QS
tile as it will say "Forced" for the new special immersive state and
"Disabled" for the fully disabled immersive state.

Change-Id: I7beaaa5771f97de187c506cfa2547c52f084b51f

Conflicts:
	packages/SystemUI/src/com/android/systemui/recent/Recents.java

Removed legacy code from "old" new recents

Remove legacy code for custom background

Add bottom gravity to recents text

Change-Id: Iad7808df9074ee619ed98d3f34b8cc3008efcdf0
Signed-off-by: Evan Anderson <evan@thelinuxman.us>

Implemented a more sophisticated adapter pattern

This should drastically decrease memory footprint

Conflicts:
	packages/SystemUI/src/com/android/systemui/recent/RecentsCardStackView.java

Fix issue #675

Revert "Revert "Removed legacy code from "old" new recents""

This reverts commit 33c96ba4ff921e7e23e148f5edfc0899ed3ac129.

Implemented zoom in animation for recents cards

Crop thumbnail to reduced card size before animation

Very minor cleanup

Bigger card margin on Nexus 10

New Recents: Make bg transparent

- Add dedicated new drawable and redirect it to recents only, prevent system breakage

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>

New Recents: Reduce cache

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>

New Recents: Make on-the-spot swtichable (requires reboot)

New Recents: Implement 'Remove from list" popup action

New Recents: Is now switchable without reboot/kill

Revert "Revert "Remove legacy code for custom background""

This reverts commit 8fb3a625777cb5c1fca3786e31b33180854335b7.

Conflicts:
	packages/SystemUI/res/layout/status_bar_recent_panel.xml
	packages/SystemUI/res/values/pa_strings.xml
	packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java

New Recents: Never exactly fit/strech thumbnail to card

New Recents: Add drawable for confirmation dialog

Remove lrucache

Offers no performance increase

Change-Id: Ie4c50d22c9887a4e3e03479081917949879956a5
Signed-off-by: Evan Anderson <evan@thelinuxman.us>

Missed comment

Change-Id: Iafbbb6e80bf9dfa926efbbe33e87cdc44fdf3892
Signed-off-by: Evan Anderson <evan@thelinuxman.us>

New Recents: Minor cleanup, remove some more legacy code

After removing lruCache, revert affected lines to be as
close as possible to original AOSP code.

New Recents: Fix issue #691 ('clear all' bug)

New Recents: WM service creates down scaled screenshots

NewRecents: Correctly support multiuser

Change-Id: If4e94bf60ff7953f570725d9a244d092d5293035
Signed-off-by: Evan Anderson <evan@thelinuxman.us>

New Recents: Little cleanup

New Recents: New light shadows

Thanks to Red Man

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>

New Recents: Experimentally force RGB565 for screenshots

New Recents: Initial integration of new card design

New Recents: Started implementing fallback AB detection

New Recents: Removed old drawables

New Recents: Performance and detection improvements

New Recents: Apply KISS principle for picking AB color

New Recents: Finetune edge detection

New Recents: Allow negative top padding

New Recents: Experimental edge verification (costly)

New Recents: Fix color swap bug

This is though. First, set bar colors every a view is
created/updated. Before, it was only set when loading
TaskDescription was finished, and never touched on updating
(=> wrong colors).

Second, when changing recent item's ordering,
TaskDescriptions are refreshed, which causes all of them to
be destroyed completely and recreated afterwards. Thus, old
AB color information is not available anymore and we need
reevaluate it. When now setting colors on every view update,
often times the corresponding TaskDescription still hasn't
finished loading and we therefore need to fall back to
default values (very ugly). The solution now is to hand over
old TaskDescriptions on every refresh and to reuse existing
AB color information during recreation of the new
TaskDescriptions.

New Recents: Switch between dark and light label color

New Recents: Added some NP checks

New Recents: Better reuse of existing AB color information

On dismissBackToHome or onHandleClick all recent task
descriptions, which contain AB color information, are
cleared. To improve reuse, store existing descriptions
before clearing in a separate array. Data is cached until
next clear is issued again.

New Recents: Finetune layout/design

New Recents: Remove TODOs to ensure untouched stock recents

New Recents: Minor refactoring

New Recents: Temporarily disable not yet functional buttons

New Recents: Avoid transparent bar color

New Recents: Sort of fixed blank screen

New Recents: Always check for transparent bar color

Recents View: fix longpress popupmenu positioning

Change-Id: Iabcfa73c89ed00b041400354ffe3dc8f2793c55e

Recents View: fix mIsScrolling not being set correctly

Actually, the whole touch handling is quite a mess and this fix is not really good, but the best I could come up with.
The problem is, that in onDispatchTouchEvent onTouchEvent is being called therefore onTouchEvent is being called twice, if onInterceptTouchEvent returns true.
If onInterceptTouchEvent isn't called at all, because no child is touched, mIsScrolling isn't set but onTouchEvent is because of dispatchTouchEvent.

Change-Id: I881af1041eafe33e5d3ce2bf09547ac36cd35bba

Recents View: fix swipe to the side doesn't work since the last fix

Because mIsScrlling wasn't set to false on ACTION_UP, swiping to stop a process didn't work anymore after scrolling.
Setting it to false in ACTION_UP on the other hand caused thumbnails to be clicked even if they weren't supposed to be clicked.
This is now fixed using the new mWasScrolling variable.

Change-Id: I4f66688ec7cce668c872c9c0e21482be9f4fe2a0

Recents View: dismiss on touch outside of thumbnails like the stock recents does

scrolling there was broken anyway

Change-Id: I1852e613b5b1ed042b7f1f923e1ab5d2f1dcb583

Recents View: apply Oliver's style  rules to last commit

Change-Id: I752d649f9dbcdbc7dd794f2deeeca7f154cbdc69

Recents View: crop floating window thumbnails

ToDo:
- handle landscape
- move to WindowManagerService.java

Change-Id: Ic2edad41291a0b144f3c335ce21d829e3f5fdd23

Recents View: Fix a possible SystemUI FC

This commit deals with a possible null pointer exception that could
take place when trying to handle the application thumbnail. As it can
be seen in code below this change, the null value should be expected
to be a valid value as well and dealt with accordingly.

Change-Id: I47a021df1e0931d774c7db9039ebfba66a41aaa5

Conflicts:
	packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java