Reimplement "[1/2] Lockscreen Notifications"

Signed-off-by : hany <hany@codexc.com>

authored by : David96

My try on making notifications easily accessable from lockscreen.
Credits to ChameleonOS, I got the notification listener permission and some small other stuff from their ActiveDisplay implementation.

Lockscreen Notifications allow you to manage all your notifications directly on the lockscreen.

Features:
- Pocket mode turn screen on when phone is pulled out of pocket and turn it off when phone gets back in pocket
- Hide low priority notifications
- Hide non-clearable notifications
- Allow dismissing even non-clearable notifications from lockscreen
- Just turn screen on when there's currently a notification pending
- Toggle between expanded and normal notification view by longpressing
- Keyguard: smooth background change.

This should still be considered as beta, even if it seems to work very well for me.

Change-Id: I98efd3cab0dd66126954b475c0d093c79ca3f766

Lockscreen Notifications: Make "wake on notifications" user configurable

and some other small changes that hopefully will improve battery live

Change-Id: I56209750fe36f564602c91dc70e28fb774c9dd40

Lockscreen notifications: make height user configurable [1/2]

Change-Id: Ia8ea8a5fa8338494037fc19edab0ab91b417d4a1

Lockscreen Notifications: fix possible NPE

Lockscreen Notifications: try on fixing notifications sometimes not responding

Lockscreen Notifications: always scroll to bottom so one sees the newest notification first

Lockscreen Notificaitons: Fix NPE while on setup wizard on clean flash

Lockscreen Notifications: several fixes

- fix notification not responding when removed and added in a short period of time (e.g. gravity screen start/stop)
- just unlock screen on notification click when there's an activity to start
- fix notification hide animation
- just wake screen on reposted notifications when it's not ongoing (wake on notification before made the device stay awake for ever when a download/countdown or something similiar was running)

Lockscreen Notifications: just scroll down in "showAllNotifications"

Lockscreen Notifications: Copyright

Lockscreen Notifications: make offset top user configurable & add privacy mode [1/2]

Lockscreen Notifications: Fix possible NPE

Lockscreen Notifications: make width dynamic (WRAP_CONTENT)

Change-Id: I98efd3cab0dd66126954b475c0d093c79ca3f766

Lockscreen Notifications: make animations a bit faster

Change-Id: Ib780ddfa728d70c559f22976a77090b1ddfb2562

Fix ongoing notifications reappearing when hidden

& some small animation tweaks again.

Change-Id: Ib866540e6af6cfc21bbb5db6e28aa3eced64e96d

Lockscreen Notifications: fix notifications disappearing on orientation change

Change-Id: I3c2f7ca3ec446c48b471f9c01f7c72284893856e

Lockscreen Notifications: disable dynamic width for devices <= xhdpi

Change-Id: Id45a8d63411b488f9331dcab66bc76cbe5a4b313

Lockscreen Notification: fix default settings derp

Change-Id: Ief7344359059d72b6498d9d9ce61dfd11b43f404

Lockscreen Notifications: fix phone turning on in pocket

Change-Id: Ia0385280510f1d684c5dcf537dd2049c6916ddec

[1/2] Base: Lockscreen notifications: Allow apps to be excluded from being displayed

&& respect quiet hours

Credits to 0xD34D / ChameleonOS for the original implementation for Active Display

Change-Id: Ie0df1faedb275b1cf131d75d69d9d9cafc828dd9

Use old see through when blur radius == 0

Change-Id: I75bf1e68373a95b35259b4097a009055446663d4

Conflicts:
	packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java
	services/java/com/android/server/power/DisplayPowerController.java