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
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

Conflicts:
	wifi/java/android/net/wifi/WifiNative.java
	wifi/java/android/net/wifi/WifiStateMachine.java
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

Conflicts:
	wifi/java/android/net/wifi/p2p/WifiP2pService.java
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