package us.nineworlds.serenity;
import java.util.concurrent.ConcurrentHashMap;
import javax.inject.Inject;
import us.nineworlds.serenity.core.model.Server;
import us.nineworlds.serenity.core.model.impl.GDMServer;
import us.nineworlds.serenity.core.services.GDMService;
import us.nineworlds.serenity.injection.ForMediaServers;
import us.nineworlds.serenity.injection.InjectingBroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class GDMReceiver extends InjectingBroadcastReceiver {
@Inject
@ForMediaServers
ConcurrentHashMap<String, Server> servers;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(GDMService.MSG_RECEIVED)) {
String message = intent.getStringExtra("data").trim();
String ipAddress = intent.getStringExtra("ipaddress").substring(1);
Server server = new GDMServer();
int namePos = message.indexOf("Name: ");
namePos += 6;
int crPos = message.indexOf("\r", namePos);
String serverName = message.substring(namePos, crPos);
server.setServerName(serverName);
server.setIPAddress(ipAddress);
if (!servers.containsKey(serverName)) {
servers.putIfAbsent(serverName, server);
Log.d(getClass().getName(), "Adding " + serverName);
} else {
Log.d(getClass().getName(), serverName + " already added.");
}
} else if (intent.getAction().equals(GDMService.SOCKET_CLOSED)) {
Log.i("GDMService", "Finished Searching");
}
}
}