server: add enhanced routing support

Add support for policy and metric based routing APIs to
NetworkManagementService. This functionality is used for WQE, IMS, and
Android QoS features.

Change-Id: I5e50185c9ac1cf72c9366815c2ecf590842edfca
frameworks/base: IPV6 tethering support

This patch adds two new API calls addUpstreamV6Interface and
removeUpstreamV6Interface to the tethering framework to pass the IPv6
upstream and downstream interfaces to netd if IPv6 is available.
Required to enable ICMPv6 forwarding.

Change-Id: I1f4f6284b2f152d8b4f0fbd02ac5a17f57c71dd7
Revert "wifi: Get full scan results"

This reverts commit b301684e954b6a1659bf7395b1732b658f2fc27e
CRs-fixed: 509553

Change-Id: Idafcf1ae25c2b9af42f71ee417cf73601c3199a7
wifi: LTECoex changes for SAP/P2P

Restart sap/P2P GO with safe channel list received from android
telephony layer, whenever sap/P2P GO is operating on an channel
interfering with LTE.

Change-Id: I3f5da86374dcb542ab4f11ac755eca0b2dc067c1
CRs-Fixed: 510273
P2P: Set wifi preferred channels when the supplicant is started.

Set wifi preferred channels when the supplicant is started, if
there are any safe channels from the previous LTE event received
from RIL. This is to ensure that p2p GO is always started on one
safe channels.

Change-Id: Ib0c36dbc4dfdec3721adb2f72d604158eeff9a87
CRs-Fixed: 523207
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
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
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.

Change-Id: Ic70c4147d8b34bcddf4bf70811a5aeb4ea0650bc
P2P: Do not restart SAP/P2P Go if its operating in 5G.

In case of LTE Coex since RIL always passes 2.4G channels,
if the SAP or P2P Go are operating on 5G channels when LTE
is camped, no need to restart SAP or P2P GO.

Change-Id: I5b0b5452a94bcbc0beeb44b25c34daf9e17ee482
p2p: Fix for discovery failure until AP is connected in WFD client.

When station is connecting to AP i.e wifi state is either
connecting or obtaing ip address, Wi-Fi state machine will
send BLOCK_DISCOVERY event to P2P service manager and discovery
is postponed until DHCP success/failure. During this if we
receive DISCOVER_PEERS command then p2p service manager will
return discovery failure because "mDiscoveryPostponed"
variable is not getting updated properly due to improper
condition checking.

To mitigate this issue modified the conditions to update
the variable "mDiscoveryPostponed".

CRs-Fixed: 532138

Change-Id: Ie92a42b17d264cfca5ec2af2dfb4db542deddaac
Add RegulatoryObserver to framework base services

RegulatoryObserver will catch country code change uevent and invoke crda.

Change-Id: I24e3a3d5a5f7c533e018b7cdbdf87998a40a89c1
frameworks/base/: Fix black wallpaper issue when home pressed.

In the specified usecase, there is a completely new set of
windows that appear on the screen during rotation. And the
existing code in the framework ignores the drawstate of the
hidden windows.

Wait till the drawState is ready for the hidden windows also.

CRs-Fixed: 521758

Change-Id: Ibd96502059c84210ad84ecb03aac5eca28f3c9fe
AppBar fixes

Change-Id: I0ac21702cffb21b3b5f8176ffcdc68e905d5dfa8
Partial rewrite of traffic indicator

[log]

- lower system impact: nothing runs when screen is off (previous version ran continuously unless the network speed indicator was disabled
- show summary of traffic when traffic stops (number of bytes in the current "burst")
- better formatting of the indicator

Remaining to improve:

- stop the indicator when the status bar is hidden (can't figure out how to get notifications when it does get hidden)

Change-Id: Iae248454a9f66979eb6c8148ac91faf820764831

Traffic meter: show summary of traffic in brackets

Change-Id: I00b056bc0076fdc9e3d573dfe4b0fb7c7aa11e0a

Update color

Change-Id: I25def4f1aee41f8dc216bbba10832b618d5f3a2a
Frameworks: TRDS new 4.3 png's

Change-Id: I1aab6a5d0e1c5e5f015a48060ead36a656c50941
Fix for the low processes kept bug

memoryInfo was not initialise properly

Change-Id: I3b1f1fac92a59a0a18b63625b66d33dc24b17086
Re-implement orientation aware volume buttons at lower level

Rework of http://review.cyanogenmod.org/31979

Fixes:
1. inconsistent volume button behaviour depending on app in use
   - the buttons not swapped for some NDK/OPENSL ES apps like
   e.g. MX Player
2. the function of volume buttons on external input devices like BT/USB
   keyboards should not be affected by the main unit orientation

This commit finishes http://review.cyanogenmod.org/18273 - use of system
property has been replaced with config push via JNI as suggested during
the original review.

Patch Set 2: Circumvent the need for "keyboard.orientationAware = 1" idc
Patch Set 3: Don't leak implementation details outside InputReader

Change-Id: I19cc60cb0acb0005ab13fa069f52e3d468d694e7
Hello touch sound

Change-Id: I6c66e5c9d46dac6f58e72d327952d41bc6a5d4ef
Active display: Don't show active display if call state is not idle

[log]

This will prevent active display from displaying when a call is
coming in and let the call screen show up instead of active display.

Change-Id: I2cb79e097ae24dc6ad6c8a33be88eb19f7d8d235
Gesture Anywhere: Add gesture anywhere feature into the ChaOS Lab [1/2]

When enabled a user can activate the gesture anywhere view by touching
the designated trigger area.  If a gesture is recognized as one the user
has created and assigned to an action, that action will be performed.
Since this is part of the system UI and implemented as an overlay, it
will be available and usable system wide, with the exception of the
keyguard for obvious reasons.

Change-Id: Ic47abb7531cecbdd33d344b9a32402f6ffed7163