Frameworks: port Peek from PA (1/2)

Sensors are fully disabled when screen is on. When you turn the screen off,
it will start polling both gyroscope and proximity sensor values. If it detects
using the gyroscope sensor that device is lying on a table, it disables proximity
polling. If it detects with proximity sensor that it is in your pocket, it disables
gyroscope polling. This way, we save some battery from the beginning. Later, when you
receive a notification, it enables a partial wakelock (CPU on but at low frequency),
and starts listening for movement, either from getting it out your pocket or lifting
off from the table. If it detects those events, it will turn on screen and show the notification.
Wakelock timeouts on 10 secs, so if you receive a notification and there is no movement in that time,
sensors will stop polling after that time, disabling peek interaction until a new notification comes.
Peek doesn't process low and min priority notifications.

https://plus.google.com/+ParanoidAndroidCorner/posts/3wppxakBSVR

Change-Id: I7f0cb08e973e70f7376749ca937f33624fa94168
frameworks: port floating windows

credit PA

Change-Id: I00361ccc30243404617cd937af23da5f7257bbb2
Apps: Add blacklist interface [1/2]

Include peek and floating mode implementations.
Applies to every floating mode launch way.

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

Conflicts:
	core/java/android/app/INotificationManager.aidl
	packages/SystemUI/res/values/pa_strings.xml

Change-Id: Ica523625c9061cf9c8d6c3d7df4acf6a125c4ead
frameworks: Port Hover from PA (1/2)

Notifications refined:
The way you handle with the incoming notifications defines how much you enjoy your device.
Hover shows you those notifications when you need them in a beautiful card that briefly appears
on your screen. For a detailed look of the notification, you can swipe down to expand some more
info, or you can tap it to open the related app using Gummy’s floating mode.

Introducing Hover:
https://plus.google.com/107979589566958860409/posts/DC4KyDd1cDC
https://plus.google.com/107979589566958860409/posts/BtWoGpNd8Fq

This is revision 4 of the original base by @D4rKn3sSyS . Hover works by moving the
notification view from statusBar container to Hover’s one and re-themes notifications
in the process. When hover is active it is the owner of the view, special care must
be taken to not  manipulate the statusbar reference while hoveris active.
Hover’s view state is managed by a handler based timer. When any touch event is received
or a gesture completed the timer is restarted, upon expiration of the timer hover is
hidden or will show next notification in the list if there is one (or more) to show.
The timer along with animation listeners  regulates the rate at which Hover can process new
notifications, acting as a spam filter for noisy applications. Upon first run a dialog is
displayed explaining Hover to new users. More infos in code’s documentation.

Change-Id: I81b0a7c9bd3e5895151a8fe3147b1d2daed81fc9
Floating window: Fix possible NPE

Avoid possible NPE if app provides no interface such as pushbullet's
test notification & other apps which provide one.

Change-Id: I6753f5903e9cce1acc771c457795ce4b1df1d98f
Don't log an error if we cannot open icon hash

The icons will end up being processed if we cannot access the hash
so let's just fail gracefully and silently.

Change-Id: I6368ee9bb47a9d52351fff22283ffac2de625b71
Updating ActivityIntentResolver so that queryIntents doesn't return protected applications.

Any calls from System UID(1000) are not filtered

Change-Id: I037cddaf91b6943b8cc837c5b046cf320c4caa5f
Fix icon support for secondary users.

This fixes the problem when switching to a secondary user and
icons are currently applied.  Prior to this patch the secondary
user would see droids as their icons and apps would FC at start.

Change-Id: Icd4275eae5868612bf2a81b375ac4d0779a61395
Don't create idmap if app doesn't have resources.arsc

Some apps do not have a restable but some legacy themes
try to theme these apps anyways. In this case we skip
the idmap creation process.

Change-Id: I8bc60984299791733d4fe8c9bbcaa75eca6d736b
Install themes and icon packs for secondary users.

Change-Id: I48ae6835223510a433642fced5b96b6c3954baf6
Remove DEFAULT_THEME_APPLIED_ON_FIRST_BOOT

doApplyDefaultTheme should be able to apply the default theme, if
one exists, whenever applyDefaultTheme() is called.

Change-Id: Ia50b4089d122855a4ddde91a02eef33ed3f9eaf4
Add status bar and navigation bar to ThemesContract

Change-Id: I8048c735d7bbbfdb86ee5923b95bece6b4252bf7
Add previews to the themes contract.

Change-Id: I607a6eda1c63a701516d2bc78ca6b705841fbdf7
WallpaperCropper: include wallpapers from themes!

Theme all the things!!!!!!!!!

Change-Id: Ie9d5d4dfe6533442188e38fa0b11742368246e37
Signed-off-by: Roman Birg <roman@cyngn.com>
Fix PackageManagerService WTF in systemReady()

This resolves the following error:
F/SystemServer(31979): BOOT FAILURE making Package Manager Service ready
F/SystemServer(31979): java.lang.SecurityException: Unable to find app for caller android.app.ActivityThread$ApplicationThread@42171630 (pid=31979) when registering receiver android.app.LoadedApk$ReceiverDispatcher$InnerReceiver@420d1130
F/SystemServer(31979):  at com.android.server.am.ActivityManagerService.registerReceiver(ActivityManagerService.java:13157)
F/SystemServer(31979):  at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1506)
F/SystemServer(31979):  at android.app.ContextImpl.registerReceiverAsUser(ContextImpl.java:1481)
F/SystemServer(31979):  at com.android.internal.content.PackageMonitor.register(PackageMonitor.java:84)
F/SystemServer(31979):  at com.android.server.pm.UserManagerService.systemReady(UserManagerService.java:237)
F/SystemServer(31979):  at com.android.server.pm.PackageManagerService.systemReady(PackageManagerService.java:11305)
F/SystemServer(31979):  at com.android.server.ServerThread.initAndLoop(SystemServer.java:1022)
F/SystemServer(31979):  at com.android.server.SystemServer.main(SystemServer.java:1372)
F/SystemServer(31979):  at java.lang.reflect.Method.invokeNative(Native Method)
F/SystemServer(31979):  at java.lang.reflect.Method.invoke(Method.java:515)
F/SystemServer(31979):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
F/SystemServer(31979):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
F/SystemServer(31979):  at dalvik.system.NativeStart.main(Native Method)

TODO: Revisit this in the future when Google updates AOSP for multiple
system contexts.

Change-Id: I74be7a7a3ba1ede55a8ccae7c86e7650b27f435e
Themes: Theme immersive mode cling.

Change-Id: I5521b93f69e859c40cfd62eb4a367562200074e9
PackageManager: Fix logic around upgrading text display

* This code has all threads writing into the integer keeping track of
  the number of packages at once.
* Make this integer an atomic one, preventing all threads from racing
  when updating it.

Change-Id: I727306f8ab20edb7ec2a955ca20e6de0146c7737
Remove inverted overlay
Notification drawer: full swipe to switch detection

Non-optional

Change-Id: I46520f7f69c58996136a2a8d6b189a2278faa289
fb: changed all open forgoten UI from google into new UI

thanks kroz

Change-Id: Ibc32ad8e73617dd74c8cd313dc2e071962eec966

Conflicts:
	core/res/res/drawable-xhdpi/cab_background_top_holo_dark.9.png
	core/res/res/drawable-xhdpi/cab_background_top_holo_light.9.png
	core/res/res/drawable-xxhdpi/cab_background_top_holo_dark.9.png
	core/res/res/drawable-xxhdpi/cab_background_top_holo_light.9.png