Fix: FATAL exception during Autonomus group creation failure

Failure in forming an autonomus group causes FATAL IllegalArgumentException
exception as deviceAddress will be empty in mPeersLostDuringConnection.

Added check to verify if it is autonomus group before trying to remove
any peer or clear device list.

Change-Id: I486463782e85c7f0031b6f62ec5aaf8afb11b652
CRs-fixed:554767
(cherry picked from commit 55bb4f6dd9fc3e5c8aa7c8bc8ece01f0603e0a83)
(cherry picked from commit 3dbbf14276a403841e1d69cd2624dfad74d6f540)
(cherry picked from commit 8642fcd59686e54c1ea215016bfa7562d17b27c0)
frameworks/base: Fix delay in sending AUDIO_BECOMING_NOISY intent

AUDIO_BECOMING_NOISY intent is sent as background intent which causes
delay in receiving pause event. This delay caused audio leak. By
marking the event as FLAG_RECEIVER_FOREGROUND, this intent is
received sooner by Application.

Change-Id: Ib978cf8322dcddbc01f59824f95fa7800f9c35af
CRs-Fixed: 652549
WIFI: Fix wifi auto-connect to other saved APs during WPS PIN scanning.

During WPS PIN scanning and AP side not enter the PIN, continuously
turn off/on screen will sometimes cause the phone auto-connect to
other saved APs.

WifiStateMachine accepts screenOn event, and sometimes will enable
all networks.

This change will NOT enable all networks in screenOn event While wps
is running.

Change-Id: I539ee6020a8e2b2fa6892c88569c302f89e8f5ed
CRs-Fixed: 646433
Wifi: Add IBSS supported method

Add method isIbssSupported() to WifiManager and related classes to query wether
the driver supports IBSS mode. The query is answered by wpa_supplicants new
command "get_capability modes".

It will only return a correct result after WIFI_STATE_ENABLED has been
reached.

Change-Id: I93aa2fdff94cd897c91ec3beb7e58940d1de7b72
Wifi: Get the list of supported channels

Get the list of supported channels/frequencies from wpa_supplicant and provide
them thru WifiManager.getSupportedChannels();

One channel is represented thru the class WifiChannel which includes channel
number, frequency in MHz and a flag if IBSS mode is allowed on this channel.

Like isIbssSupported() we can only expect a result after WIFI_STATE_ENABLED has
been reached.

Change-Id: I9fc34642b9a0047f6871b180a3a7a69d47b7e2ff
Wifi: Enable Ad-Hoc (IBSS) network configuration

This adds two public but hidden variables to WifiConfiguration: isIBSS and
frequency. These are used for configuring IBSS mode.

WifiConfigStore is exended to get and set these variables to wpa_supplicant
(via WifiNative).

Change-Id: Iab02c3d738c05c2de036350ea77b78789213e357
Wifi: wifi not connecting, once the APN gets disabled state

APNs are disabled on select network and they are enabled on
receiving connected event. But forgetting an APN before the
connected event is received,will result all the remaining APN
to be in disabled state and they never connect.
So, Enabling all the disabled APN on forget network will help
to connect automatically to a saved APN.

Change-Id: I0aec08f118c3f33fceea60f5a6b44622717d93ed
CRs-fixed: 567655
wifi: Support for AP with Chinese GBK Charset SSID

It doesn't support Chinese GBK Charset in original android.
But there are some APs with Chinese GBK Charset SSID, it will result
in that wifi can't display these APs nomally and connect to these APs.
Here make a conversion in wifi JNI layer. When "SCAN" or "GET_NETWORK"
command has the reply with Chinese GBK Charset SSID, convert GBK to UTF-8.

CRs-Fixed: 497995
Change-Id: If4d1d5bc3a98490db55c69ebcc0c78d526b7a563

Wifi: get rid of the log from Gbk2Utf

In android_net_wifi_Gbk2Utf.cpp, we set DBG as true,
this should be false in default.

Change-Id: Ib5673f0817677887d6b050191d96edb33fdb8799
CRs-Fixed: 690860
Wifi: Add a feature to control wifi auto connect.

If wifi connection type and gsm to wifi connection type is auto connect,
auto connect wifi.
CRs-Fixed: 507965

Change-Id: Icbfc58c93f13e97a2b6c6526d154153031e4b77c

Conflicts:
	core/java/android/provider/Settings.java
	core/res/res/values/symbols.xml
