PIE: Improve assistant handling

Run it from SearchPanelView and determinate before, at PieMenu creation,
if we have any assistant available or not.

Some cleanup too.

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Quicksettings: Add separate dimension for dual switch icon

Support Themers (for ex the ones who change QS icon sizes).
Right now it streams default one that is themed, and a bigger icon
theme will mess it up.

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

- Bring some fixes to the algorithm thanks to @D4rKn3sSyS
- Cleanup

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Themes: Add categories to theme change intent.

The following categories are available:

org.cyanogenmod.intent.category.MODS_HOMESCREEN
org.cyanogenmod.intent.category.MODS_LOCKSCREEN
org.cyanogenmod.intent.category.MODS_ICONS
org.cyanogenmod.intent.category.MODS_FONTS
org.cyanogenmod.intent.category.MODS_BOOTANIM
org.cyanogenmod.intent.category.MODS_NOTIFICATIONS
org.cyanogenmod.intent.category.MODS_ALARMS
org.cyanogenmod.intent.category.MODS_RINGTONES
org.cyanogenmod.intent.category.MODS_OVERLAYS

Change-Id: Ic444278d1d712cb6207bb10574a471524a8fed41
HOVER: Disallow notifications from foreground active app

The Ticker doesn't do this, but Hover can be less intrusive.

TO DO:
Add a settings switch (?)

Change-Id: Ibe954e343b7bf47fde684eaa2a65de5018a7f355
HOVER: Theme Engine compatibilities and resources cleanup

Use default notification dimens, those are edited by TE so we reflect them.

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

I was not happy with long press on notifications and recents
to open apps in floating mode. The long press duration kinda
breaks the UI interaction flow, which prevented me from
actually using floating windows. Therefore, I've created a
private modification, which enables floating mode for
notifications and recents by swiping to the left. This
greatly improves usability without strongly deviating from
stock UI experience, in strict accordance with PA's
philosophy.  Changes are surgically implemented to keep the
probability of merge conflicts rather low. The code was
successfully tested on mako, hammerhead, tilapia, and manta.
Let the team discuss and decide whether or not this is a
worthy extension to PA.

Changes are split into two commits (PT1 & PT2).

PT1:
- Extending SwipeHelper:
SwipeHelper can now distinguish between directions LEFT,
RIGHT, UP, DOWN and can fire an abstract trigger 'event'. A
trigger direction can be specified and when a swipe in this
direction occurs dismissable children will not be dismissed,
instead they will be snapped back.  Whenever a child is
swiped far or fast enough in that direction an event is
triggered and the onChildTriggerd() callback is issued. This
callback was added to the SwipeHelper.Callback interface and
therefore requires all its implementations to realize this
method, such as probably Hover, which is sadly not open
source (yet?).

PS7: Added Hover support

Change-Id: Ida06195913f022463d29ca22092e81fb8993ad50
SystemUI: Swipe to float for notifications and recents

I was not happy with long press on notifications and recents
to open apps in floating mode. The long press duration kinda
breaks the UI interaction flow, which prevented me from
actually using floating windows. Therefore, I've created a
private modification, which enables floating mode for
notifications and recents by swiping to the left. This
greatly improves usability without strongly deviating from
stock UI experience, in strict accordance with PA's
philosophy. Changes are surgically implemented to keep the
probability of merge conflicts rather low. The code was
successfully tested on mako, hammerhead, tilapia, and manta.
Let the team discuss and decide whether or not this is a
worthy extension to PA.

Changes are split into two commits (PT1 & PT2).

PT2:
- Swipe recents for floating window:
Recents ScrollViews set separate trigger directions on
SwipeHelper (LEFT for vertical and DOWN for horizontal).
Directions are chosen as the opposite of the 'natural'
swipe-to-dismiss direction performed by the clear-all
button. onChildTriggered() will open the app in floating
window mode. To confirm this behavior for horizontal and
vertical recents views, separate settings confirmation
dialogs are shown with appropriate PA-style graphics (Gimp
sources on request).
- Swipe status bar notification for floating window:
Analogous to recents, here the NotificationRowLayout sets
the trigger direction to LEFT. It also got its own
confirmation dialog together with new hint graphics. After a
child is triggered, the app is started in floating window
mode by performing a click causing the notification to
disappear (exactly as it would anyway, if the app would have
been opened in 'normal' full-screen mode).

Conflicts:
	packages/SystemUI/res/values-de/pa_strings.xml
	packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java
	packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
	packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java

PS6: Rebase with hover changes and blacklist interface.

Change-Id: Ib32e2c88033b1c143bd8dc8fa7394b002060d526
VolumePanel: Fix Theme Engine support with On-The-Spot dialog

Our on the spot feature needs to write to system. Since VolumePanel when is
recreated uses theme engine context, pass to on the spot dialog always the
first system initialized one. Thanks to @David96 helping find this out :)

Fix AOSPA-482

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