Kill floating activities running in the same thread when tapping outside

This change makes all activities from the same app to be finished when we tap outside the halo window. Other apps running in different threads
(floating or not) won't be finished.

Port from here: https://github.com/ParanoidAndroid/android_frameworks_base/commit/f489f45ab2ba5dd4991c241917f7f4b0fd74b884

Change-Id: Ie6d6f46b2e23be60f991520ed480c2866fb2d0e3
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>
Ability to disable hardware keys via nav bar settings (2/2)

Signed-off-by: Janson Kang <temasek71@gmail.com>

Conflicts:
	core/java/android/provider/Settings.java

Change-Id: I0524f193c89f6a10032b0bc0a692cd37420f2bec
Add changes to allow hardware keys enable/disable through overlay
- Check devices related overlay/frameworks/base/core/res/res/values/cr_config.xml to enable or disable

Change-Id: Iac168930b0d8049b4a674c46901f57045284ce51
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>
Notification drawer: full swipe to switch detection

Non-optional

Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>
Frameworks: Lockscreen Colors and Lock Image [1/2]

PS2: Separate all color elements
	into separate prefs.
	Also colorize bouncer frame
	for secure lockscreens.
PS3: Whitespace

PS?: Add Lock Icon Picker =]
PS?: Add "Colorize Custom Icon" option.

Change-Id: I542dfa01bb1d3d0e401bbf8a5f58b32f08cbfc62
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
fb: fix pixelated results on picture resizing/coloring on features which use it

- turn on the filter for resizing
- use a Rect with the image dimesions and apply it
  for drawing the new colored or gray icons

this solves all issues we had on several fetures which allows
coloring/resizing

Change-Id: Icea4f20c06701f41b954406eaf67939d87310b87
fb: fix and pimp custom lockscreen handle (1/2)

problem on current implementation is that it is not
multiDpi compatible. As well it looks a bit weird if
the user set a square image always. This commit does

- introduce central circleimage method to get circle image crops
- before it was assumed that the height of the handle image is
  108px (mdpi base) which is correct but the original handle
  has a lot unused space around to fit better into the view.
  Whatever after messurment of the real height 68px is correct
  of course calculated against the current density
- both above combined results into a always nice looking
  custom circle icon on the lockscreen dpi and device undependent
- saved file in settings calculates the needed image size
  base on the current density.

Patchset:
- use for custom bitmap our colorize methods due that
  the result looks way nicer then the usual colorfilter

Patchset:
- use AntiAlias

Change-Id: Id0321e0e9176f8f765980f69b412658dbb929ef3
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>

Conflicts:
	core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
Navigation bar dimensions (1/2)

- Change height when in portrait
- Change width when in landscape
- Option to enable or disable nav bar

This is partially ported from SlimRoms
Thanks to @kufikugel

Change-Id: Ic2bfb32684c3d74062d123266db1516e09d92fb6

Conflicts:
	core/java/android/provider/Settings.java
Attemp to fix halo button and fix build
Quick Settings: Option to use floating window (1/2)

Allows the option of launching preferences from the quicksettings menu in a
floating window

Change-Id: Ie54545a4dc423484b6106a540f106467c25d8c49
Signed-off-by: Evan Anderson <evan1124@gmail.com>
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>

Conflicts:
	core/java/android/provider/Settings.java

Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>
Launch floating notifications from notification panel (long click)

 * Status bar - long click on notification select 'floating mode' option
 * PIE - long click on notification, auto launches floating window

Change-Id: Ia7b85ddd41a663d1fb175d60c0fa34bcaf43f28f
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>

Conflicts:
	packages/SystemUI/res/values/cm_strings.xml
Frameworks: SlimPie (1/2)
LOTS OF THANKS THANKSS TO @lion0738 for the port!!!!!!
Well first I want to thanks again for the ideas Jens Doll, Kyrylo Mikos and PA gave us
on 4.3 allready to make our own SlimPie possible. We used partly code from them and added
and changed it in our Slim way to have it for us most usefull.

Well as known SlimPie advantage to other PIEs is that it can bind on every button
press and longpress action like the user want. All SlimActions are available for
every button (so all possible shortcuts we have + apps etc). Of course as well
available are custom icon images or system icons. Other unique thing of SlimPie
is that 2 rows are available. First row user can setup up to 5 buttons. On the second
row up to 7 Buttons.
Of course the user can setup the style to their like and still theme engine related
things are respected.
Pie is activated present on non expanded Desktop as well

For 4.4 we reworked a lot of the frameworks base code mainly. Changes compared to 4.3

- We use now a edge detection service (thanks a ton to Jens and Kyrylo). We tweaked it only
  very minor due that it works allready out of the box. Two reasons why we want to use it.

  1. We do not have detection overlays on the borders anymore. Means the user is not disturbed
     by it and we do not need to add workarounds like we did before to avoid accidental swipe ups
     (eg old IME reduce triggers). As well it is not needed anymore that the user can setup
     thikness etc. The default values are allready quiet good. If a device has detection problems
     the dm can adjust them via overlay. As said main main main advantage  that no dead zones are present
     anymore.

  2. we will use this service for other upcomming features as well (eg new Recents)

