Dispatch keys to a device specific key handler

Injects a device key handler into the input path to handle additional
keys (as found on some docks with a hardware keyboard).

Configurable via overlay settings config_deviceKeyHandlerLib and
config_deviceKeyHandlerClass.

Change-Id: I6678c89c7530fdb1d4d516ba4f1d2c9e30ce79a4

DeviceKeyHandle: The device should consume only known keys

When the device receive the key, only should consume it if the device
know about the key. Otherwise, the key must be handle by the active app.
Also make mDeviceKeyHandler private (is not useful outside this class)

Change-Id: I4b9ea57b802e8c8c88c8b93a63d510f5952b0700
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>

DeviceKeyHandler : Allow handling keyevents while screen off

Some devices require the keyevents to be processed while the screen
is off, this patchset addresses that by moving the filter up in the call
hierarchy.

Change-Id: If71beecc81aa5e453dcd08aba72b7bea5c210590
(cherry picked from commit 8786a6210d653ce514c08aaa0714746ea8ad24ae)
Support GESTURE_SENSOR input device type with GestureService

* The GESTURE_SENSOR input device type is meant to support touch sensors
  which are meant for gesture input only, very similar to a touchpad,
  but without the pointer capability.
* Define separate service to handle gestures from GESTURE_SENSOR device
  type.

Change-Id: I9b273df2a3cc141774d7f7cd81e43a90ea5b230b

Hide InputDevice.SOURCE_GESTURE_SENSOR from API

Change-Id: If009e9595fc593594b0e7764669996de137483a1

GestureInput : Allow doubletap/longpress configuration

Allows devices to specify pending intents for double tap and
long press events.

Change-Id: I7e7cc2f9f96a01d8f6232e5cf0e19832fdfd5359
(cherry picked from commit 8aaa1df7d1b933043b2a489878c5525a5543bfc6)
PackageManager: Prevent themes from going into ASEC containers

Themes on ASEC cause all kinds of random timing/racey issues at boot
time, and more kinds of racey concurrency issues at uninstall/upgrade
time. Stop them from getting into containers at all.

Change-Id: If08e90c51137b22239831a4eca17ea00d5d87d93
(cherry picked from commit c780081f72050415cb5d78789fc38d5db1ed0124)
input: Forward-port support for chained input filters

 * Original code by Jens Doll for Pie controls
 * Needed now to support the gesture sensor

Change-Id: I0b86d70f9a040ba5953e1820e9818df0f10091ee
(cherry picked from commit a069c26940f9c1de3d75b7eadf38e7389c255bc6)
frameworks/base: Fix race conditions on resume/suspend using power key

The wakelock PowerManagerService.Display sometimes cannot be released
after two quick power key pressings like a double click during phone
sleep (the target will resume then supposedly suspend shortly).

The second key event disturbs display power state on resume, as a
result display resources won't get released on suspend, which is fixed
in this change.

CRs-Fixed: 566059
Change-Id: I633fd377ab235f203ebfb649a74449a2385740c4
(cherry picked from commit eb9c46cbbcc18bbbe682892ffeb4fd2dec5ee44c)
Bluetooth: Fix RfComm socket cursor exceptions in STRICT MODE.

Perform ParcelFileDescriptor close after detach to avoid bluetooth
socket leaks in strict mode.

CRs-fixed: 572214

Change-Id: Ib0d7d08e17aa147573e9893af9b605fd42420500
(cherry picked from commit a0f6c714db8aa36f7d325e85f191545b47cea9b2)
audio: Fix for LPCM surround sound recording

 - Format WAVE was defined as 10, which is getting
 over-ridden by format THREE_GPP2 (which holds value 10),
 because of which Media recorder failed for LPCM SSR.
 - Fix this by defining format WAVE to 11.

Change-Id: I4db84441b70b28da3579e2ff430b42b2711f9404
(cherry picked from commit 51a7a83acae7bdc3e7a5392c9bad9a295436d618)
video: Add support for extended media listener

Added changes to handle additional message types for
dash playback.

Change-Id: Id07828866de8cae44137f26c1e74417aaa45704f
(cherry picked from commit 7900e16685ff7b40ad0f701de7cc974fe28252c8)
audio: Fix for volume level mismatch for AVRCP headset

-The volume level sent to AVRCP module from AudioService
 is incorrect.
-The volume level need to scale down for AVRCP module.
-Divide volume level by 10 to match AVRCP module volume
 levels.

Change-Id: Ieb8146797d0b552311b1a4782c45aea1be73e492
CRs-Fixed: 561649
(cherry picked from commit 5cffbc4ffae47d47bad8f67dddb2134ff2d25b7e)
base: Fix for wifi tethering crash

Pass network info along with CMD_UPSTREAM_CHANGED
Added a NULL check for Network info in CMD_UPSTREAM_CHANGED

CRs-fixed: 562910
Change-Id: I98bd37205255d9d4025cfb95b0688c68bce3c9bd
(cherry picked from commit a8fc17da415595a5398e95671cd1095faab166a0)
Show PIN on Peer device on receiving PIN display request.

P2P provision discovery would request the peer to display a PIN.
The PIN is displayed handling the request, the PIN need to be
entered on keypad of requested peer device to achieve the
connection.

Change-Id: I8b6487681d78eb10c558983a08dec1ac8a8eee65
CRs-fixed: 382608
(cherry picked from commit 481fd60d0372733a276561bf5e92633c87089124)
wifi: Fix for connection between GO and p2p device