P2P: Change supplicant scan intervel during WFD session

During WFD session supplicant scan intervel is one minute. If
there are some saved profiles, then supplicant will issue a scan
for every one minute, this is causing some ping latency in WFD.
    Hence supplicant scan intervel should change to five minutes
to improve ping latency in WFD session only.

Change-Id: If827bab6f186ebeaac90f297935bc8b987eb4d09
CRs-Fixed: 669404
WiFi: Fix data2Wifi caused not enableAllNetworks.

Use shouldAutoConnect() to judge if Wi-Fi networks have to get
enabled.
Ensure that the Wi-Fi networks are enabled in all the conditions
where the requirement for Auto Connection meet.
Thus, if there is no active Mobile Network, enable all the
Wi-Fi networks, though isDataToWifiAutoConn policy is not TRUE.

Change-Id: I082d0797347593ea6f878181908fea4bb64ca158
CRs-Fixed: 683197
WIFI: FIX wifi not auto-connect issue.

If the active network type is wifi, wifi connection type is auto,
auto connect to wifi.

This allows Wifi to auto-connect while wifi disconnected
for unexpected reason.

CRs-Fixed: 633648

Change-Id: I9f7f125cd7ffba18cbf5052e683cb31c6f71c573
Wifi: wifi not connecting, once the APN gets disabled state

APNs are disabled on select network and they are enabled on
receiving connected event.
But forgetting an APN before the connected event is received,
will result all the remaining APN to be in disabled state and
they never connect.
So, Enabling all the disabled APN on forget network will help
to connect automatically to a saved APN.

Change-Id: I6ac5e9856d6ec0b72c089b159206abd2de98e6a3
CRs-fixed: 496165
Wifi: fix auto connect policy for forgetNetwork

Use shouldAutoConnect() to judge if Wi-Fi networks have to get
enabled.
Thus, after forget network, if shouldAutoConnect() is false,
do not enable other saved networks to prevent auto connect.

Change-Id: I05b00bba54876f2d0d928e0faa9476b8d51b84b4
CRs-Fixed: 684684
P2P: Disable 5GHz channels in 2.4 GHz only mode

When P2P device is configured in 2.4GHz only mode supplicant
should not advertize 5GHz channels in its go negotiation frames.
  Hence disable 5GHz band channels when 2.4 GHz band only mode
selected in Wi-Fi advanced settings.

Change-Id: Ice8c9de34b19587c7e8432842a79551cc0e2333a
CRs-Fixed: 682823
Wi-Fi: Set BTCOEXMODE_DISABLED irrespective of BT's connection state

BTCOEXMODE_DISABLE has to be triggered during the DHCP phase even
on an active BT connection to ensure that Wi-Fi is given
preference over the BT.
This commit ensures the same
CRs-Fixed: 695307

Change-Id: I1eb979f03696831cb8f9e3a14b8a62f724347b64
Wifi: Handle P2P-REMOVE-AND-REFORM-GROUP event in GroupNegotiationState

Framework does not handle P2P-REMOVE-AND-REFORM-GROUP event
if it is in GroupNegotiationState and p2p-GO will continue to operate
in unsafe channel till it gets next P2P-REMOVE-AND-REFORM-GROUP event.

This commit adds handling of above event in GroupNegotiationState.

Change-Id: I956bbcd0200ddc3acde8b989a6e0950bdeca269e
CRs-fixed: 714368
wlan: Modify sequence of events sent during DHCP phase.

Modify sequence of events sent to driver during DHCP phase, to
make sure WLAN can enter into power save only after DHCP is done.

Change-Id: Idf7ed8d6e1c011bd3b7af9f5ca9d4db46de55fb0
CRs-Fixed: 719573
P2P:initiate provisioning on persistant group removed.

The initiator, on a response from the peer with unknown group during
the persistent reinvocation has to transit to the provisioning state
to handle all the config methods (PIN and PBC).
This commit ensures the same.

Change-Id: Iafd8e14681628c002f613172ad36a1da7efb5369
CRs-fixed: 653078
Wifi: Allow configuration of the P2P ifname

ICS used the same wifi.interface as the regular wifi service.
Let's use wifi.p2pinterface here, since they _can_ be different

Change-Id: Iab68b245b33377271354c849bbe33725a26193f1

Conflicts:
	wifi/java/android/net/wifi/p2p/WifiP2pService.java