- Centralized and adapted the code to 4.4 and some changes we did in our central classes
- reduced observer to an absolutly minimum. If PIE is disabled it does not observe any value
- A lot small fixes and tweaks
- Change default colors to KK style
- If navbar is present the navbar gets animated with the background to give a full screen overlay
  feeling to the user. Especially now with kk transparency way better.
- Full keyguard support
- complete reworked edge disable detection
- and a lot more

PS:
- add and fix the callbacks
PS:
- cleanup
- multiuser support
- reworked complete observer and attach detach handling
PS:
- fix some detection corner cases
PS
- fix derp
PS
- for pie add higher default sensivity. As well give an option
  to overlay it in device tree to set it even higher.
PS
- refresh settings if user changed
- small cleanup
PS
- fix another derp :(
PS
- add disable activation edges logic

  if navbar or statusbar is present (either visible or as swipe in expanded the bottom and top are disabled)
  is notification drawer is down top left right is enabled
  if one of the different navbar modes or the navbar in the current view has 0 height this edge is enabled
  if navbar is off navbar edge is enabled
PS
- our service is always present
- cleanup commandque as well aosp and our code
- some minor tweaks
PS
- animate navigationbar on non expanded to overlay the background on pie over the complete screen
PS
- add recents preloader logic
PS
- space out a bit the clock
PS
- change default colors
PS
- use our color classes and fix it that they can handle our new logic
PS
- cleanup
PS
- fix second layer disable
PS
- reflect new sensitivy steps in edge service patchset
  (1 minimum, 10 maxium)....pie default to 8 high sensitivy
  if someone need mor increase it
- in general made it per default a bit more sensitiv
- fix bug with trds switch on reconstruing statusbar to
  restore last correct state
- cleanup the inline comments
PS
- minor tweaks
PS
- fix reported wrong icon sizing of some apps which do not follow
aosp default sizes
PS
- fix race conditions on init
PS
- attach basestatusbar directly to PieController and pass to PieView to simplify
  recents loading
- cleaned up some method and var definitions
PS
- remove obsolete null check

Change-Id: I3b28b8155a668f2c9b32aac4cd294b79ac3f3eb9
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>

Conflicts:
	core/java/com/android/internal/statusbar/IStatusBar.aidl
	core/java/com/android/internal/statusbar/IStatusBarService.aidl
	core/java/com/android/internal/util/cm/NavigationRingConstants.java
	core/res/res/values/cm_strings.xml
	packages/SystemUI/res/values/cm_strings.xml
	packages/SystemUI/res/values/config.xml
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
	services/java/com/android/server/StatusBarManagerService.java
Frameworks: fix navbar and pie icons for tablets and RTL

well due that we use a completly other attempt then googles navbar we do not
need to rely on different sized icons for portrait and landscape. So just a square
icon fits our needs perfect (which is so or so everwhere in AOSP default to use square ones).

Whatever recents pie feature showed us that we still forgot to size the pictures for our tablets
and as well for RTL user.

So let us do it now to fix any resizing issues on navbar and or SlimPie

Change-Id: I5257b789a5450754a296141b0af63d2eacaa87c9
Framworks: clean up the AOSP tablet icon mess

well.....on grouper the overlay size for the navbar is/was 56dp...so
google added bigger icons then the usual ones into the sw600dp folders.
Well newer tablets have 48dp as default like the phones so the slightly bigger
icons do not fit 100% correct. It is not much but it is noticable.

So all devices have same navbar default height...so all icons should have same size
as well. Just remove the overlay icons so that the system automatically chooses the right
one from the default screen qualifier.

Change-Id: I4e4d87d70996ed1def359149cea829b5794f2448
Frameworks: EdgeGestureService give abbility to reduce the left and right trigger height if IME shows up

This patch gives the abbility that features can set the IME_CONTROL flag in addition to the position flags
to enable reducing trigger heights on the left and right edge to avoid conflicts with swipe keyboard.

Although the inputfilter lets come presses to the application trough the normal user behaviour is to start keyboard swiping
before they really even pressed the char button which results in conflicts with whatever feature is using the left and right
edge as trigger.

Features who want to use it need to set IME_CONTROL flag. As well if notification drawer was pulled down or global menu is
shown on top of the IME keyboard the original size gets restored till they are dismissed/closed

This patch adds only the support for it.

PS
- Fix small logic derp in BaseStatusBar
PS
- follow Josues suggestion and make the trigger a bit bigger

Change-Id: I51804d6e0768cc7770a6e52fac454dbad0ab632b
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>

Conflicts:
	core/java/android/inputmethodservice/InputMethodService.java
Frameworks: SlimPie give user ability to reduce trigger heights if IME keyboard shows (1/2)

Add a user option to reduce left and right trigger of SlimPie if keyboard shows up
(especially usefull for swipe keyboard which most keyboards are nowadays). Enabled
by default user can disable it in settings.

Change-Id: I5dce4f36f5b14320f806ac60ad75931fa7f2873b
Signed-off-by: siracuervo <fl.siracusa@outlook.com.ar>
Derp
Add missing strings
Some fixes
Revert "Quick Settings: Option to use floating window (1/2)"

This reverts commit 5df3f8f7db3839f52dd60054729d63259547e168.