Floating Window: Welcome back

* Port squashed jellybean floating window to kitkat.

Floating window contributors:
@drcmda
@beerbong
@D4rKn3sSyS

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

Merge notification manager service changes.

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

Change-Id: If3d6338f657915754bd6cb9cb987df62c17aa6d0

Conflicts:
	services/java/com/android/server/NotificationManagerService.java
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
Launch floating notifications from notification panel (long click)

 * Status bar - long click on notification select 'floating mode' option

fix derp in floating notification launch

Notification long press fix

Conflicts:
	packages/SystemUI/res/menu/notification_popup_menu.xml
	packages/SystemUI/res/values/pa_strings.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java

Conflicts:
	packages/SystemUI/res/values/ras_strings.xml
Recents: Launch as Floating App

Ported from JB 4.3
Based on hybrid (Aaron) and Halo (Jesus) implementation

Signed-off-by: Alexis Rico <sferadev@gmail.com>
Change-Id: I84f4d3928af5c6ddd96a9a173a1c24e85ff606dd
Conflicts:
	packages/SystemUI/res/menu/recent_popup_menu.xml
	packages/SystemUI/res/values-ca/pa_strings.xml
	packages/SystemUI/res/values-es/pa_strings.xml
	packages/SystemUI/res/values/pa_strings.xml
	packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
Fix for launch app in floating mode from recents

Change-Id: I216b02a60cd46b7fef49e04fe090169c4703bcb6
Keep app when opening floating window from recents panel
Dismiss IME when floating window is dismissed

Previously the IME would be stuck on screen if the
floating window was dismissed while it was showing.

Original id from PA gerrit -> Change-Id: I8ca61b07ed89bae85eabd8db23f87b6f1f0b179f
Signed-off-by: Evan Anderson <evan@thelinuxman.us>

Change-Id: If38e65f61ba309d22306bf4b37c3c55630c006ed
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

Conflicts:
	core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
	packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
	packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
Toggle Last App: move toggle last app method to a separate class

Thanks@cristianomatos
Frameworks: LockBeforeUnlock the new way (1/2)

Due that aosp removed the whole LockBeforeUnlock controll (show slider
lockscreen before an unsecure internal lockscreen) we must try to find another way
without touching the security system itself. Long guess short solution, lmao

here it is, next SlimKat feature

cheers

PatchSet:
- bring eca button to front in lockbeforeunlock mode to make
  it clickable on slider lockscreen

adapted our 4.3 version to 4.4 and smaller fixes/code improvements

Change-Id: I6fa791d7e57b01aaa42a6eca99b07c22e4d83ad8

Conflicts:
	core/java/android/provider/Settings.java
	packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
Navring last app toggle (1/2)

Change-Id: I5f744732f39cd33c0ec7dcae23da0295f945c9a1

Conflicts:
	core/java/com/android/internal/util/rascarlo/NavigationRingConstants.java
	core/java/com/android/internal/util/rascarlo/NavigationRingHelpers.java
	core/res/res/values/cr_symbols.xml
	packages/SystemUI/src/com/android/systemui/rascarlo/ActionTarget.java
Framework: Shake to Temporarily Secure && Fixes(1/2)

PS2: Reduce bloat, grab correct user
	Dependency
PS3: Rebase correctly
PS4: Tired of working these commits into eachother
	correctly, merge into this one commit.
	Fix simpin && face unlock
	Disable shake security if device admin
	requires screen security of any sort
PS5: Hack to fix double-inflation on boot
	registers a listener that stays alive
	until you shake
PS6: Better logic from introduction in PS5
        && make the initial feature enabled
        boolean check for security enabled
        before processing everything else
        without reason.
PS7: Fix potential issue with timer
        && shake staying registered.  Still
        retains accuracy of  without
        unnecessary processing due to
        PS6's security check.

Commit changes: Shake to temporarily secure
	Fix all lock-before-unlock issues
	Shake to temporarily secure timer

