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
CRs-Fixed: 486437

Conflicts:

	wifi/java/android/net/wifi/p2p/WifiP2pService.java
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
CRs-Fixed: 531439
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
FW: Fix Notification Shortcuts

All credits to SlimRoms for their awesome work on the Notifications shortcuts, this commit corrects the PAC code to the SlimRoms 4.3 implementation.

Unable to cherry-pick a commit to correct our code issues but the original commit retains authorship and all credits for this code are solely attributed to the SlimRoms team, I have only corrected the PAC code port of this feature.

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