diff --git a/src/org/yaaic/command/CommandParser.java b/src/org/yaaic/command/CommandParser.java index e53e290..c92b636 100644 --- a/src/org/yaaic/command/CommandParser.java +++ b/src/org/yaaic/command/CommandParser.java @@ -31,6 +31,7 @@ import org.yaaic.command.handler.MeHandler; import org.yaaic.command.handler.NamesHandler; import org.yaaic.command.handler.NickHandler; import org.yaaic.command.handler.OpHandler; +import org.yaaic.command.handler.PartHandler; import org.yaaic.command.handler.QueryHandler; import org.yaaic.command.handler.QuitHandler; import org.yaaic.command.handler.TopicHandler; @@ -76,6 +77,7 @@ public class CommandParser commands.put("devoice", new DevoiceHandler()); commands.put("kick", new KickHandler()); commands.put("query", new QueryHandler()); + commands.put("part", new PartHandler()); // Aliases commands.put("j", commands.get("join")); @@ -132,9 +134,9 @@ public class CommandParser Message usageMessage = new Message("Syntax: " + command.getUsage()); conversation.addMessage(usageMessage); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, conversation.getName()); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, conversation.getName()); service.sendBroadcast(intent); } } @@ -145,9 +147,9 @@ public class CommandParser message.setColor(Message.COLOR_RED); conversation.addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, conversation.getName()); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, conversation.getName()); service.sendBroadcast(intent); } } diff --git a/src/org/yaaic/command/handler/EchoHandler.java b/src/org/yaaic/command/handler/EchoHandler.java index 59cabf6..ba2b5fa 100644 --- a/src/org/yaaic/command/handler/EchoHandler.java +++ b/src/org/yaaic/command/handler/EchoHandler.java @@ -47,9 +47,9 @@ public class EchoHandler extends BaseHandler Message message = new Message(BaseHandler.mergeParams(params)); conversation.addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, conversation.getName()); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, conversation.getName()); service.sendBroadcast(intent); } else { throw new CommandException("Text is missing"); diff --git a/src/org/yaaic/command/handler/MeHandler.java b/src/org/yaaic/command/handler/MeHandler.java index 39c15e5..26c2988 100644 --- a/src/org/yaaic/command/handler/MeHandler.java +++ b/src/org/yaaic/command/handler/MeHandler.java @@ -56,9 +56,9 @@ public class MeHandler extends BaseHandler message.setIcon(R.drawable.action); server.getConversation(conversation.getName()).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, conversation.getName()); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, conversation.getName()); service.sendBroadcast(intent); service.getConnection(server.getId()).sendAction(conversation.getName(), action); diff --git a/src/org/yaaic/command/handler/NamesHandler.java b/src/org/yaaic/command/handler/NamesHandler.java index dfb7548..6910982 100644 --- a/src/org/yaaic/command/handler/NamesHandler.java +++ b/src/org/yaaic/command/handler/NamesHandler.java @@ -60,9 +60,9 @@ public class NamesHandler extends BaseHandler message.setColor(Message.COLOR_YELLOW); conversation.addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, conversation.getName()); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, conversation.getName()); service.sendBroadcast(intent); } diff --git a/src/org/yaaic/command/handler/PartHandler.java b/src/org/yaaic/command/handler/PartHandler.java new file mode 100644 index 0000000..6e68606 --- /dev/null +++ b/src/org/yaaic/command/handler/PartHandler.java @@ -0,0 +1,65 @@ +/* + Yaaic - Yet Another Android IRC Client + +Copyright 2009 Sebastian Kaspari + +This file is part of Yaaic. + +Yaaic is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Yaaic is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Yaaic. If not, see . +*/ +package org.yaaic.command.handler; + +import org.yaaic.command.BaseHandler; +import org.yaaic.command.CommandException; +import org.yaaic.irc.IRCService; +import org.yaaic.model.Conversation; +import org.yaaic.model.Server; + +/** + * Command: /part [] + * + * Leave the current or the given channel + * + * @author Sebastian Kaspari + */ +public class PartHandler extends BaseHandler +{ + /** + * Execute /part + */ + @Override + public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException + { + if (params.length == 1) { + if (conversation.getType() != Conversation.TYPE_CHANNEL) { + throw new CommandException("Only usable from within a channel"); + } + + service.getConnection(server.getId()).partChannel(conversation.getName()); + } else if (params.length == 2) { + service.getConnection(server.getId()).partChannel(params[1]); + } else { + throw new CommandException("Invalid number of params"); + } + } + + /** + * Usage of /part + */ + @Override + public String getUsage() + { + return "/part []"; + } +} diff --git a/src/org/yaaic/command/handler/QueryHandler.java b/src/org/yaaic/command/handler/QueryHandler.java index 82bf865..a1c0143 100644 --- a/src/org/yaaic/command/handler/QueryHandler.java +++ b/src/org/yaaic/command/handler/QueryHandler.java @@ -59,9 +59,9 @@ public class QueryHandler extends BaseHandler server.addConversationl(new Query(params[1])); - Intent intent = new Intent(Broadcast.CHANNEL_NEW); + Intent intent = new Intent(Broadcast.CONVERSATION_NEW); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, params[1]); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, params[1]); service.sendBroadcast(intent); } else { throw new CommandException("Invalid number of params"); diff --git a/src/org/yaaic/irc/IRCConnection.java b/src/org/yaaic/irc/IRCConnection.java index b6ccc85..401a7b0 100644 --- a/src/org/yaaic/irc/IRCConnection.java +++ b/src/org/yaaic/irc/IRCConnection.java @@ -81,9 +81,9 @@ public class IRCConnection extends PircBot message.setColor(Message.COLOR_GREEN); server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, ServerInfo.DEFAULT_NAME); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, ServerInfo.DEFAULT_NAME); service.sendBroadcast(intent); } @@ -110,23 +110,23 @@ public class IRCConnection extends PircBot server.addConversationl(conversation); conversation.addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_NEW); - intent.putExtra(Broadcast.EXTRA_CHANNEL, sender); + Intent intent = new Intent(Broadcast.CONVERSATION_NEW); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, sender); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); service.sendBroadcast(intent); } else { - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, sender); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, sender); service.sendBroadcast(intent); } } else { // A action in a channel server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } } @@ -153,9 +153,9 @@ public class IRCConnection extends PircBot message.setColor(Message.COLOR_BLUE); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } @@ -172,9 +172,9 @@ public class IRCConnection extends PircBot message.setIcon(R.drawable.voice); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } @@ -189,9 +189,9 @@ public class IRCConnection extends PircBot Message message = new Message(sourceNick + " invited " + targetNick); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } @@ -207,8 +207,8 @@ public class IRCConnection extends PircBot // We joined a new channel server.addConversationl(new Channel(target)); - Intent intent = new Intent(Broadcast.CHANNEL_NEW); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + Intent intent = new Intent(Broadcast.CONVERSATION_NEW); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); service.sendBroadcast(intent); } else { @@ -217,9 +217,9 @@ public class IRCConnection extends PircBot message.setColor(Message.COLOR_GREEN); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } } @@ -236,18 +236,18 @@ public class IRCConnection extends PircBot // We are kicked server.removeConversation(target); - Intent intent = new Intent(Broadcast.CHANNEL_REMOVE); + Intent intent = new Intent(Broadcast.CONVERSATION_REMOVE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } else { Message message = new Message(kickerNick + " kicked " + recipientNick); message.setColor(Message.COLOR_GREEN); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } } @@ -266,9 +266,9 @@ public class IRCConnection extends PircBot Message message = new Message("<" + sender + "> " + text); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } @@ -304,9 +304,9 @@ public class IRCConnection extends PircBot message.setColor(Message.COLOR_GREEN); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } } @@ -334,9 +334,9 @@ public class IRCConnection extends PircBot message.setIcon(R.drawable.info); conversation.addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, conversation.getName()); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, conversation.getName()); service.sendBroadcast(intent); } @@ -353,9 +353,9 @@ public class IRCConnection extends PircBot message.setIcon(R.drawable.op); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } @@ -371,9 +371,9 @@ public class IRCConnection extends PircBot // We pareted a channel server.removeConversation(target); - Intent intent = new Intent(Broadcast.CHANNEL_REMOVE); + Intent intent = new Intent(Broadcast.CONVERSATION_REMOVE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } else { Message message = new Message(sender + " parted"); @@ -381,9 +381,9 @@ public class IRCConnection extends PircBot message.setIcon(R.drawable.part); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } } @@ -409,16 +409,16 @@ public class IRCConnection extends PircBot conversation.addMessage(message); server.addConversationl(conversation); - Intent intent = new Intent(Broadcast.CHANNEL_NEW); - intent.putExtra(Broadcast.EXTRA_CHANNEL, sender); + Intent intent = new Intent(Broadcast.CONVERSATION_NEW); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, sender); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); service.sendBroadcast(intent); } else { conversation.addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, sender); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, sender); service.sendBroadcast(intent); } } @@ -438,9 +438,9 @@ public class IRCConnection extends PircBot message.setIcon(R.drawable.quit); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } } else { @@ -469,9 +469,9 @@ public class IRCConnection extends PircBot // remember channel's topic ((Channel) server.getConversation(target)).setTopic(topic); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } @@ -499,9 +499,9 @@ public class IRCConnection extends PircBot message.setColor(Message.COLOR_BLUE); server.getConversation(target).addMessage(message); - Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); - intent.putExtra(Broadcast.EXTRA_CHANNEL, target); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, target); service.sendBroadcast(intent); } diff --git a/src/org/yaaic/model/Broadcast.java b/src/org/yaaic/model/Broadcast.java index 2f07d6c..2af5438 100644 --- a/src/org/yaaic/model/Broadcast.java +++ b/src/org/yaaic/model/Broadcast.java @@ -20,14 +20,19 @@ along with Yaaic. If not, see . */ package org.yaaic.model; +/** + * Constants and helpers for Broadcasts + * + * @author Sebastian Kaspari + */ public class Broadcast { - public static final String SERVER_UPDATE = "org.yaaic.server.status"; + public static final String SERVER_UPDATE = "org.yaaic.server.status"; - public static final String CHANNEL_MESSAGE = "org.yaaic.channel.message"; - public static final String CHANNEL_NEW = "org.yaaic.channel.new"; - public static final String CHANNEL_REMOVE = "org.yaaic.channel.remove"; - - public static final String EXTRA_CHANNEL = "channel"; - public static final String EXTRA_SERVER = "server"; + public static final String CONVERSATION_MESSAGE = "org.yaaic.conversation.message"; + public static final String CONVERSATION_NEW = "org.yaaic.conversation.new"; + public static final String CONVERSATION_REMOVE = "org.yaaic.conversation.remove"; + + public static final String EXTRA_SERVER = "server"; + public static final String EXTRA_CONVERSATION = "conversation"; } diff --git a/src/org/yaaic/receiver/ChannelReceiver.java b/src/org/yaaic/receiver/ChannelReceiver.java index e5821b2..dcd9dcd 100644 --- a/src/org/yaaic/receiver/ChannelReceiver.java +++ b/src/org/yaaic/receiver/ChannelReceiver.java @@ -56,12 +56,12 @@ public class ChannelReceiver extends BroadcastReceiver String action = intent.getAction(); - if (action.equals(Broadcast.CHANNEL_MESSAGE)) { - listener.onConversationMessage(intent.getExtras().getString(Broadcast.EXTRA_CHANNEL)); - } else if (action.equals(Broadcast.CHANNEL_NEW)) { - listener.onNewConversation(intent.getExtras().getString(Broadcast.EXTRA_CHANNEL)); - } else if (action.equals(Broadcast.CHANNEL_REMOVE)) { - intent.getExtras().getString(Broadcast.EXTRA_CHANNEL); + if (action.equals(Broadcast.CONVERSATION_MESSAGE)) { + listener.onConversationMessage(intent.getExtras().getString(Broadcast.EXTRA_CONVERSATION)); + } else if (action.equals(Broadcast.CONVERSATION_NEW)) { + listener.onNewConversation(intent.getExtras().getString(Broadcast.EXTRA_CONVERSATION)); + } else if (action.equals(Broadcast.CONVERSATION_REMOVE)) { + intent.getExtras().getString(Broadcast.EXTRA_CONVERSATION); } } diff --git a/src/org/yaaic/view/ConversationActivity.java b/src/org/yaaic/view/ConversationActivity.java index 7ac652b..9efd45e 100644 --- a/src/org/yaaic/view/ConversationActivity.java +++ b/src/org/yaaic/view/ConversationActivity.java @@ -126,9 +126,9 @@ public class ConversationActivity extends Activity implements ServiceConnection, bindService(intent, this, 0); channelReceiver = new ChannelReceiver(server.getId(), this); - registerReceiver(channelReceiver, new IntentFilter(Broadcast.CHANNEL_MESSAGE)); - registerReceiver(channelReceiver, new IntentFilter(Broadcast.CHANNEL_NEW)); - registerReceiver(channelReceiver, new IntentFilter(Broadcast.CHANNEL_REMOVE)); + registerReceiver(channelReceiver, new IntentFilter(Broadcast.CONVERSATION_MESSAGE)); + registerReceiver(channelReceiver, new IntentFilter(Broadcast.CONVERSATION_NEW)); + registerReceiver(channelReceiver, new IntentFilter(Broadcast.CONVERSATION_REMOVE)); serverReceiver = new ServerReceiver(this); registerReceiver(serverReceiver, new IntentFilter(Broadcast.SERVER_UPDATE));