Lock-Before-Unlock issues fixed:
	On rotate, secure lock is shown without
		slider.
	On boot, secure lock is shown without
		slider
	Widgets aren't focused correctly if
		screen is turned on twice
		without unlocking
	Unlock target cut-off in landscape
	Smaller unlock ring size && mismatched
		bouncer size

Change-Id: Id6b0b85d2c7d086e1bd1199d7206b1e96b345328

Conflicts:
	core/java/android/provider/Settings.java
	packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
Battery light customization
BatteryService: fix FC on boot until battery stat is present

updateLightsLocked() can be called from CM's added SettingsObserver
when battery stat is not present, causing an FC and a loop until
battery stat is present.

I/SystemServer(  502): Battery Service
E/System  (  502): ******************************************
E/System  (  502): ************ Failure starting core service
E/System  (  502): java.lang.NullPointerException
E/System  (  502): 	at com.android.server.BatteryService$Led.updateLightsLocked(BatteryService.java:735)
E/System  (  502): 	at com.android.server.BatteryService.updateLedPulse(BatteryService.java:709)
E/System  (  502): 	at com.android.server.BatteryService.access$1600(BatteryService.java:86)
E/System  (  502): 	at com.android.server.BatteryService$SettingsObserver.update(BatteryService.java:860)
E/System  (  502): 	at com.android.server.BatteryService$SettingsObserver.observe(BatteryService.java:822)
E/System  (  502): 	at com.android.server.BatteryService.<init>(BatteryService.java:187)
E/System  (  502): 	at com.android.server.ServerThread.initAndLoop(SystemServer.java:328)
E/System  (  502): 	at com.android.server.SystemServer.main(SystemServer.java:1309)
E/System  (  502): 	at java.lang.reflect.Method.invokeNative(Native Method)
E/System  (  502): 	at java.lang.reflect.Method.invoke(Method.java:515)
E/System  (  502): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
E/System  (  502): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/System  (  502): 	at dalvik.system.NativeStart.main(Native Method)

Change-Id: Ic4438fe50e98f1aa05ae1d0d26240bf9410fd92f
fb: make battery light multiuser configurable

Change-Id: Ife6e72fef8da08d287b0790b0dda0fa3bb50c815
[1/2] base: battery light settings

This also adds a new "level" for 100% full battery
to get rid of the comments from people who complain
that 90% is shown as full :)

required overlay:
    <!-- Is the battery LED intrusive? Used to decide if there should be a disable option -->
    <bool name="config_intrusiveBatteryLed">true</bool>

    This will enable if the battery light option is shown in settings

    <!-- Does the battery LED support multiple colors? Used to decide if the user can change the colors -->
    <bool name="config_multiColorBatteryLed">true</bool>

    Also set this for devices like the HTC one which has only
    two colors. This will be handled in the color selction dialog.
    Dont set if for devices like flo which only has white led

Change-Id: I6a173d19b4e1135174de73a9f528a61d81eb50da

Conflicts:
	services/java/com/android/server/BatteryService.java
[1/3]frameworks/base: add "Accept all files" option for incoming files via Bluetooth

This patch defines a key to store the option value in Settings Provider db

Change-Id: I993d7ec77b49f608a5a17e5a8516e52fc5d82946
PEEK: Beautify bridging layers code

* Save new instances for Peek and PowerManager:
    Create it only in BaseStatusBar when start() method is called. That one
    will be passed throught the sub layers such like new helper class so another
    feature can check Peek state invocking from NotificationHelper class.
* Move phone listener to new helper class.
* Do not show Peek on sim pin lock screen.
* Process new incoming notifications only if screen is off, keep updating notification array separately.
* General cleanup.

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

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
Revert "[1/2] Speed up booting on multicore devices."

This reverts commit 8aea8983b92c957db6dd41a89453b80790983766.
Battery led needs to respect quiet hours