From af676f610a3d5815f6c58e1a1d725551e0cca184 Mon Sep 17 00:00:00 2001 From: Sebastian Kaspari Date: Sat, 13 Mar 2010 18:47:47 +0100 Subject: [PATCH] Implemented: /notice --- src/org/yaaic/command/CommandParser.java | 2 + .../yaaic/command/handler/NoticeHandler.java | 75 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 src/org/yaaic/command/handler/NoticeHandler.java diff --git a/src/org/yaaic/command/CommandParser.java b/src/org/yaaic/command/CommandParser.java index 5178b89..85638b7 100644 --- a/src/org/yaaic/command/CommandParser.java +++ b/src/org/yaaic/command/CommandParser.java @@ -31,6 +31,7 @@ import org.yaaic.command.handler.KickHandler; import org.yaaic.command.handler.MeHandler; import org.yaaic.command.handler.NamesHandler; import org.yaaic.command.handler.NickHandler; +import org.yaaic.command.handler.NoticeHandler; import org.yaaic.command.handler.OpHandler; import org.yaaic.command.handler.PartHandler; import org.yaaic.command.handler.QueryHandler; @@ -80,6 +81,7 @@ public class CommandParser commands.put("query", new QueryHandler()); commands.put("part", new PartHandler()); commands.put("close", new CloseHandler()); + commands.put("notice", new NoticeHandler()); // Aliases commands.put("j", commands.get("join")); diff --git a/src/org/yaaic/command/handler/NoticeHandler.java b/src/org/yaaic/command/handler/NoticeHandler.java new file mode 100644 index 0000000..0b3683a --- /dev/null +++ b/src/org/yaaic/command/handler/NoticeHandler.java @@ -0,0 +1,75 @@ +/* +Yaaic - Yet Another Android IRC Client + +Copyright 2009-2010 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.R; +import org.yaaic.command.BaseHandler; +import org.yaaic.command.CommandException; +import org.yaaic.irc.IRCService; +import org.yaaic.model.Broadcast; +import org.yaaic.model.Conversation; +import org.yaaic.model.Message; +import org.yaaic.model.Server; + +import android.content.Intent; + +/** + * Command: /notice + * + * Send a notice to an other user + * + * @author Sebastian Kaspari + */ +public class NoticeHandler extends BaseHandler +{ + /** + * Execute /notice + */ + @Override + public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException + { + if (params.length > 2) { + String text = BaseHandler.mergeParams(params); + + Message message = new Message(">" + params[1] + "< " + text); + message.setIcon(R.drawable.info); + conversation.addMessage(message); + + Intent intent = new Intent(Broadcast.CONVERSATION_MESSAGE); + intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); + intent.putExtra(Broadcast.EXTRA_CONVERSATION, conversation.getName()); + service.sendBroadcast(intent); + + service.getConnection(server.getId()).sendNotice(params[1], text); + } else { + throw new CommandException("Invalid number of params"); + } + } + + /** + * Usage of /notice + */ + @Override + public String getUsage() + { + return "/notice "; + } +}