Refresh peer list when entering wifi p2p settings

When wifi p2p is connected, entering Wi-Fi Direct UI won't show any peer devices
until a WIFI_P2P_PEERS_CHANGED_ACTION broadcast is received (long after or never).
Users may be confused and think p2p is disconnected. It's more user friendly to
display connected devices right at the beginning.

In addition, this CL removes the useless mWifiP2pManager.requestGroupInfo call.

Bug: 11175553
Change-Id: I0f0834043a2cf6e8fc20319e6861b62484478146
This commit is contained in:
Yuhao Zheng
2013-10-11 13:56:24 -07:00
parent 5e53e25e8d
commit 5d2169eb6f

View File

@@ -34,7 +34,7 @@ import android.net.wifi.p2p.WifiP2pDeviceList;
import android.net.wifi.p2p.WifiP2pGroup;
import android.net.wifi.p2p.WifiP2pGroupList;
import android.net.wifi.p2p.WifiP2pManager;
import android.net.wifi.p2p.WifiP2pManager.GroupInfoListener;
import android.net.wifi.p2p.WifiP2pManager.PeerListListener;
import android.net.wifi.p2p.WifiP2pManager.PersistentGroupInfoListener;
import android.net.wifi.WpsInfo;
import android.os.Bundle;
@@ -67,7 +67,7 @@ import java.util.Collection;
* Displays Wi-fi p2p settings UI
*/
public class WifiP2pSettings extends SettingsPreferenceFragment
implements PersistentGroupInfoListener, GroupInfoListener {
implements PersistentGroupInfoListener, PeerListListener {
private static final String TAG = "WifiP2pSettings";
private static final boolean DBG = false;
@@ -89,7 +89,6 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
private boolean mWifiP2pEnabled;
private boolean mWifiP2pSearching;
private int mConnectedDevices;
private WifiP2pGroup mConnectedGroup;
private boolean mLastGroupFormed = false;
private PreferenceGroup mPeersGroup;
@@ -129,9 +128,6 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
WifiP2pManager.EXTRA_NETWORK_INFO);
WifiP2pInfo wifip2pinfo = (WifiP2pInfo) intent.getParcelableExtra(
WifiP2pManager.EXTRA_WIFI_P2P_INFO);
if (mWifiP2pManager != null) {
mWifiP2pManager.requestGroupInfo(mChannel, WifiP2pSettings.this);
}
if (networkInfo.isConnected()) {
if (DBG) Log.d(TAG, "Connected");
} else if (mLastGroupFormed != true) {
@@ -320,12 +316,17 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
public void onResume() {
super.onResume();
getActivity().registerReceiver(mReceiver, mIntentFilter);
if (mWifiP2pManager != null) {
mWifiP2pManager.requestPeers(mChannel, WifiP2pSettings.this);
}
}
@Override
public void onPause() {
super.onPause();
if (mWifiP2pManager != null) {
mWifiP2pManager.stopPeerDiscovery(mChannel, null);
}
getActivity().unregisterReceiver(mReceiver);
}
@@ -534,10 +535,10 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
}
@Override
public void onGroupInfoAvailable(WifiP2pGroup group) {
if (DBG) Log.d(TAG, " group " + group);
mConnectedGroup = group;
updateDevicePref();
public void onPeersAvailable(WifiP2pDeviceList peers) {
if (DBG) Log.d(TAG, "Requested peers are available");
mPeers = peers;
handlePeersChanged();
}
private void handleP2pStateChanged() {