Use updated API
Fetch peer details from broadcast instead of querying the whole list each time Change-Id: I57d82c9dc977d91675b5e5c99979732c80fb1a09
This commit is contained in:
@@ -34,7 +34,6 @@ import android.net.wifi.p2p.WifiP2pGroup;
|
|||||||
import android.net.wifi.p2p.WifiP2pGroupList;
|
import android.net.wifi.p2p.WifiP2pGroupList;
|
||||||
import android.net.wifi.p2p.WifiP2pManager;
|
import android.net.wifi.p2p.WifiP2pManager;
|
||||||
import android.net.wifi.p2p.WifiP2pManager.GroupInfoListener;
|
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.p2p.WifiP2pManager.PersistentGroupInfoListener;
|
||||||
import android.net.wifi.WpsInfo;
|
import android.net.wifi.WpsInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -66,7 +65,7 @@ import java.util.Collection;
|
|||||||
* Displays Wi-fi p2p settings UI
|
* Displays Wi-fi p2p settings UI
|
||||||
*/
|
*/
|
||||||
public class WifiP2pSettings extends SettingsPreferenceFragment
|
public class WifiP2pSettings extends SettingsPreferenceFragment
|
||||||
implements PeerListListener, PersistentGroupInfoListener, GroupInfoListener {
|
implements PersistentGroupInfoListener, GroupInfoListener {
|
||||||
|
|
||||||
private static final String TAG = "WifiP2pSettings";
|
private static final String TAG = "WifiP2pSettings";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = false;
|
||||||
@@ -116,9 +115,9 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
WifiP2pManager.WIFI_P2P_STATE_DISABLED) == WifiP2pManager.WIFI_P2P_STATE_ENABLED;
|
WifiP2pManager.WIFI_P2P_STATE_DISABLED) == WifiP2pManager.WIFI_P2P_STATE_ENABLED;
|
||||||
handleP2pStateChanged();
|
handleP2pStateChanged();
|
||||||
} else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {
|
} else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {
|
||||||
if (mWifiP2pManager != null) {
|
mPeers = (WifiP2pDeviceList) intent.getParcelableExtra(
|
||||||
mWifiP2pManager.requestPeers(mChannel, WifiP2pSettings.this);
|
WifiP2pManager.EXTRA_P2P_DEVICE_LIST);
|
||||||
}
|
handlePeersChanged();
|
||||||
} else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) {
|
} else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) {
|
||||||
if (mWifiP2pManager == null) return;
|
if (mWifiP2pManager == null) return;
|
||||||
NetworkInfo networkInfo = (NetworkInfo) intent.getParcelableExtra(
|
NetworkInfo networkInfo = (NetworkInfo) intent.getParcelableExtra(
|
||||||
@@ -463,13 +462,13 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onPeersAvailable(WifiP2pDeviceList peers) {
|
private void handlePeersChanged() {
|
||||||
mPeersGroup.removeAll();
|
mPeersGroup.removeAll();
|
||||||
|
|
||||||
mPeers = peers;
|
|
||||||
mConnectedDevices = 0;
|
mConnectedDevices = 0;
|
||||||
for (WifiP2pDevice peer: peers.getDeviceList()) {
|
if (DBG) Log.d(TAG, "List of available peers");
|
||||||
if (DBG) Log.d(TAG, " peer " + peer);
|
for (WifiP2pDevice peer: mPeers.getDeviceList()) {
|
||||||
|
if (DBG) Log.d(TAG, "-> " + peer);
|
||||||
mPeersGroup.addPreference(new WifiP2pPeer(getActivity(), peer));
|
mPeersGroup.addPreference(new WifiP2pPeer(getActivity(), peer));
|
||||||
if (peer.status == WifiP2pDevice.CONNECTED) mConnectedDevices++;
|
if (peer.status == WifiP2pDevice.CONNECTED) mConnectedDevices++;
|
||||||
}
|
}
|
||||||
@@ -505,9 +504,6 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
mPersistentGroup.setEnabled(true);
|
mPersistentGroup.setEnabled(true);
|
||||||
preferenceScreen.addPreference(mPersistentGroup);
|
preferenceScreen.addPreference(mPersistentGroup);
|
||||||
|
|
||||||
/* Request latest set of peers */
|
|
||||||
mWifiP2pManager.requestPeers(mChannel, WifiP2pSettings.this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user