1
0
mirror of https://github.com/moparisthebest/Yaaic synced 2025-02-17 23:40:20 -05:00

ServerActivity: register for server broadcasts and update view

This commit is contained in:
Sebastian Kaspari 2010-03-10 23:28:49 +01:00
parent 35f430ad9b
commit fa9cdd5f1d

View File

@ -55,25 +55,28 @@ import org.yaaic.command.CommandParser;
import org.yaaic.irc.IRCBinder; import org.yaaic.irc.IRCBinder;
import org.yaaic.irc.IRCService; import org.yaaic.irc.IRCService;
import org.yaaic.listener.ChannelListener; import org.yaaic.listener.ChannelListener;
import org.yaaic.listener.ServerListener;
import org.yaaic.model.Broadcast; import org.yaaic.model.Broadcast;
import org.yaaic.model.Conversation; import org.yaaic.model.Conversation;
import org.yaaic.model.Message; import org.yaaic.model.Message;
import org.yaaic.model.Server; import org.yaaic.model.Server;
import org.yaaic.receiver.ChannelReceiver; import org.yaaic.receiver.ChannelReceiver;
import org.yaaic.receiver.ServerReceiver;
/** /**
* The server view with a scrollable list of all channels * The server view with a scrollable list of all channels
* *
* @author Sebastian Kaspari <sebastian@yaaic.org> * @author Sebastian Kaspari <sebastian@yaaic.org>
*/ */
public class ServerActivity extends Activity implements ServiceConnection, ChannelListener, OnItemClickListener, OnKeyListener, OnItemSelectedListener public class ServerActivity extends Activity implements ServiceConnection, ServerListener, ChannelListener, OnItemClickListener, OnKeyListener, OnItemSelectedListener
{ {
public static final String TAG = "Yaaic/ServerActivity"; public static final String TAG = "Yaaic/ServerActivity";
private int serverId; private int serverId;
private Server server; private Server server;
private IRCBinder binder; private IRCBinder binder;
private ChannelReceiver receiver; private ChannelReceiver channelReceiver;
private ServerReceiver serverReceiver;
private ViewSwitcher switcher; private ViewSwitcher switcher;
private Gallery deck; private Gallery deck;
@ -96,12 +99,7 @@ public class ServerActivity extends Activity implements ServiceConnection, Chann
((TextView) findViewById(R.id.title)).setText(server.getTitle()); ((TextView) findViewById(R.id.title)).setText(server.getTitle());
((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon()); ((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon());
EditText input = (EditText) findViewById(R.id.input); ((EditText) findViewById(R.id.input)).setOnKeyListener(this);
input.setOnKeyListener(this);
if (!server.isConnected()) {
input.setEnabled(false);
}
deck = (Gallery) findViewById(R.id.deck); deck = (Gallery) findViewById(R.id.deck);
deck.setOnItemSelectedListener(this); deck.setOnItemSelectedListener(this);
@ -127,10 +125,17 @@ public class ServerActivity extends Activity implements ServiceConnection, Chann
Intent intent = new Intent(this, IRCService.class); Intent intent = new Intent(this, IRCService.class);
bindService(intent, this, 0); bindService(intent, this, 0);
receiver = new ChannelReceiver(server.getId(), this); channelReceiver = new ChannelReceiver(server.getId(), this);
registerReceiver(receiver, new IntentFilter(Broadcast.CHANNEL_MESSAGE)); registerReceiver(channelReceiver, new IntentFilter(Broadcast.CHANNEL_MESSAGE));
registerReceiver(receiver, new IntentFilter(Broadcast.CHANNEL_NEW)); registerReceiver(channelReceiver, new IntentFilter(Broadcast.CHANNEL_NEW));
registerReceiver(receiver, new IntentFilter(Broadcast.CHANNEL_REMOVE)); registerReceiver(channelReceiver, new IntentFilter(Broadcast.CHANNEL_REMOVE));
serverReceiver = new ServerReceiver(this);
registerReceiver(serverReceiver, new IntentFilter(Broadcast.SERVER_UPDATE));
if (!server.isConnected()) {
((EditText) findViewById(R.id.input)).setEnabled(false);
}
} }
/** /**
@ -142,7 +147,8 @@ public class ServerActivity extends Activity implements ServiceConnection, Chann
super.onPause(); super.onPause();
unbindService(this); unbindService(this);
unregisterReceiver(receiver); unregisterReceiver(channelReceiver);
unregisterReceiver(serverReceiver);
} }
/** /**
@ -261,6 +267,29 @@ public class ServerActivity extends Activity implements ServiceConnection, Chann
deck.setSelection(deckAdapter.getCount() - 1); deck.setSelection(deckAdapter.getCount() - 1);
} }
} }
/**
* On channel remove
*/
public void onRemoveConversation(String target)
{
// XXX: Implement me :)
}
/**
* On server status update
*/
public void onStatusUpdate()
{
((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon());
EditText input = (EditText) findViewById(R.id.input);
if (server.isConnected()) {
input.setEnabled(true);
} else {
input.setEnabled(false);
}
}
/** /**
* On Channel item clicked * On Channel item clicked
@ -308,14 +337,6 @@ public class ServerActivity extends Activity implements ServiceConnection, Chann
} }
} }
/**
* On channel remove
*/
public void onRemoveConversation(String target)
{
// XXX: Implement me :)
}
/** /**
* On key pressed (input line) * On key pressed (input line)
*/ */