When GO sends an invitation request to the p2p device without
persistent profile, GO gets an invitation result=8 which means
unknown group, when GO receives invitation result 8, its tries
to remove persistent profile of the client but it will not be able
find the profile so it does continue with sending the invitation
so the connection fails. To address this, ignore if there are no
persistent profiles found for the client and continue with sending
the Invitation request to the client to make connection succesful
connection. As GO has single profile saved unlike client which
saves multiple profiles of GO.

CRs-Fixed: 511282
Change-Id: I78f54d4bb2f0d603bc2170ec2c3ef55a91050236
(cherry picked from commit d5c47a9ebf910913f2e673cced05236af3f0e84c)
p2p:Fix for discovery failure until STA is connected to AP.

The station when connecting to AP (wifi state is either
connecting or obtaining ip address) shall stop the already
issued p2p_find on the DHCP start and start the same after
the DHCP handshake. p2p service manager shall return a failure
for any p2p_find operation during these period resulting in a
discover failure.
Address this by deferring the p2p_find issued during this period
(set mDiscoveryPostponed to true) rather than returning a failure.

Change-Id: I40b2017bf126fd0d543ada8853223402cda63e9d
CRs-Fixed: 532138
(cherry picked from commit 585dcda2da633abf9ae6742324a26d62549ab3bf)
framework:Thread synchronization for UI update

Issue : Framework reboot was observed due to out of sync between
        two threads which inturn causes Null pointer exception
        while updating airplanemode.
Fix : Handled Null pointer exception and the crash is not observed.
CRs-Fixed: 570122

Change-Id: I2e969f6e7726ffcf8648b366ebb54cb2b0afc292
(cherry picked from commit d3bdbc31f81136d39364097b4c14948eb22a28d8)

Conflicts:
	policy/src/com/android/internal/policy/impl/GlobalActions.java
P2P: Fix for GO inviting a p2p device.

A p2p device on an invitation request from the peer invokes
p2p_peer command to know if the peer is a p2p device / GO.
Due to the cached entries there would be a possibility of
not getting the updated information, ending up in the wrong
negotiation with the invited peer. Thus do not rely on
p2p_peer command, rather assume that the peer is a GO on an
invitation request, provided there is no persistent network
configured.

CRs-Fixed: 486437
Change-Id: Ifaeb6a8c5f9cddd7df96622056541e22aad74314
(cherry picked from commit 40473855f412ed841753eabd3a98a18344a16e5c)
ActivityManager: Donot take launcher screenshot.

Currently ActivityManger takes screenshot for all activities
on an activity switch, for maintaining the screenshots in recent
app list. This can be skipped for launcher, as launcher is not
present in the recent app list.

Change-Id: I22f7cda2c63483ab50e0df4428151503892b7d9b
(cherry picked from commit bbb47cfc9291602cc146a8c078cf2cbe4bbe7f48)
ActivityTrigger:  New class to invoke when activity starts/resumes

Change-Id: I46fa419e7b97953ba5581ee03127f0e3f93e48f0
(cherry picked from commit 71a57d30370584488a246a904750e7bdad5ba9a0)
(cherry picked from commit 5d2abff8e4d399e6bd320ea11bf672ad3b3be980)
(cherry picked from commit ffd89bcf976985acf0392c0dd667f8b5241d77ac)

frameworks/base: update perflock path name in Activity Trigger

Update the perflock path name and add
backup path for backward compatibility

Change-Id: I3d2c6f6fe1b3c63ec02827d06d5af667266db8d5
(cherry picked from commit 4db57e5021c4091352f40f6e4399b0b929f63151)
(cherry picked from commit b9fc7b99697a1b2f891dc642ff27c8a4194ca79d)
(cherry picked from commit 5910b639f0dea078049e31718e00bede2eb2ec00)

frameworks/base: update library path name in Activity Trigger

Change path from /system/lib to /vendor/lib
since it is no longer needed.

Change-Id: I5fa7a367b21d4128c92ab7190944c176a1f4dae6
(cherry picked from commit 7abea046455c1c8fc99126ae6cf9a6d4823ca50f)
(cherry picked from commit 5aadc3f081bef5b26b13e0bb4955354e3be0bcd7)
(cherry picked from commit 133db12892589a21865a900c3709073ed86eaf8a)
(cherry picked from commit c5bb1bbd0a59640ec394ee729b57de34295a4e99)
Remove opaque check in preparing dirty region

Since preserve swap is enabled, we need to clear the color buffer
when the scissor rect is prepared for a new process. This prevents
garbage being present from the previous process in the color buffer.

CRs-Fixed: 549755

Change-Id: Icd12ae388077b8c9ed329c37314e896500078543
(cherry picked from commit 48b6a9767317e08a24e189c9cbee21043543682a)
(cherry picked from commit 777610a5ddf19cebcad30b7e9a481e9dfe38b74c)
(cherry picked from commit b4cfbb3c993f5352f2bf6612a092c36b61825efb)
Update the layer's alpha value upon composition of the layer

Fixes: This patch makes sure that the layer's alpha value is
up-to-date and does not reflect the previous view's alpha value.
It fixes the square block on marquee fading edge when text view
is applied transparency.

CRs-Fixed: 562000

Change-Id: I397308b739f5f4fe4b630cf594825f401c97e0e3
(cherry picked from commit 67a46b2fe56cdfc65a67f47fc4634a1e2a0cdaf2)

Conflicts:
	libs/hwui/OpenGLRenderer.cpp
Fix stencil buffer bug.

Stencil test is enabled by setStencilFromClip(), but not disabled
in some use case, which causes some of the pixels are discarded by
mistake in draws followed. Disable stencil test when there is no
dirty clip.

CRs-Fixed: 539456

Change-Id: I318fb47212e49e2da89bcbfd161a1689ef91b02f
(cherry picked from commit 525c2c35a8739c8cf026e38c73cd8e229d8748d0)