Solve three memory leaks related to PatchCache

A Patch can be fairly large, holding bitmap data, but
is also frequently leaked which adds to the severity.
The feature is used in many important processes such
as Home, SystemUI and Chrome.

The following leaks are solved:

1. The Patch itself was not always freed.
PatchCache::removeDeferred() can mark patches to be
cared for by PatchCache::clearGarbage(). But
mCache.remove() would only destroy the container
and the pointer, not the Patch object itself.

2. The vertices stored in the Patch at Patch::createMesh()
would always leak. The empty/default destructor in Patch
would not properly destroy "vertices" since it's just a
pointer.

3. A BufferBlock that's added to the mFreeBlocks
in PatchCache could leak. The leak happened when a
patch later needed the entire free block, because the
object was removed from the list but never deleted
in PatchCache::setupMesh().

Change-Id: I41e60824479230b67426fc546d3dbff294c8891f
Signed-off-by: houst0nn <houstonn@gmail.com>
Fix progress of VolumePanel never refresh

On some occasions when disconnecting a headset it is possible for
the volume slider to enter a state where it is no longer updates.

The cause was that ProgressBar enters a state where a call to
doRefreshProgress no longer updates the progress.

The solution was to make sure mRefreshIsPosted is set to false
when mRefreshProgressRunnable is removed.

Change-Id: I1929e4916a582d09a7ec4911eb4f0052ad7a51ba
Signed-off-by: houst0nn <houstonn@gmail.com>
ExpandHelper: Improve one finger expanding forced handling

Instead of force returning false if view is null, setup a boolean
to force it with custom views like hover. Cherry-picked from CM.

Also request disallow intercept on drag started. 

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
StatusBarView: Avoid unnecessary calls to mHandler.post()

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Signed-off-by: David L.-W. <xD_e-mail@gmx.de>
Merge "ExpandHelper: Improve one finger expanding forced handling" into kitkat
Themes: Theme immersive mode cling.

Change-Id: I5521b93f69e859c40cfd62eb4a367562200074e9
Merge "StatusBarView: Avoid unnecessary calls to mHandler.post()" into kitkat
Recents: Always show translucent decor on recents panel

Change-Id: Id3e371f841b065ba6ac7693d96b38504354b4fd9
Merge "Recents: Always show translucent decor on recents panel" into kitkat
Merge "Fix progress of VolumePanel never refresh" into kitkat
Revert "Pie: Fix navigation icon hints being cleared on reorientation"

Not recreating every time causes a regression of the hold pie while rotating bug

This reverts commit 148de1e8b7756a01e0d7f3353756fcb49860ba62.

Change-Id: I8dd2b22f257e66586fda018f7a90cfbcc982ba03
PIE: Add themeable colors support

Move colors to xml resources.

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Pie: Fix Pie positioning when PIE_ALWAYS_AT_RIGHT

Locking Pie to a single physical side of the screen makes perfect
sense when it's done on the short side of the screen (bottom in
portrait) as then Pie is more easily swipeable in at all times, but
a user might instead prefer being able to quickly swipe in from the
right or left hand side in portrait which becomes cumbersome when the
device is turned to landscape as the user is then forced to reach to
the middle of the long side of the screen which becomes located at
the bottom making it harder to access Pie.

The PIE_ALWAYS_AT_RIGHT value should be used to solve this issue
by forcing Pie to relocate itself to the right hand side just
like with the stock navigation bar.

Change-Id: I9b4dd3cee3fa7d85194389640dcedc02fa522530
Themes: Use INSTALL_LOCATION_INTERNAL_ONLY for legacy icon packs

If an icon pack is currently applied and is installed using forward
locking, the system will crash when the pack is updated.  Several
applications can have the pack attached to their resources and this
causes the system to crash because it cannot unmount the asec container
to finish the post install process.  Installing these packs to internal
storage without forward locking alleviates this issue.

This is done with theme packs as well, including legacy themes.

Change-Id: I155fc0bd671f3f9baaf2565d1c4d654a0a5348dc
Themes: Theme IME switcher alert dialog

Change-Id: I5344e9ddbacb1520080532d9cc1a7a5f5428e131
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
Merge "PIE: Add themeable colors support" into kitkat
HOVER: Match notification width on tablets too

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Merge "Themes: Use INSTALL_LOCATION_INTERNAL_ONLY for legacy icon packs" into kitkat
Merge "Themes: Theme IME switcher alert dialog" into kitkat
Merge "Pie: Fix Pie positioning when PIE_ALWAYS_AT_RIGHT" into kitkat