package triaina.webview.receiver;
import java.util.Collection;
import triaina.webview.WebViewBridge;
import triaina.webview.entity.web.WiFiP2PDeviceParams;
import triaina.webview.entity.web.WiFiP2PDiscoverParams;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.p2p.WifiP2pDevice;
import android.net.wifi.p2p.WifiP2pDeviceList;
import android.net.wifi.p2p.WifiP2pManager;
import android.net.wifi.p2p.WifiP2pManager.Channel;
import android.net.wifi.p2p.WifiP2pManager.PeerListListener;
public class WiFiDirectBroadcastReceiver extends BroadcastReceiver implements
PeerListListener {
@SuppressWarnings("unused")
private static final String TAG = WiFiDirectBroadcastReceiver.class.getSimpleName();
private WifiP2pManager mManager;
private Channel mChannel;
private WebViewBridge mBridge;
private String mDiscoverDest;
public WiFiDirectBroadcastReceiver(WifiP2pManager manager, Channel channel,
WebViewBridge bridge, String discoverDest) {
super();
mManager = manager;
mChannel = channel;
mBridge = bridge;
mDiscoverDest = discoverDest;
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action))
mManager.requestPeers(mChannel, this);
}
@Override
public void onPeersAvailable(WifiP2pDeviceList peers) {
Collection<WifiP2pDevice> c = peers.getDeviceList();
WiFiP2PDeviceParams[] devices = new WiFiP2PDeviceParams[c.size()];
WiFiP2PDiscoverParams params = new WiFiP2PDiscoverParams();
int i = 0;
for (WifiP2pDevice d : c) {
devices[i] = new WiFiP2PDeviceParams();
devices[i].setDeviceName(d.deviceName);
devices[i].setDeviceAddress(d.deviceAddress);
i++;
}
params.setDevices(devices);
mBridge.call(mDiscoverDest, params);
}
}