@Override public void handle(IEvent event) { if (event instanceof MessageReceivedEvent) { MessageReceivedEvent ev = (MessageReceivedEvent) event; collectionHandler.onDataCollected(ev.message, ev.senderID); return; } if (event instanceof SendBroadcastMessageEvent) { SendBroadcastMessageEvent ev = (SendBroadcastMessageEvent) event; sendBroadcast(ev.message); return; } if (event instanceof SendUnicastMessageEvent) { SendUnicastMessageEvent ev = (SendUnicastMessageEvent) event; sendUnicast(ev.recipient, ev.message); return; } if (event instanceof WiFiInfoCollectedEvent) { WiFiInfoCollectedEvent ev = (WiFiInfoCollectedEvent) event; groupOwnerAddress = ev.wifiConnectionInfo.groupOwnerAddress.getCanonicalHostName(); isGroupOwner = ev.wifiConnectionInfo.isGroupOwner; return; } if (event instanceof UpdateStatusEvent) { UpdateStatusEvent ev = (UpdateStatusEvent) event; Message message = new Message(); message.what = GuiHandlerInterface.PROGRESS_MESSAGE; message.obj = ev.status; guiHandler.sendMessage(message); return; } }
/** * Constructor * * @param context */ public AppController( Context context, GuiHandlerInterface guiHandlerInterface, TransportSelectorFilter filter) { this.context = context; this.guiHandler = guiHandlerInterface.getGuiHandler(); collectionHandler.setWiFiController(this); // manager and channel initialization manager = (WifiP2pManager) context.getSystemService(Context.WIFI_P2P_SERVICE); channel = manager.initialize(context, context.getMainLooper(), null); // Register intent filter to receive specific intents broadcastReceiverIntentFilter = new IntentFilter(); broadcastReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION); broadcastReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION); broadcastReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION); broadcastReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION); // Setting static field which contains device MAC address MAC_ADDRESS = getDeviceMacAddress(); logger.d("il MAC address del dispositivo è = " + MAC_ADDRESS); // Force creation of TransportManager TransmissionManager.getInstance().setFilter(filter); register(); }