diff --git a/application/AndroidManifest.xml b/application/AndroidManifest.xml
index a9c46ef..ded2be8 100644
--- a/application/AndroidManifest.xml
+++ b/application/AndroidManifest.xml
@@ -20,12 +20,12 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
+ package="org.yaaic"
+ android:versionCode="7"
+ android:versionName="0.6">
+ android:icon="@drawable/icon"
+ android:label="Yaaic">
.
-
-
-
-
-
-
+
+
+
+
+
+
.
android:theme="@android:style/Theme.Dialog">
+ android:name=".activity.AddAliasActivity"
+ android:theme="@android:style/Theme.Dialog">
-
+ android:name=".activity.AddChannelActivity"
+ android:theme="@android:style/Theme.Dialog">
+
-
+ android:name=".activity.AddCommandsActivity"
+ android:theme="@android:style/Theme.Dialog">
+
-
+ android:name=".activity.MessageActivity"
+ android:theme="@android:style/Theme.Dialog">
+
-
+ android:name=".activity.UserActivity"
+ android:theme="@android:style/Theme.Dialog">
+
diff --git a/application/res/layout/about.xml b/application/res/layout/about.xml
index 4e822e4..ab6c3f9 100644
--- a/application/res/layout/about.xml
+++ b/application/res/layout/about.xml
@@ -26,50 +26,50 @@ along with Yaaic. If not, see .
android:layout_height="fill_parent"
android:padding="10px">
-
-
-
-
-
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Yaaic"
+ android:textSize="16px"
+ android:gravity="center_horizontal"
+ android:textColor="#FF6CB600" />
+
+
+
+
+
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/app_copyright"
+ android:textSize="12px"
+ android:gravity="center_horizontal" />
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/app_homepage"
+ android:linksClickable="true"
+ android:autoLink="web"
+ android:textColorLink="#FF6CB600"
+ android:textSize="16px"
+ android:gravity="center_horizontal" />
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/licence_info"
+ android:textSize="12px" />
\ No newline at end of file
diff --git a/application/res/layout/aliasadd.xml b/application/res/layout/aliasadd.xml
index b027435..04aad9e 100644
--- a/application/res/layout/aliasadd.xml
+++ b/application/res/layout/aliasadd.xml
@@ -1,48 +1,48 @@
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/alias_add_description"
+ android:padding="5px" />
-
-
-
-
-
-
-
-
+ android:id="@+id/aliases"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+
+
+
+
+
+
+
diff --git a/application/res/layout/aliasitem.xml b/application/res/layout/aliasitem.xml
index 2548570..ea6a25b 100644
--- a/application/res/layout/aliasitem.xml
+++ b/application/res/layout/aliasitem.xml
@@ -1,8 +1,8 @@
+ android:id="@+id/host"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="7px"
+ android:text=""
+ android:textSize="12px" />
diff --git a/application/res/layout/channeladd.xml b/application/res/layout/channeladd.xml
index 233eef7..e42f8f5 100644
--- a/application/res/layout/channeladd.xml
+++ b/application/res/layout/channeladd.xml
@@ -20,49 +20,49 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/channel_add_description"
+ android:padding="5px" />
-
-
-
-
-
-
-
-
+ android:id="@+id/channels"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/res/layout/channeldialog.xml b/application/res/layout/channeldialog.xml
index 47362bb..7dc1134 100644
--- a/application/res/layout/channeldialog.xml
+++ b/application/res/layout/channeldialog.xml
@@ -20,10 +20,10 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:padding="3px">
.
-->
\ No newline at end of file
+ android:id="@+id/host"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="7px"
+ android:text=""
+ android:textSize="12px" />
\ No newline at end of file
diff --git a/application/res/layout/commandadd.xml b/application/res/layout/commandadd.xml
index 85f68d6..1d6f4bd 100644
--- a/application/res/layout/commandadd.xml
+++ b/application/res/layout/commandadd.xml
@@ -20,49 +20,49 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/command_add_description"
+ android:padding="5px" />
-
-
-
-
-
-
-
-
+ android:id="@+id/commands"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/res/layout/commanditem.xml b/application/res/layout/commanditem.xml
index 1a69a26..6671250 100644
--- a/application/res/layout/commanditem.xml
+++ b/application/res/layout/commanditem.xml
@@ -20,9 +20,9 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
\ No newline at end of file
+ android:id="@+id/host"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="7px"
+ android:text=""
+ android:textSize="12px" />
\ No newline at end of file
diff --git a/application/res/layout/conversations.xml b/application/res/layout/conversations.xml
index a1c61f8..912741b 100644
--- a/application/res/layout/conversations.xml
+++ b/application/res/layout/conversations.xml
@@ -26,56 +26,56 @@ along with Yaaic. If not, see .
android:layout_height="fill_parent"
android:background="#ff181818">
-
-
-
-
+
+
+
+
-
+
-
-
-
-
+
+
+
-
-
+
\ No newline at end of file
diff --git a/application/res/layout/join.xml b/application/res/layout/join.xml
index b292182..c26a96f 100644
--- a/application/res/layout/join.xml
+++ b/application/res/layout/join.xml
@@ -20,21 +20,21 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
-
+ android:id="@+id/channel"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:ems="10"
+ android:text="#" />
+
\ No newline at end of file
diff --git a/application/res/layout/message.xml b/application/res/layout/message.xml
index 2553500..d637b86 100644
--- a/application/res/layout/message.xml
+++ b/application/res/layout/message.xml
@@ -20,21 +20,21 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
-
-
+ android:id="@+id/message"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="10px"
+ android:autoLink="all"
+ android:linksClickable="true" />
+
+
\ No newline at end of file
diff --git a/application/res/layout/rounded.xml b/application/res/layout/rounded.xml
index ba0b9c7..7a626eb 100644
--- a/application/res/layout/rounded.xml
+++ b/application/res/layout/rounded.xml
@@ -20,21 +20,21 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
+ android:width="1px"
+ android:color="#55ffffff" />
-
-
+ android:left="3px"
+ android:top="3px"
+ android:right="3px"
+ android:bottom="3px" />
+
+
\ No newline at end of file
diff --git a/application/res/layout/serveradd.xml b/application/res/layout/serveradd.xml
index f3542a0..22cac2d 100644
--- a/application/res/layout/serveradd.xml
+++ b/application/res/layout/serveradd.xml
@@ -20,75 +20,75 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
-
-
-
-
-
-
-
-
-
-
-
-
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:scrollbarStyle="outsideInset">
+
+
+
+
+
+
+
+
+
+
+
+
.
android:text=""
android:singleLine="true" />
-
-
-
+
+
+
-
+
+ android:id="@+id/charset"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:prompt="@string/select_charset" />
-
-
+
-
-
+
+
\ No newline at end of file
diff --git a/application/res/layout/serveritem.xml b/application/res/layout/serveritem.xml
index 03a516d..0c83599 100644
--- a/application/res/layout/serveritem.xml
+++ b/application/res/layout/serveritem.xml
@@ -35,17 +35,17 @@ along with Yaaic. If not, see .
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="5px">
-
-
+
+
\ No newline at end of file
diff --git a/application/res/layout/user.xml b/application/res/layout/user.xml
index c44b2e1..5e06d6c 100644
--- a/application/res/layout/user.xml
+++ b/application/res/layout/user.xml
@@ -20,67 +20,67 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
-
-
-
-
-
-
-
-
-
-
-
-
+ android:id="@+id/nickname"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="10px"
+ android:autoLink="all"
+ android:linksClickable="true"
+ android:textSize="20px" />
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/res/layout/useritem.xml b/application/res/layout/useritem.xml
index 1a69a26..6671250 100644
--- a/application/res/layout/useritem.xml
+++ b/application/res/layout/useritem.xml
@@ -20,9 +20,9 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
\ No newline at end of file
+ android:id="@+id/host"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="7px"
+ android:text=""
+ android:textSize="12px" />
\ No newline at end of file
diff --git a/application/res/menu/conversations.xml b/application/res/menu/conversations.xml
index 4efc4d4..aeecedb 100644
--- a/application/res/menu/conversations.xml
+++ b/application/res/menu/conversations.xml
@@ -24,10 +24,10 @@ along with Yaaic. If not, see .
android:id="@+id/join"
android:title="@string/join_channel"
android:icon="@android:drawable/ic_menu_add" />
-
+
.
android:id="@+id/add"
android:title="@string/add_server_menu"
android:icon="@android:drawable/ic_menu_add" />
-
-
-
+
+
+
\ No newline at end of file
diff --git a/application/res/values/application.xml b/application/res/values/application.xml
index 3fcb40e..a691578 100644
--- a/application/res/values/application.xml
+++ b/application/res/values/application.xml
@@ -7,7 +7,7 @@
(C) 2009-2010 Sebastian Kaspari
- 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.
-
+ 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.
+
\ No newline at end of file
diff --git a/application/res/values/charsets.xml b/application/res/values/charsets.xml
index 2997e59..41aeadd 100644
--- a/application/res/values/charsets.xml
+++ b/application/res/values/charsets.xml
@@ -1,69 +1,69 @@
-
- - UTF-8
- - Big5
- - BOCU-1
- - CESU-8
- - cp864
- - EUC-JP
- - EUC-KR
- - GBK
- - HZ-GB-2312
- - ISO-2022-JP
- - ISO-8859-1
- - ISO-8859-10
- - ISO-8859-13
- - ISO-8859-14
- - ISO-8859-15
- - ISO-8859-16
- - ISO-8859-2
- - ISO-8859-3
- - ISO-8859-4
- - ISO-8859-5
- - ISO-8859-6
- - ISO-8859-7
- - ISO-8859-8
- - ISO-8859-9
- - KOI8-R
- - macintosh
- - SCSU
- - Shift_JIS
- - TIS-620
- - US-ASCII
- - UTF-16
- - UTF-16BE
- - UTF-16LE
- - UTF-32
- - UTF-32BE
- - UTF-32LE
- - UTF-7
- - windows-1250
- - windows-1251
- - windows-1252
- - windows-1253
- - windows-1254
- - windows-1255
- - windows-1256
- - windows-1257
- - windows-1258
- - x-docomo-shift_jis-2007
- - x-gsm-03.38-2000
- - x-ibm-1383_P110-1999
- - x-IMAP-mailbox-name
- - x-iscii-be
- - x-iscii-de
- - x-iscii-gu
- - x-iscii-ka
- - x-iscii-ma
- - x-iscii-or
- - x-iscii-pa
- - x-iscii-ta
- - x-iscii-te
- - x-iso-8859_11-2001
- - x-UTF16_OppositeEndian
- - x-UTF16_PlatformEndian
- - x-UTF32_OppositeEndian
- - x-UTF32_PlatformEndian
-
+
+ - UTF-8
+ - Big5
+ - BOCU-1
+ - CESU-8
+ - cp864
+ - EUC-JP
+ - EUC-KR
+ - GBK
+ - HZ-GB-2312
+ - ISO-2022-JP
+ - ISO-8859-1
+ - ISO-8859-10
+ - ISO-8859-13
+ - ISO-8859-14
+ - ISO-8859-15
+ - ISO-8859-16
+ - ISO-8859-2
+ - ISO-8859-3
+ - ISO-8859-4
+ - ISO-8859-5
+ - ISO-8859-6
+ - ISO-8859-7
+ - ISO-8859-8
+ - ISO-8859-9
+ - KOI8-R
+ - macintosh
+ - SCSU
+ - Shift_JIS
+ - TIS-620
+ - US-ASCII
+ - UTF-16
+ - UTF-16BE
+ - UTF-16LE
+ - UTF-32
+ - UTF-32BE
+ - UTF-32LE
+ - UTF-7
+ - windows-1250
+ - windows-1251
+ - windows-1252
+ - windows-1253
+ - windows-1254
+ - windows-1255
+ - windows-1256
+ - windows-1257
+ - windows-1258
+ - x-docomo-shift_jis-2007
+ - x-gsm-03.38-2000
+ - x-ibm-1383_P110-1999
+ - x-IMAP-mailbox-name
+ - x-iscii-be
+ - x-iscii-de
+ - x-iscii-gu
+ - x-iscii-ka
+ - x-iscii-ma
+ - x-iscii-or
+ - x-iscii-pa
+ - x-iscii-ta
+ - x-iscii-te
+ - x-iso-8859_11-2001
+ - x-UTF16_OppositeEndian
+ - x-UTF16_PlatformEndian
+ - x-UTF32_OppositeEndian
+ - x-UTF32_PlatformEndian
+
\ No newline at end of file
diff --git a/application/res/values/settings.xml b/application/res/values/settings.xml
index 755bc43..396a52f 100644
--- a/application/res/values/settings.xml
+++ b/application/res/values/settings.xml
@@ -1,32 +1,32 @@
- show_timestamp
- false
-
- show_icons
- true
-
- show_colors
- true
-
- show_colors_nick
- false
-
- 24h_format
- true
-
- reconnect
- false
-
- quitmessage
- Yaaic - Yet another Android IRC client - http://www.yaaic.org
-
- fontsize
- 11
-
- voice_recognition
- false
-
- vibrate_highlight
- true
+ show_timestamp
+ false
+
+ show_icons
+ true
+
+ show_colors
+ true
+
+ show_colors_nick
+ false
+
+ 24h_format
+ true
+
+ reconnect
+ false
+
+ quitmessage
+ Yaaic - Yet another Android IRC client - http://www.yaaic.org
+
+ fontsize
+ 11
+
+ voice_recognition
+ false
+
+ vibrate_highlight
+ true
diff --git a/application/res/xml/preferences.xml b/application/res/xml/preferences.xml
index 91e0cb1..1992e37 100644
--- a/application/res/xml/preferences.xml
+++ b/application/res/xml/preferences.xml
@@ -20,18 +20,18 @@ You should have received a copy of the GNU General Public License
along with Yaaic. If not, see .
-->
-
-
-
-
-
+
+
+
+
+ .
android:entryValues="@array/fontsize_values"
android:key="@string/key_fontsize"
android:defaultValue="@string/default_fontsize" />
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
-
+
+
diff --git a/application/src/org/jibble/pircbot/IrcException.java b/application/src/org/jibble/pircbot/IrcException.java
index a0dbcf7..45cf5e8 100644
--- a/application/src/org/jibble/pircbot/IrcException.java
+++ b/application/src/org/jibble/pircbot/IrcException.java
@@ -22,9 +22,9 @@ package org.jibble.pircbot;
* @version 1.4.6 (Build time: Wed Apr 11 19:20:59 2007)
*/
public class IrcException extends Exception {
- private static final long serialVersionUID = -3705541066912475928L;
+ private static final long serialVersionUID = -3705541066912475928L;
- /**
+ /**
* Constructs a new IrcException.
*
* @param e The error message to report.
diff --git a/application/src/org/jibble/pircbot/NickAlreadyInUseException.java b/application/src/org/jibble/pircbot/NickAlreadyInUseException.java
index 10343d2..a7c97c0 100644
--- a/application/src/org/jibble/pircbot/NickAlreadyInUseException.java
+++ b/application/src/org/jibble/pircbot/NickAlreadyInUseException.java
@@ -25,9 +25,9 @@ package org.jibble.pircbot;
* @version 1.4.6 (Build time: Wed Apr 11 19:20:59 2007)
*/
public class NickAlreadyInUseException extends IrcException {
- private static final long serialVersionUID = -4724325464519465479L;
+ private static final long serialVersionUID = -4724325464519465479L;
- /**
+ /**
* Constructs a new IrcException.
*
* @param e The error message to report.
diff --git a/application/src/org/jibble/pircbot/PircBot.java b/application/src/org/jibble/pircbot/PircBot.java
index bca96f9..80d9d39 100644
--- a/application/src/org/jibble/pircbot/PircBot.java
+++ b/application/src/org/jibble/pircbot/PircBot.java
@@ -158,21 +158,21 @@ public abstract class PircBot implements ReplyConstants {
// XXX: PircBot Patch for SSL
Socket socket;
if (_useSSL) {
- try {
- SSLContext context = SSLContext.getInstance("TLS");
- context.init(null, new X509TrustManager[] { new NaiveTrustManager() }, null);
- SSLSocketFactory factory = context.getSocketFactory();
- SSLSocket ssocket = (SSLSocket) factory.createSocket(hostname, port);
- ssocket.startHandshake();
- socket = ssocket;
- }
- catch(Exception e)
- {
- // XXX: It's not really an IOException :)
- throw new IOException("Cannot open SSL socket");
- }
+ try {
+ SSLContext context = SSLContext.getInstance("TLS");
+ context.init(null, new X509TrustManager[] { new NaiveTrustManager() }, null);
+ SSLSocketFactory factory = context.getSocketFactory();
+ SSLSocket ssocket = (SSLSocket) factory.createSocket(hostname, port);
+ ssocket.startHandshake();
+ socket = ssocket;
+ }
+ catch(Exception e)
+ {
+ // XXX: It's not really an IOException :)
+ throw new IOException("Cannot open SSL socket");
+ }
} else {
- socket = new Socket(hostname, port);
+ socket = new Socket(hostname, port);
}
_inetAddress = socket.getLocalAddress();
@@ -245,7 +245,7 @@ public abstract class PircBot implements ReplyConstants {
// XXX: PircBot patch - We are not connected to server if nothing received
if (line == null) {
- throw new IOException("Could not connect to server");
+ throw new IOException("Could not connect to server");
}
// This makes the socket timeout on read operations after 5 minutes.
@@ -293,7 +293,7 @@ public abstract class PircBot implements ReplyConstants {
*/
public void setUseSSL(boolean useSSL)
{
- _useSSL = useSSL;
+ _useSSL = useSSL;
}
@@ -1013,11 +1013,11 @@ public abstract class PircBot implements ReplyConstants {
}
else if (command.equals("QUIT")) {
// Someone has quit from the IRC server.
-
- // XXX: Pircbot Patch - Call onQuit before removing the user. This way we
- // are able to know which channels the user was on.
- this.onQuit(sourceNick, sourceLogin, sourceHostname, line.substring(line.indexOf(" :") + 2));
-
+
+ // XXX: Pircbot Patch - Call onQuit before removing the user. This way we
+ // are able to know which channels the user was on.
+ this.onQuit(sourceNick, sourceLogin, sourceHostname, line.substring(line.indexOf(" :") + 2));
+
if (sourceNick.equals(this.getNick())) {
this.removeAllChannels();
}
diff --git a/application/src/org/yaaic/Yaaic.java b/application/src/org/yaaic/Yaaic.java
index f921364..d850b9a 100644
--- a/application/src/org/yaaic/Yaaic.java
+++ b/application/src/org/yaaic/Yaaic.java
@@ -36,112 +36,112 @@ import android.content.Context;
*/
public class Yaaic
{
- public static Yaaic instance;
-
- private HashMap servers;
- private boolean serversLoaded = false;
-
- /**
- * Private constructor, you may want to use static getInstance()
- */
- private Yaaic()
- {
- servers = new HashMap();
- }
-
- /**
- * Load servers from database
- *
- * @param context
- */
- public void loadServers(Context context)
- {
- if (!serversLoaded) {
- Database db = new Database(context);
- servers = db.getServers();
- db.close();
-
- //context.sendBroadcast(new Intent(Broadcast.SERVER_UPDATE));
- serversLoaded = true;
- }
- }
-
- /**
- * Get global Yaaic instance
- *
- * @return the global Yaaic instance
- */
- public static Yaaic getInstance()
- {
- if (instance == null) {
- instance = new Yaaic();
- }
-
- return instance;
- }
-
- /**
- * Get server by id
- *
- * @return Server object with given unique id
- */
- public Server getServerById(int serverId)
- {
- return servers.get(serverId);
- }
-
- /**
- * Remove server with given unique id from list
- *
- * @param serverId
- */
- public void removeServerById(int serverId)
- {
- servers.remove(serverId);
- }
-
- /**
- * Set servers
- *
- * @param servers
- */
- public void setServers(HashMap servers)
- {
- this.servers = servers;
- }
-
- /**
- * Add server to list
- */
- public void addServer(Server server)
- {
- if (!servers.containsKey(server.getId())) {
- servers.put(server.getId(), server);
- }
- }
-
- /**
- * Update a server in list
- */
- public void updateServer(Server server)
- {
- servers.put(server.getId(), server);
- }
-
- /**
- * Get list of servers
- *
- * @return list of servers
- */
- public ArrayList getServersAsArrayList()
- {
- ArrayList serverList = new ArrayList();
-
- Set mKeys = servers.keySet();
- for (int key : mKeys) {
- serverList.add(servers.get(key));
- }
-
- return serverList;
- }
+ public static Yaaic instance;
+
+ private HashMap servers;
+ private boolean serversLoaded = false;
+
+ /**
+ * Private constructor, you may want to use static getInstance()
+ */
+ private Yaaic()
+ {
+ servers = new HashMap();
+ }
+
+ /**
+ * Load servers from database
+ *
+ * @param context
+ */
+ public void loadServers(Context context)
+ {
+ if (!serversLoaded) {
+ Database db = new Database(context);
+ servers = db.getServers();
+ db.close();
+
+ //context.sendBroadcast(new Intent(Broadcast.SERVER_UPDATE));
+ serversLoaded = true;
+ }
+ }
+
+ /**
+ * Get global Yaaic instance
+ *
+ * @return the global Yaaic instance
+ */
+ public static Yaaic getInstance()
+ {
+ if (instance == null) {
+ instance = new Yaaic();
+ }
+
+ return instance;
+ }
+
+ /**
+ * Get server by id
+ *
+ * @return Server object with given unique id
+ */
+ public Server getServerById(int serverId)
+ {
+ return servers.get(serverId);
+ }
+
+ /**
+ * Remove server with given unique id from list
+ *
+ * @param serverId
+ */
+ public void removeServerById(int serverId)
+ {
+ servers.remove(serverId);
+ }
+
+ /**
+ * Set servers
+ *
+ * @param servers
+ */
+ public void setServers(HashMap servers)
+ {
+ this.servers = servers;
+ }
+
+ /**
+ * Add server to list
+ */
+ public void addServer(Server server)
+ {
+ if (!servers.containsKey(server.getId())) {
+ servers.put(server.getId(), server);
+ }
+ }
+
+ /**
+ * Update a server in list
+ */
+ public void updateServer(Server server)
+ {
+ servers.put(server.getId(), server);
+ }
+
+ /**
+ * Get list of servers
+ *
+ * @return list of servers
+ */
+ public ArrayList getServersAsArrayList()
+ {
+ ArrayList serverList = new ArrayList();
+
+ Set mKeys = servers.keySet();
+ for (int key : mKeys) {
+ serverList.add(servers.get(key));
+ }
+
+ return serverList;
+ }
}
diff --git a/application/src/org/yaaic/activity/AboutActivity.java b/application/src/org/yaaic/activity/AboutActivity.java
index e9ef5d6..0e4b897 100644
--- a/application/src/org/yaaic/activity/AboutActivity.java
+++ b/application/src/org/yaaic/activity/AboutActivity.java
@@ -33,15 +33,15 @@ import android.view.Window;
*/
public class AboutActivity extends Activity
{
- /**
- * On create
- */
+ /**
+ * On create
+ */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.about);
}
diff --git a/application/src/org/yaaic/activity/AddAliasActivity.java b/application/src/org/yaaic/activity/AddAliasActivity.java
index eeaa0a8..6a40288 100644
--- a/application/src/org/yaaic/activity/AddAliasActivity.java
+++ b/application/src/org/yaaic/activity/AddAliasActivity.java
@@ -24,106 +24,106 @@ import android.widget.AdapterView.OnItemClickListener;
public class AddAliasActivity extends Activity implements OnClickListener, OnItemClickListener, TextWatcher
{
- private EditText aliasInput;
- private ArrayAdapter adapter;
- private ArrayList aliases;
- private Button addButton;
- private Button okButton;
+ private EditText aliasInput;
+ private ArrayAdapter adapter;
+ private ArrayList aliases;
+ private Button addButton;
+ private Button okButton;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- setContentView(R.layout.aliasadd);
-
- aliasInput = (EditText) findViewById(R.id.alias);
- aliasInput.addTextChangedListener(this);
-
- adapter = new ArrayAdapter(this, R.layout.aliasitem);
-
- ListView list = (ListView) findViewById(R.id.aliases);
- list.setAdapter(adapter);
- list.setOnItemClickListener(this);
-
- addButton = (Button) findViewById(R.id.add);
- addButton.setOnClickListener(this);
- ((Button) findViewById(R.id.cancel)).setOnClickListener(this);
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+ setContentView(R.layout.aliasadd);
+
+ aliasInput = (EditText) findViewById(R.id.alias);
+ aliasInput.addTextChangedListener(this);
+
+ adapter = new ArrayAdapter(this, R.layout.aliasitem);
+
+ ListView list = (ListView) findViewById(R.id.aliases);
+ list.setAdapter(adapter);
+ list.setOnItemClickListener(this);
+
+ addButton = (Button) findViewById(R.id.add);
+ addButton.setOnClickListener(this);
+ ((Button) findViewById(R.id.cancel)).setOnClickListener(this);
- okButton = (Button) findViewById(R.id.ok);
- okButton.setOnClickListener(this);
- okButton.setEnabled(false);
+ okButton = (Button) findViewById(R.id.ok);
+ okButton.setOnClickListener(this);
+ okButton.setEnabled(false);
- aliases = getIntent().getExtras().getStringArrayList(Extra.ALIASES);
-
- for (String alias : aliases) {
- adapter.add(alias);
- }
- }
-
- /**
- * On Click
- */
- public void onClick(View v)
- {
- switch (v.getId()) {
- case R.id.add:
- String alias = aliasInput.getText().toString().trim();
- aliases.add(alias);
- adapter.add(alias);
- aliasInput.setText("");
- okButton.setEnabled(true);
- break;
- case R.id.cancel:
- setResult(RESULT_CANCELED);
- finish();
- break;
- case R.id.ok:
- // Get list and return as result
- Intent intent = new Intent();
- intent.putExtra(Extra.ALIASES, aliases);
- setResult(RESULT_OK, intent);
- finish();
- break;
- }
- }
+ aliases = getIntent().getExtras().getStringArrayList(Extra.ALIASES);
+
+ for (String alias : aliases) {
+ adapter.add(alias);
+ }
+ }
+
+ /**
+ * On Click
+ */
+ public void onClick(View v)
+ {
+ switch (v.getId()) {
+ case R.id.add:
+ String alias = aliasInput.getText().toString().trim();
+ aliases.add(alias);
+ adapter.add(alias);
+ aliasInput.setText("");
+ okButton.setEnabled(true);
+ break;
+ case R.id.cancel:
+ setResult(RESULT_CANCELED);
+ finish();
+ break;
+ case R.id.ok:
+ // Get list and return as result
+ Intent intent = new Intent();
+ intent.putExtra(Extra.ALIASES, aliases);
+ setResult(RESULT_OK, intent);
+ finish();
+ break;
+ }
+ }
- /**
- * On item clicked
- */
- public void onItemClick(AdapterView> list, View item, int position, long id)
- {
- final String alias = adapter.getItem(position);
-
- String[] items = { getResources().getString(R.string.action_remove) };
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(alias);
- builder.setItems(items, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- switch (item) {
- case 0: // Remove
- adapter.remove(alias);
- aliases.remove(alias);
- okButton.setEnabled(true);
- break;
- }
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- }
+ /**
+ * On item clicked
+ */
+ public void onItemClick(AdapterView> list, View item, int position, long id)
+ {
+ final String alias = adapter.getItem(position);
+
+ String[] items = { getResources().getString(R.string.action_remove) };
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(alias);
+ builder.setItems(items, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int item) {
+ switch (item) {
+ case 0: // Remove
+ adapter.remove(alias);
+ aliases.remove(alias);
+ okButton.setEnabled(true);
+ break;
+ }
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
- public void afterTextChanged(Editable s) {
- // Do nothing.
- }
+ public void afterTextChanged(Editable s) {
+ // Do nothing.
+ }
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- // Do nothing.
- }
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ // Do nothing.
+ }
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- addButton.setEnabled(aliasInput.getText().length() > 0);
- }
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ addButton.setEnabled(aliasInput.getText().length() > 0);
+ }
}
diff --git a/application/src/org/yaaic/activity/AddChannelActivity.java b/application/src/org/yaaic/activity/AddChannelActivity.java
index 1e6ac0d..76f5f0b 100644
--- a/application/src/org/yaaic/activity/AddChannelActivity.java
+++ b/application/src/org/yaaic/activity/AddChannelActivity.java
@@ -47,94 +47,94 @@ import android.widget.AdapterView.OnItemClickListener;
*/
public class AddChannelActivity extends Activity implements OnClickListener, OnItemClickListener
{
- private EditText channelInput;
- private ArrayAdapter adapter;
- private ArrayList channels;
- private Button okButton;
-
- /**
- * On create
- */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- setContentView(R.layout.channeladd);
-
- channelInput = (EditText) findViewById(R.id.channel);
-
- adapter = new ArrayAdapter(this, R.layout.channelitem);
-
- ListView list = (ListView) findViewById(R.id.channels);
- list.setAdapter(adapter);
- list.setOnItemClickListener(this);
-
- ((Button) findViewById(R.id.add)).setOnClickListener(this);
- ((Button) findViewById(R.id.cancel)).setOnClickListener(this);
+ private EditText channelInput;
+ private ArrayAdapter adapter;
+ private ArrayList channels;
+ private Button okButton;
+
+ /**
+ * On create
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+ setContentView(R.layout.channeladd);
+
+ channelInput = (EditText) findViewById(R.id.channel);
+
+ adapter = new ArrayAdapter(this, R.layout.channelitem);
+
+ ListView list = (ListView) findViewById(R.id.channels);
+ list.setAdapter(adapter);
+ list.setOnItemClickListener(this);
+
+ ((Button) findViewById(R.id.add)).setOnClickListener(this);
+ ((Button) findViewById(R.id.cancel)).setOnClickListener(this);
- okButton = (Button) findViewById(R.id.ok);
- okButton.setOnClickListener(this);
- okButton.setEnabled(false);
+ okButton = (Button) findViewById(R.id.ok);
+ okButton.setOnClickListener(this);
+ okButton.setEnabled(false);
- channels = getIntent().getExtras().getStringArrayList(Extra.CHANNELS);
-
- for (String channel : channels) {
- adapter.add(channel);
- }
- }
+ channels = getIntent().getExtras().getStringArrayList(Extra.CHANNELS);
+
+ for (String channel : channels) {
+ adapter.add(channel);
+ }
+ }
- /**
- * On Click
- */
- public void onClick(View v)
- {
- switch (v.getId()) {
- case R.id.add:
- String channel = channelInput.getText().toString().trim();
- channels.add(channel);
- adapter.add(channel);
- channelInput.setText("#");
- okButton.setEnabled(true);
- break;
- case R.id.cancel:
- setResult(RESULT_CANCELED);
- finish();
- break;
- case R.id.ok:
- // Get list and return as result
- Intent intent = new Intent();
- intent.putExtra(Extra.CHANNELS, channels);
- setResult(RESULT_OK, intent);
- finish();
- break;
- }
- }
+ /**
+ * On Click
+ */
+ public void onClick(View v)
+ {
+ switch (v.getId()) {
+ case R.id.add:
+ String channel = channelInput.getText().toString().trim();
+ channels.add(channel);
+ adapter.add(channel);
+ channelInput.setText("#");
+ okButton.setEnabled(true);
+ break;
+ case R.id.cancel:
+ setResult(RESULT_CANCELED);
+ finish();
+ break;
+ case R.id.ok:
+ // Get list and return as result
+ Intent intent = new Intent();
+ intent.putExtra(Extra.CHANNELS, channels);
+ setResult(RESULT_OK, intent);
+ finish();
+ break;
+ }
+ }
- /**
- * On item clicked
- */
- public void onItemClick(AdapterView> list, View item, int position, long id)
- {
- final String channel = adapter.getItem(position);
-
- String[] items = { getResources().getString(R.string.action_remove) };
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(channel);
- builder.setItems(items, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- switch (item) {
- case 0: // Remove
- adapter.remove(channel);
- channels.remove(channel);
- okButton.setEnabled(true);
- break;
- }
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- }
+ /**
+ * On item clicked
+ */
+ public void onItemClick(AdapterView> list, View item, int position, long id)
+ {
+ final String channel = adapter.getItem(position);
+
+ String[] items = { getResources().getString(R.string.action_remove) };
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(channel);
+ builder.setItems(items, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int item) {
+ switch (item) {
+ case 0: // Remove
+ adapter.remove(channel);
+ channels.remove(channel);
+ okButton.setEnabled(true);
+ break;
+ }
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
}
diff --git a/application/src/org/yaaic/activity/AddCommandsActivity.java b/application/src/org/yaaic/activity/AddCommandsActivity.java
index c980d30..435872c 100644
--- a/application/src/org/yaaic/activity/AddCommandsActivity.java
+++ b/application/src/org/yaaic/activity/AddCommandsActivity.java
@@ -47,100 +47,100 @@ import android.widget.AdapterView.OnItemClickListener;
*/
public class AddCommandsActivity extends Activity implements OnClickListener, OnItemClickListener
{
- private EditText commandInput;
- private ArrayAdapter adapter;
- private ArrayList commands;
- private Button okButton;
-
- /**
- * On create
- */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- setContentView(R.layout.commandadd);
-
- commandInput = (EditText) findViewById(R.id.command);
-
- adapter = new ArrayAdapter(this, R.layout.commanditem);
-
- ListView list = (ListView) findViewById(R.id.commands);
- list.setAdapter(adapter);
- list.setOnItemClickListener(this);
-
- ((Button) findViewById(R.id.add)).setOnClickListener(this);
- ((Button) findViewById(R.id.ok)).setOnClickListener(this);
- ((Button) findViewById(R.id.cancel)).setOnClickListener(this);
+ private EditText commandInput;
+ private ArrayAdapter adapter;
+ private ArrayList commands;
+ private Button okButton;
+
+ /**
+ * On create
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+ setContentView(R.layout.commandadd);
+
+ commandInput = (EditText) findViewById(R.id.command);
+
+ adapter = new ArrayAdapter(this, R.layout.commanditem);
+
+ ListView list = (ListView) findViewById(R.id.commands);
+ list.setAdapter(adapter);
+ list.setOnItemClickListener(this);
+
+ ((Button) findViewById(R.id.add)).setOnClickListener(this);
+ ((Button) findViewById(R.id.ok)).setOnClickListener(this);
+ ((Button) findViewById(R.id.cancel)).setOnClickListener(this);
- okButton = (Button) findViewById(R.id.ok);
- okButton.setOnClickListener(this);
- okButton.setEnabled(false);
-
- commands = getIntent().getExtras().getStringArrayList(Extra.COMMANDS);
-
- for (String command : commands) {
- adapter.add(command);
- }
- }
+ okButton = (Button) findViewById(R.id.ok);
+ okButton.setOnClickListener(this);
+ okButton.setEnabled(false);
+
+ commands = getIntent().getExtras().getStringArrayList(Extra.COMMANDS);
+
+ for (String command : commands) {
+ adapter.add(command);
+ }
+ }
- /**
- * On Click
- */
- public void onClick(View v)
- {
- switch (v.getId()) {
- case R.id.add:
- String command = commandInput.getText().toString().trim();
-
- if (!command.startsWith("/")) {
- command = "/" + command;
- }
-
- commands.add(command);
- adapter.add(command);
- commandInput.setText("/");
- okButton.setEnabled(true);
- break;
- case R.id.cancel:
- setResult(RESULT_CANCELED);
- finish();
- break;
- case R.id.ok:
- // Get list and return as result
- Intent intent = new Intent();
- intent.putExtra(Extra.COMMANDS, commands);
- setResult(RESULT_OK, intent);
- finish();
- break;
- }
- }
+ /**
+ * On Click
+ */
+ public void onClick(View v)
+ {
+ switch (v.getId()) {
+ case R.id.add:
+ String command = commandInput.getText().toString().trim();
+
+ if (!command.startsWith("/")) {
+ command = "/" + command;
+ }
+
+ commands.add(command);
+ adapter.add(command);
+ commandInput.setText("/");
+ okButton.setEnabled(true);
+ break;
+ case R.id.cancel:
+ setResult(RESULT_CANCELED);
+ finish();
+ break;
+ case R.id.ok:
+ // Get list and return as result
+ Intent intent = new Intent();
+ intent.putExtra(Extra.COMMANDS, commands);
+ setResult(RESULT_OK, intent);
+ finish();
+ break;
+ }
+ }
- /**
- * On item clicked
- */
- public void onItemClick(AdapterView> list, View item, int position, long id)
- {
- final String command = adapter.getItem(position);
-
- String[] items = { getResources().getString(R.string.action_remove) };
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(command);
- builder.setItems(items, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- switch (item) {
- case 0: // Remove
- adapter.remove(command);
- commands.remove(command);
- okButton.setEnabled(true);
- break;
- }
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- }
+ /**
+ * On item clicked
+ */
+ public void onItemClick(AdapterView> list, View item, int position, long id)
+ {
+ final String command = adapter.getItem(position);
+
+ String[] items = { getResources().getString(R.string.action_remove) };
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(command);
+ builder.setItems(items, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int item) {
+ switch (item) {
+ case 0: // Remove
+ adapter.remove(command);
+ commands.remove(command);
+ okButton.setEnabled(true);
+ break;
+ }
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
}
diff --git a/application/src/org/yaaic/activity/AddServerActivity.java b/application/src/org/yaaic/activity/AddServerActivity.java
index cc4ec61..373013e 100644
--- a/application/src/org/yaaic/activity/AddServerActivity.java
+++ b/application/src/org/yaaic/activity/AddServerActivity.java
@@ -53,19 +53,19 @@ import org.yaaic.model.Status;
*/
public class AddServerActivity extends Activity implements OnClickListener
{
- private static final int REQUEST_CODE_CHANNELS = 1;
- private static final int REQUEST_CODE_COMMANDS = 2;
- private static final int REQUEST_CODE_ALIASES = 3;
-
- private Server server;
- private ArrayList aliases;
- private ArrayList channels;
- private ArrayList commands;
-
- /**
- * On create
- */
- @Override
+ private static final int REQUEST_CODE_CHANNELS = 1;
+ private static final int REQUEST_CODE_COMMANDS = 2;
+ private static final int REQUEST_CODE_ALIASES = 3;
+
+ private Server server;
+ private ArrayList aliases;
+ private ArrayList channels;
+ private ArrayList commands;
+
+ /**
+ * On create
+ */
+ @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
@@ -89,327 +89,327 @@ public class AddServerActivity extends Activity implements OnClickListener
Bundle extras = getIntent().getExtras();
if (extras != null && extras.containsKey(Extra.SERVER)) {
- // Request to edit an existing server
- Database db = new Database(this);
- this.server = db.getServerById(extras.getInt(Extra.SERVER));
- aliases.addAll(server.getIdentity().getAliases());
- this.channels = db.getChannelsByServerId(server.getId());
- this.commands = db.getCommandsByServerId(server.getId());
- db.close();
-
- // Set server values
- ((EditText) findViewById(R.id.title)).setText(server.getTitle());
- ((EditText) findViewById(R.id.host)).setText(server.getHost());
- ((EditText) findViewById(R.id.port)).setText(String.valueOf(server.getPort()));
- ((EditText) findViewById(R.id.password)).setText(server.getPassword());
-
- ((EditText) findViewById(R.id.nickname)).setText(server.getIdentity().getNickname());
- ((EditText) findViewById(R.id.ident)).setText(server.getIdentity().getIdent());
- ((EditText) findViewById(R.id.realname)).setText(server.getIdentity().getRealName());
- ((CheckBox) findViewById(R.id.useSSL)).setChecked(server.useSSL());
-
- // Select charset
- if (server.getCharset() != null) {
- for (int i = 0; i < charsets.length; i++) {
- if (server.getCharset().equals(charsets[i])) {
- spinner.setSelection(i);
- break;
- }
- }
- }
+ // Request to edit an existing server
+ Database db = new Database(this);
+ this.server = db.getServerById(extras.getInt(Extra.SERVER));
+ aliases.addAll(server.getIdentity().getAliases());
+ this.channels = db.getChannelsByServerId(server.getId());
+ this.commands = db.getCommandsByServerId(server.getId());
+ db.close();
+
+ // Set server values
+ ((EditText) findViewById(R.id.title)).setText(server.getTitle());
+ ((EditText) findViewById(R.id.host)).setText(server.getHost());
+ ((EditText) findViewById(R.id.port)).setText(String.valueOf(server.getPort()));
+ ((EditText) findViewById(R.id.password)).setText(server.getPassword());
+
+ ((EditText) findViewById(R.id.nickname)).setText(server.getIdentity().getNickname());
+ ((EditText) findViewById(R.id.ident)).setText(server.getIdentity().getIdent());
+ ((EditText) findViewById(R.id.realname)).setText(server.getIdentity().getRealName());
+ ((CheckBox) findViewById(R.id.useSSL)).setChecked(server.useSSL());
+
+ // Select charset
+ if (server.getCharset() != null) {
+ for (int i = 0; i < charsets.length; i++) {
+ if (server.getCharset().equals(charsets[i])) {
+ spinner.setSelection(i);
+ break;
+ }
+ }
+ }
}
Uri uri = getIntent().getData();
if (uri != null && uri.getScheme().equals("irc")) {
- // handling an irc:// uri
-
- ((EditText) findViewById(R.id.host)).setText(uri.getHost());
- if (uri.getPort() != -1) {
- ((EditText) findViewById(R.id.port)).setText(String.valueOf(uri.getPort()));
- }
+ // handling an irc:// uri
+
+ ((EditText) findViewById(R.id.host)).setText(uri.getHost());
+ if (uri.getPort() != -1) {
+ ((EditText) findViewById(R.id.port)).setText(String.valueOf(uri.getPort()));
+ }
+ }
+ }
+
+ /**
+ * On activity result
+ */
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data)
+ {
+ if (resultCode != RESULT_OK) {
+ return; // ignore everything else
+ }
+
+ switch (requestCode) {
+ case REQUEST_CODE_ALIASES:
+ aliases.clear();
+ aliases.addAll(data.getExtras().getStringArrayList(Extra.ALIASES));
+ break;
+ case REQUEST_CODE_CHANNELS:
+ channels = data.getExtras().getStringArrayList(Extra.CHANNELS);
+ break;
+ case REQUEST_CODE_COMMANDS:
+ commands = data.getExtras().getStringArrayList(Extra.COMMANDS);
+ break;
}
}
-
- /**
- * On activity result
- */
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data)
- {
- if (resultCode != RESULT_OK) {
- return; // ignore everything else
- }
-
- switch (requestCode) {
- case REQUEST_CODE_ALIASES:
- aliases.clear();
- aliases.addAll(data.getExtras().getStringArrayList(Extra.ALIASES));
- break;
- case REQUEST_CODE_CHANNELS:
- channels = data.getExtras().getStringArrayList(Extra.CHANNELS);
- break;
- case REQUEST_CODE_COMMANDS:
- commands = data.getExtras().getStringArrayList(Extra.COMMANDS);
- break;
- }
- }
- /**
- * On click add server or cancel activity
- */
- public void onClick(View v)
- {
- switch (v.getId()) {
- case R.id.aliases:
- Intent aliasIntent = new Intent(this, AddAliasActivity.class);
- aliasIntent.putExtra(Extra.ALIASES, aliases);
- startActivityForResult(aliasIntent, REQUEST_CODE_ALIASES);
- break;
- case R.id.channels:
- Intent channelIntent = new Intent(this, AddChannelActivity.class);
- channelIntent.putExtra(Extra.CHANNELS, channels);
- startActivityForResult(channelIntent, REQUEST_CODE_CHANNELS);
- break;
- case R.id.commands:
- Intent commandsIntent = new Intent(this, AddCommandsActivity.class);
- commandsIntent.putExtra(Extra.COMMANDS, commands);
- startActivityForResult(commandsIntent, REQUEST_CODE_COMMANDS);
- break;
- case R.id.add:
- try {
- validateServer();
- validateIdentity();
- if (server == null) {
- addServer();
- } else {
- updateServer();
- }
- setResult(RESULT_OK);
- finish();
- } catch(ValidationException e) {
- Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
- }
- break;
- case R.id.cancel:
- setResult(RESULT_CANCELED);
- finish();
- break;
- }
- }
-
- /**
- * Add server to database
- */
- private void addServer()
- {
- Database db = new Database(this);
-
- Identity identity = getIdentityFromView();
- long identityId = db.addIdentity(
- identity.getNickname(),
- identity.getIdent(),
- identity.getRealName(),
- identity.getAliases()
- );
-
- Server server = getServerFromView();
- long serverId = db.addServer(
- server.getTitle(),
- server.getHost(),
- server.getPort(),
- server.getPassword(),
- false, // auto connect
- server.useSSL(),
- identityId,
- server.getCharset()
- );
-
- db.setChannels((int) serverId, channels);
- db.setCommands((int) serverId, commands);
-
- db.close();
-
- server.setId((int) serverId);
- server.setIdentity(identity);
- server.setAutoJoinChannels(channels);
- server.setConnectCommands(commands);
-
- Yaaic.getInstance().addServer(server);
- }
-
- /**
- * Update server
- */
- private void updateServer()
- {
- Database db = new Database(this);
-
- int serverId = this.server.getId();
- int identityId = db.getIdentityIdByServerId(serverId);
-
- Server server = getServerFromView();
- db.updateServer(
- serverId,
- server.getTitle(),
- server.getHost(),
- server.getPort(),
- server.getPassword(),
- false, // auto connect
- server.useSSL(),
- identityId,
- server.getCharset()
- );
-
- Identity identity = getIdentityFromView();
- db.updateIdentity(
- identityId,
- identity.getNickname(),
- identity.getIdent(),
- identity.getNickname(),
- identity.getAliases()
- );
-
- db.setChannels(serverId, channels);
- db.setCommands(serverId, commands);
-
- db.close();
-
- server.setId(this.server.getId());
- server.setIdentity(identity);
- server.setAutoJoinChannels(channels);
- server.setConnectCommands(commands);
-
- Yaaic.getInstance().updateServer(server);
- }
-
- /**
- * Populate a server object from the data in the view
- *
- * @return The server object
- */
- private Server getServerFromView()
- {
- String title = ((EditText) findViewById(R.id.title)).getText().toString().trim();
- String host = ((EditText) findViewById(R.id.host)).getText().toString().trim();
- int port = Integer.parseInt(((EditText) findViewById(R.id.port)).getText().toString().trim());
- String password = ((EditText) findViewById(R.id.password)).getText().toString().trim();
- String charset = ((Spinner) findViewById(R.id.charset)).getSelectedItem().toString();
- Boolean useSSL = ((CheckBox) findViewById(R.id.useSSL)).isChecked();
-
- // not in use yet
- //boolean autoConnect = ((CheckBox) findViewById(R.id.autoconnect)).isChecked();
-
- Server server = new Server();
- server.setHost(host);
- server.setPort(port);
- server.setPassword(password);
- server.setTitle(title);
- server.setCharset(charset);
- server.setUseSSL(useSSL);
- server.setStatus(Status.DISCONNECTED);
+ /**
+ * On click add server or cancel activity
+ */
+ public void onClick(View v)
+ {
+ switch (v.getId()) {
+ case R.id.aliases:
+ Intent aliasIntent = new Intent(this, AddAliasActivity.class);
+ aliasIntent.putExtra(Extra.ALIASES, aliases);
+ startActivityForResult(aliasIntent, REQUEST_CODE_ALIASES);
+ break;
+ case R.id.channels:
+ Intent channelIntent = new Intent(this, AddChannelActivity.class);
+ channelIntent.putExtra(Extra.CHANNELS, channels);
+ startActivityForResult(channelIntent, REQUEST_CODE_CHANNELS);
+ break;
+ case R.id.commands:
+ Intent commandsIntent = new Intent(this, AddCommandsActivity.class);
+ commandsIntent.putExtra(Extra.COMMANDS, commands);
+ startActivityForResult(commandsIntent, REQUEST_CODE_COMMANDS);
+ break;
+ case R.id.add:
+ try {
+ validateServer();
+ validateIdentity();
+ if (server == null) {
+ addServer();
+ } else {
+ updateServer();
+ }
+ setResult(RESULT_OK);
+ finish();
+ } catch(ValidationException e) {
+ Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
+ }
+ break;
+ case R.id.cancel:
+ setResult(RESULT_CANCELED);
+ finish();
+ break;
+ }
+ }
+
+ /**
+ * Add server to database
+ */
+ private void addServer()
+ {
+ Database db = new Database(this);
+
+ Identity identity = getIdentityFromView();
+ long identityId = db.addIdentity(
+ identity.getNickname(),
+ identity.getIdent(),
+ identity.getRealName(),
+ identity.getAliases()
+ );
+
+ Server server = getServerFromView();
+ long serverId = db.addServer(
+ server.getTitle(),
+ server.getHost(),
+ server.getPort(),
+ server.getPassword(),
+ false, // auto connect
+ server.useSSL(),
+ identityId,
+ server.getCharset()
+ );
+
+ db.setChannels((int) serverId, channels);
+ db.setCommands((int) serverId, commands);
+
+ db.close();
+
+ server.setId((int) serverId);
+ server.setIdentity(identity);
+ server.setAutoJoinChannels(channels);
+ server.setConnectCommands(commands);
+
+ Yaaic.getInstance().addServer(server);
+ }
+
+ /**
+ * Update server
+ */
+ private void updateServer()
+ {
+ Database db = new Database(this);
+
+ int serverId = this.server.getId();
+ int identityId = db.getIdentityIdByServerId(serverId);
+
+ Server server = getServerFromView();
+ db.updateServer(
+ serverId,
+ server.getTitle(),
+ server.getHost(),
+ server.getPort(),
+ server.getPassword(),
+ false, // auto connect
+ server.useSSL(),
+ identityId,
+ server.getCharset()
+ );
+
+ Identity identity = getIdentityFromView();
+ db.updateIdentity(
+ identityId,
+ identity.getNickname(),
+ identity.getIdent(),
+ identity.getNickname(),
+ identity.getAliases()
+ );
+
+ db.setChannels(serverId, channels);
+ db.setCommands(serverId, commands);
+
+ db.close();
+
+ server.setId(this.server.getId());
+ server.setIdentity(identity);
+ server.setAutoJoinChannels(channels);
+ server.setConnectCommands(commands);
+
+ Yaaic.getInstance().updateServer(server);
+ }
+
+ /**
+ * Populate a server object from the data in the view
+ *
+ * @return The server object
+ */
+ private Server getServerFromView()
+ {
+ String title = ((EditText) findViewById(R.id.title)).getText().toString().trim();
+ String host = ((EditText) findViewById(R.id.host)).getText().toString().trim();
+ int port = Integer.parseInt(((EditText) findViewById(R.id.port)).getText().toString().trim());
+ String password = ((EditText) findViewById(R.id.password)).getText().toString().trim();
+ String charset = ((Spinner) findViewById(R.id.charset)).getSelectedItem().toString();
+ Boolean useSSL = ((CheckBox) findViewById(R.id.useSSL)).isChecked();
+
+ // not in use yet
+ //boolean autoConnect = ((CheckBox) findViewById(R.id.autoconnect)).isChecked();
+
+ Server server = new Server();
+ server.setHost(host);
+ server.setPort(port);
+ server.setPassword(password);
+ server.setTitle(title);
+ server.setCharset(charset);
+ server.setUseSSL(useSSL);
+ server.setStatus(Status.DISCONNECTED);
- return server;
- }
-
- /**
- * Populate an identity object from the data in the view
- *
- * @return The identity object
- */
- private Identity getIdentityFromView()
- {
- String nickname = ((EditText) findViewById(R.id.nickname)).getText().toString().trim();
- String ident = ((EditText) findViewById(R.id.ident)).getText().toString().trim();
- String realname = ((EditText) findViewById(R.id.realname)).getText().toString().trim();
-
- Identity identity = new Identity();
- identity.setNickname(nickname);
- identity.setIdent(ident);
- identity.setRealName(realname);
-
- identity.setAliases(aliases);
-
- return identity;
- }
-
- /**
- * Validate the input for a server
- *
- * @throws ValidationException
- */
- private void validateServer() throws ValidationException
- {
- String title = ((EditText) findViewById(R.id.title)).getText().toString();
- String host = ((EditText) findViewById(R.id.host)).getText().toString();
- String port = ((EditText) findViewById(R.id.port)).getText().toString();
- String charset = ((Spinner) findViewById(R.id.charset)).getSelectedItem().toString();
-
- if (title.trim().equals("")) {
- throw new ValidationException(getResources().getString(R.string.validation_blank_title));
- }
-
- if (host.trim().equals("")) {
- // XXX: We should use some better host validation
- throw new ValidationException(getResources().getString(R.string.validation_blank_host));
- }
-
- try {
- Integer.parseInt(port);
- } catch (NumberFormatException e) {
- throw new ValidationException(getResources().getString(R.string.validation_invalid_port));
- }
-
- try {
- "".getBytes(charset);
- }
- catch (UnsupportedEncodingException e) {
- throw new ValidationException(getResources().getString(R.string.validation_unsupported_charset));
- }
-
- Database db = new Database(this);
- if (db.isTitleUsed(title) && (server == null || !server.getTitle().equals(title))) {
- db.close();
- throw new ValidationException(getResources().getString(R.string.validation_title_used));
- }
- db.close();
- }
-
- /**
- * Validate the input for a identity
- *
- * @throws ValidationException
- */
- private void validateIdentity() throws ValidationException
- {
- String nickname = ((EditText) findViewById(R.id.nickname)).getText().toString();
- String ident = ((EditText) findViewById(R.id.ident)).getText().toString();
- String realname = ((EditText) findViewById(R.id.realname)).getText().toString();
-
- if (nickname.trim().equals("")) {
- throw new ValidationException(getResources().getString(R.string.validation_blank_nickname));
- }
-
- if (ident.trim().equals("")) {
- throw new ValidationException(getResources().getString(R.string.validation_blank_ident));
- }
-
- if (realname.trim().equals("")) {
- throw new ValidationException(getResources().getString(R.string.validation_blank_realname));
- }
-
- // RFC 1459: ::= { | | }
- // ::= '-' | '[' | ']' | '\' | '`' | '^' | '{' | '}'
- // Chars that are not in RFC 1459 but are supported too:
- // | and _
- Pattern nickPattern = Pattern.compile("^[a-zA-Z_][a-zA-Z0-9^\\-`\\[\\]{}|_\\\\]*$");
- if (!nickPattern.matcher(nickname).matches()) {
- throw new ValidationException(getResources().getString(R.string.validation_invalid_nickname));
- }
-
- // We currently only allow chars and numbers as ident
- Pattern identPattern = Pattern.compile("^[a-zA-Z0-9]+$");
- if (!identPattern.matcher(ident).matches()) {
- throw new ValidationException(getResources().getString(R.string.validation_invalid_ident));
- }
- }
+ return server;
+ }
+
+ /**
+ * Populate an identity object from the data in the view
+ *
+ * @return The identity object
+ */
+ private Identity getIdentityFromView()
+ {
+ String nickname = ((EditText) findViewById(R.id.nickname)).getText().toString().trim();
+ String ident = ((EditText) findViewById(R.id.ident)).getText().toString().trim();
+ String realname = ((EditText) findViewById(R.id.realname)).getText().toString().trim();
+
+ Identity identity = new Identity();
+ identity.setNickname(nickname);
+ identity.setIdent(ident);
+ identity.setRealName(realname);
+
+ identity.setAliases(aliases);
+
+ return identity;
+ }
+
+ /**
+ * Validate the input for a server
+ *
+ * @throws ValidationException
+ */
+ private void validateServer() throws ValidationException
+ {
+ String title = ((EditText) findViewById(R.id.title)).getText().toString();
+ String host = ((EditText) findViewById(R.id.host)).getText().toString();
+ String port = ((EditText) findViewById(R.id.port)).getText().toString();
+ String charset = ((Spinner) findViewById(R.id.charset)).getSelectedItem().toString();
+
+ if (title.trim().equals("")) {
+ throw new ValidationException(getResources().getString(R.string.validation_blank_title));
+ }
+
+ if (host.trim().equals("")) {
+ // XXX: We should use some better host validation
+ throw new ValidationException(getResources().getString(R.string.validation_blank_host));
+ }
+
+ try {
+ Integer.parseInt(port);
+ } catch (NumberFormatException e) {
+ throw new ValidationException(getResources().getString(R.string.validation_invalid_port));
+ }
+
+ try {
+ "".getBytes(charset);
+ }
+ catch (UnsupportedEncodingException e) {
+ throw new ValidationException(getResources().getString(R.string.validation_unsupported_charset));
+ }
+
+ Database db = new Database(this);
+ if (db.isTitleUsed(title) && (server == null || !server.getTitle().equals(title))) {
+ db.close();
+ throw new ValidationException(getResources().getString(R.string.validation_title_used));
+ }
+ db.close();
+ }
+
+ /**
+ * Validate the input for a identity
+ *
+ * @throws ValidationException
+ */
+ private void validateIdentity() throws ValidationException
+ {
+ String nickname = ((EditText) findViewById(R.id.nickname)).getText().toString();
+ String ident = ((EditText) findViewById(R.id.ident)).getText().toString();
+ String realname = ((EditText) findViewById(R.id.realname)).getText().toString();
+
+ if (nickname.trim().equals("")) {
+ throw new ValidationException(getResources().getString(R.string.validation_blank_nickname));
+ }
+
+ if (ident.trim().equals("")) {
+ throw new ValidationException(getResources().getString(R.string.validation_blank_ident));
+ }
+
+ if (realname.trim().equals("")) {
+ throw new ValidationException(getResources().getString(R.string.validation_blank_realname));
+ }
+
+ // RFC 1459: ::= { | | }
+ // ::= '-' | '[' | ']' | '\' | '`' | '^' | '{' | '}'
+ // Chars that are not in RFC 1459 but are supported too:
+ // | and _
+ Pattern nickPattern = Pattern.compile("^[a-zA-Z_][a-zA-Z0-9^\\-`\\[\\]{}|_\\\\]*$");
+ if (!nickPattern.matcher(nickname).matches()) {
+ throw new ValidationException(getResources().getString(R.string.validation_invalid_nickname));
+ }
+
+ // We currently only allow chars and numbers as ident
+ Pattern identPattern = Pattern.compile("^[a-zA-Z0-9]+$");
+ if (!identPattern.matcher(ident).matches()) {
+ throw new ValidationException(getResources().getString(R.string.validation_invalid_ident));
+ }
+ }
}
diff --git a/application/src/org/yaaic/activity/ConversationActivity.java b/application/src/org/yaaic/activity/ConversationActivity.java
index 2c8bd0c..beb4a96 100644
--- a/application/src/org/yaaic/activity/ConversationActivity.java
+++ b/application/src/org/yaaic/activity/ConversationActivity.java
@@ -87,671 +87,671 @@ import android.widget.ViewSwitcher;
*/
public class ConversationActivity extends Activity implements ServiceConnection, ServerListener, ConversationListener, OnKeyListener
{
- public static final int REQUEST_CODE_SPEECH = 99;
+ public static final int REQUEST_CODE_SPEECH = 99;
- private static final int REQUEST_CODE_JOIN = 1;
- private static final int REQUEST_CODE_USERS = 2;
- private static final int REQUEST_CODE_USER = 3;
- private static final int REQUEST_CODE_NICK_COMPLETION= 4;
-
- private int serverId;
- private Server server;
- private IRCBinder binder;
- private ConversationReceiver channelReceiver;
- private ServerReceiver serverReceiver;
-
- private ViewSwitcher switcher;
- private Gallery deck;
- private DeckAdapter deckAdapter;
- private Scrollback scrollback;
- private ConversationSwitcher dots;
-
- // XXX: This is ugly. This is a buffer for a channel that should be joined after showing the
- // JoinActivity. As onActivityResult() is called before onResume() a "channel joined"
- // broadcast may get lost as the broadcast receivers are registered in onResume() but the
- // join command would be called in onActivityResult(). joinChannelBuffer will save the
- // channel name in onActivityResult() and run the join command in onResume().
- private String joinChannelBuffer;
+ private static final int REQUEST_CODE_JOIN = 1;
+ private static final int REQUEST_CODE_USERS = 2;
+ private static final int REQUEST_CODE_USER = 3;
+ private static final int REQUEST_CODE_NICK_COMPLETION= 4;
+
+ private int serverId;
+ private Server server;
+ private IRCBinder binder;
+ private ConversationReceiver channelReceiver;
+ private ServerReceiver serverReceiver;
+
+ private ViewSwitcher switcher;
+ private Gallery deck;
+ private DeckAdapter deckAdapter;
+ private Scrollback scrollback;
+ private ConversationSwitcher dots;
+
+ // XXX: This is ugly. This is a buffer for a channel that should be joined after showing the
+ // JoinActivity. As onActivityResult() is called before onResume() a "channel joined"
+ // broadcast may get lost as the broadcast receivers are registered in onResume() but the
+ // join command would be called in onActivityResult(). joinChannelBuffer will save the
+ // channel name in onActivityResult() and run the join command in onResume().
+ private String joinChannelBuffer;
- // flag passed to setInputType later
- // shall be TYPE_TEXT_FLAG_NO_SUGGESTIONS but it's not supported in all API levels (only in 5+)
- // We'll set it to 0 if it's not supported
- private int setInputTypeFlag;
-
- /**
- * On create
- */
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- serverId = getIntent().getExtras().getInt("serverId");
- server = (Server) Yaaic.getInstance().getServerById(serverId);
- setTitle("Yaaic - " + server.getTitle());
-
- setContentView(R.layout.conversations);
-
- ((TextView) findViewById(R.id.title)).setText(server.getTitle());
- ((EditText) findViewById(R.id.input)).setOnKeyListener(this);
-
- switcher = (ViewSwitcher) findViewById(R.id.switcher);
-
- dots = (ConversationSwitcher) findViewById(R.id.dots);
- dots.setServer(server);
+ // flag passed to setInputType later
+ // shall be TYPE_TEXT_FLAG_NO_SUGGESTIONS but it's not supported in all API levels (only in 5+)
+ // We'll set it to 0 if it's not supported
+ private int setInputTypeFlag;
+
+ /**
+ * On create
+ */
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+ serverId = getIntent().getExtras().getInt("serverId");
+ server = (Server) Yaaic.getInstance().getServerById(serverId);
+ setTitle("Yaaic - " + server.getTitle());
+
+ setContentView(R.layout.conversations);
+
+ ((TextView) findViewById(R.id.title)).setText(server.getTitle());
+ ((EditText) findViewById(R.id.input)).setOnKeyListener(this);
+
+ switcher = (ViewSwitcher) findViewById(R.id.switcher);
+
+ dots = (ConversationSwitcher) findViewById(R.id.dots);
+ dots.setServer(server);
deckAdapter = new DeckAdapter();
- deck = (Gallery) findViewById(R.id.deck);
- deck.setOnItemSelectedListener(new ConversationSelectedListener(server, (TextView) findViewById(R.id.title), dots));
- deck.setAdapter(deckAdapter);
- deck.setOnItemClickListener(new ConversationClickListener(deckAdapter, switcher));
- deck.setBackgroundDrawable(new NonScalingBackgroundDrawable(this, deck, R.drawable.background));
-
- if (server.getStatus() == Status.PRE_CONNECTING) {
- server.clearConversations();
- deckAdapter.clearConversations();
- }
+ deck = (Gallery) findViewById(R.id.deck);
+ deck.setOnItemSelectedListener(new ConversationSelectedListener(server, (TextView) findViewById(R.id.title), dots));
+ deck.setAdapter(deckAdapter);
+ deck.setOnItemClickListener(new ConversationClickListener(deckAdapter, switcher));
+ deck.setBackgroundDrawable(new NonScalingBackgroundDrawable(this, deck, R.drawable.background));
+
+ if (server.getStatus() == Status.PRE_CONNECTING) {
+ server.clearConversations();
+ deckAdapter.clearConversations();
+ }
- // Optimization : cache field lookups
- Collection mConversations = server.getConversations();
-
- for (Conversation conversation : mConversations) {
- onNewConversation(conversation.getName());
- }
+ // Optimization : cache field lookups
+ Collection mConversations = server.getConversations();
+
+ for (Conversation conversation : mConversations) {
+ onNewConversation(conversation.getName());
+ }
- // keep compatibility with api level 3
- if ((android.os.Build.VERSION.SDK.charAt(0) - '0') >= 5) {
- setInputTypeFlag = 0x80000; // InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
- }
- else {
- setInputTypeFlag = 0;
- }
+ // keep compatibility with api level 3
+ if ((android.os.Build.VERSION.SDK.charAt(0) - '0') >= 5) {
+ setInputTypeFlag = 0x80000; // InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
+ }
+ else {
+ setInputTypeFlag = 0;
+ }
- // Create a new scrollback history
- scrollback = new Scrollback();
- }
-
- /**
- * On resume
- */
- @Override
- public void onResume()
- {
- // register the receivers as early as possible, otherwise we may loose a broadcast message
- channelReceiver = new ConversationReceiver(server.getId(), this);
- 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));
-
- super.onResume();
-
- // Check if speech recognition is enabled and available
- if (new Settings(this).isVoiceRecognitionEnabled()) {
- PackageManager pm = getPackageManager();
- Button speechButton = (Button) findViewById(R.id.speech);
- List activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
- if (activities.size() != 0) {
- ((Button) findViewById(R.id.speech)).setOnClickListener(new SpeechClickListener(this));
- speechButton.setVisibility(View.VISIBLE);
- }
- }
-
- ((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon());
-
- // Start service
+ // Create a new scrollback history
+ scrollback = new Scrollback();
+ }
+
+ /**
+ * On resume
+ */
+ @Override
+ public void onResume()
+ {
+ // register the receivers as early as possible, otherwise we may loose a broadcast message
+ channelReceiver = new ConversationReceiver(server.getId(), this);
+ 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));
+
+ super.onResume();
+
+ // Check if speech recognition is enabled and available
+ if (new Settings(this).isVoiceRecognitionEnabled()) {
+ PackageManager pm = getPackageManager();
+ Button speechButton = (Button) findViewById(R.id.speech);
+ List activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
+ if (activities.size() != 0) {
+ ((Button) findViewById(R.id.speech)).setOnClickListener(new SpeechClickListener(this));
+ speechButton.setVisibility(View.VISIBLE);
+ }
+ }
+
+ ((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon());
+
+ // Start service
Intent intent = new Intent(this, IRCService.class);
intent.setAction(IRCService.ACTION_FOREGROUND);
startService(intent);
bindService(intent, this, 0);
- if (!server.isConnected()) {
- ((EditText) findViewById(R.id.input)).setEnabled(false);
- } else {
- ((EditText) findViewById(R.id.input)).setEnabled(true);
- }
+ if (!server.isConnected()) {
+ ((EditText) findViewById(R.id.input)).setEnabled(false);
+ } else {
+ ((EditText) findViewById(R.id.input)).setEnabled(true);
+ }
- // Optimization - cache field lookup
- Collection mConversations = server.getConversations();
- MessageListAdapter mAdapter;
-
- // Fill view with messages that have been buffered while paused
- for (Conversation conversation : mConversations) {
- mAdapter = conversation.getMessageListAdapter();
-
- if (mAdapter != null) {
- mAdapter.addBulkMessages(conversation.getBuffer());
- conversation.clearBuffer();
- }
- }
-
- // Join channel that has been selected in JoinActivity (onActivityResult())
- if (joinChannelBuffer != null) {
- new Thread() {
- public void run() {
- binder.getService().getConnection(serverId).joinChannel(joinChannelBuffer);
- joinChannelBuffer = null;
- }
- }.start();
- }
- }
-
- /**
- * On Pause
- */
- @Override
- public void onPause()
- {
- super.onPause();
-
- if (binder != null && binder.getService() != null) {
- binder.getService().checkServiceStatus();
- }
+ // Optimization - cache field lookup
+ Collection mConversations = server.getConversations();
+ MessageListAdapter mAdapter;
+
+ // Fill view with messages that have been buffered while paused
+ for (Conversation conversation : mConversations) {
+ mAdapter = conversation.getMessageListAdapter();
+
+ if (mAdapter != null) {
+ mAdapter.addBulkMessages(conversation.getBuffer());
+ conversation.clearBuffer();
+ }
+ }
+
+ // Join channel that has been selected in JoinActivity (onActivityResult())
+ if (joinChannelBuffer != null) {
+ new Thread() {
+ public void run() {
+ binder.getService().getConnection(serverId).joinChannel(joinChannelBuffer);
+ joinChannelBuffer = null;
+ }
+ }.start();
+ }
+ }
+
+ /**
+ * On Pause
+ */
+ @Override
+ public void onPause()
+ {
+ super.onPause();
+
+ if (binder != null && binder.getService() != null) {
+ binder.getService().checkServiceStatus();
+ }
- unbindService(this);
- unregisterReceiver(channelReceiver);
- unregisterReceiver(serverReceiver);
- }
+ unbindService(this);
+ unregisterReceiver(channelReceiver);
+ unregisterReceiver(serverReceiver);
+ }
- /**
- * On service connected
- */
- public void onServiceConnected(ComponentName name, IBinder service)
- {
- this.binder = (IRCBinder) service;
-
- // connect to irc server if connect has been requested
- if (server.getStatus() == Status.PRE_CONNECTING && getIntent().hasExtra("connect")) {
- server.setStatus(Status.CONNECTING);
- binder.connect(server);
- }
- }
+ /**
+ * On service connected
+ */
+ public void onServiceConnected(ComponentName name, IBinder service)
+ {
+ this.binder = (IRCBinder) service;
+
+ // connect to irc server if connect has been requested
+ if (server.getStatus() == Status.PRE_CONNECTING && getIntent().hasExtra("connect")) {
+ server.setStatus(Status.CONNECTING);
+ binder.connect(server);
+ }
+ }
- /**
- * On service disconnected
- */
- public void onServiceDisconnected(ComponentName name)
- {
- this.binder = null;
- }
+ /**
+ * On service disconnected
+ */
+ public void onServiceDisconnected(ComponentName name)
+ {
+ this.binder = null;
+ }
- /**
- * On options menu requested
- */
- @Override
- public boolean onCreateOptionsMenu(Menu menu)
- {
- super.onCreateOptionsMenu(menu);
-
- // inflate from xml
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.conversations, menu);
-
- return true;
- }
-
- /**
- * On prepare options menu
- */
- @Override
- public boolean onPrepareOptionsMenu(Menu menu)
- {
- menu.getItem(0).setEnabled(server.isConnected()); // join
- menu.getItem(1).setEnabled(server.isConnected()); // users
- menu.getItem(2).setEnabled(server.isConnected()); // close
-
- return true;
- }
+ /**
+ * On options menu requested
+ */
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu)
+ {
+ super.onCreateOptionsMenu(menu);
+
+ // inflate from xml
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.conversations, menu);
+
+ return true;
+ }
+
+ /**
+ * On prepare options menu
+ */
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu)
+ {
+ menu.getItem(0).setEnabled(server.isConnected()); // join
+ menu.getItem(1).setEnabled(server.isConnected()); // users
+ menu.getItem(2).setEnabled(server.isConnected()); // close
+
+ return true;
+ }
- /**
- * On menu item selected
- */
- @Override
- public boolean onMenuItemSelected(int featureId, MenuItem item)
- {
- switch (item.getItemId()) {
- case R.id.disconnect:
- server.setStatus(Status.DISCONNECTED);
- binder.getService().getConnection(serverId).quitServer();
- server.clearConversations();
- setResult(RESULT_OK);
- finish();
- break;
- case R.id.close:
- Conversation conversationToClose = deckAdapter.getItem(deck.getSelectedItemPosition());
- // Make sure we part a channel when closing the channel conversation
- if (conversationToClose.getType() == Conversation.TYPE_CHANNEL) {
- binder.getService().getConnection(serverId).partChannel(conversationToClose.getName());
- }
- else if (conversationToClose.getType() == Conversation.TYPE_QUERY) {
- server.removeConversation(conversationToClose.getName());
- onRemoveConversation(conversationToClose.getName());
- } else {
- Toast.makeText(this, getResources().getString(R.string.close_server_window), Toast.LENGTH_SHORT).show();
- }
- break;
- case R.id.join:
- startActivityForResult(new Intent(this, JoinActivity.class), REQUEST_CODE_JOIN);
- break;
- case R.id.users:
- Conversation conversationForUserList = deckAdapter.getItem(deck.getSelectedItemPosition());
- if (conversationForUserList.getType() == Conversation.TYPE_CHANNEL) {
- Intent intent = new Intent(this, UsersActivity.class);
- intent.putExtra(
- Extra.USERS,
- binder.getService().getConnection(server.getId()).getUsersAsStringArray(
- conversationForUserList.getName()
- )
- );
- startActivityForResult(intent, REQUEST_CODE_USERS);
- } else {
- Toast.makeText(this, getResources().getString(R.string.only_usable_from_channel), Toast.LENGTH_SHORT).show();
- }
- break;
- }
-
- return true;
- }
-
- /**
- * Get server object assigned to this activity
- *
- * @return the server object
- */
- public Server getServer()
- {
- return server;
- }
+ /**
+ * On menu item selected
+ */
+ @Override
+ public boolean onMenuItemSelected(int featureId, MenuItem item)
+ {
+ switch (item.getItemId()) {
+ case R.id.disconnect:
+ server.setStatus(Status.DISCONNECTED);
+ binder.getService().getConnection(serverId).quitServer();
+ server.clearConversations();
+ setResult(RESULT_OK);
+ finish();
+ break;
+ case R.id.close:
+ Conversation conversationToClose = deckAdapter.getItem(deck.getSelectedItemPosition());
+ // Make sure we part a channel when closing the channel conversation
+ if (conversationToClose.getType() == Conversation.TYPE_CHANNEL) {
+ binder.getService().getConnection(serverId).partChannel(conversationToClose.getName());
+ }
+ else if (conversationToClose.getType() == Conversation.TYPE_QUERY) {
+ server.removeConversation(conversationToClose.getName());
+ onRemoveConversation(conversationToClose.getName());
+ } else {
+ Toast.makeText(this, getResources().getString(R.string.close_server_window), Toast.LENGTH_SHORT).show();
+ }
+ break;
+ case R.id.join:
+ startActivityForResult(new Intent(this, JoinActivity.class), REQUEST_CODE_JOIN);
+ break;
+ case R.id.users:
+ Conversation conversationForUserList = deckAdapter.getItem(deck.getSelectedItemPosition());
+ if (conversationForUserList.getType() == Conversation.TYPE_CHANNEL) {
+ Intent intent = new Intent(this, UsersActivity.class);
+ intent.putExtra(
+ Extra.USERS,
+ binder.getService().getConnection(server.getId()).getUsersAsStringArray(
+ conversationForUserList.getName()
+ )
+ );
+ startActivityForResult(intent, REQUEST_CODE_USERS);
+ } else {
+ Toast.makeText(this, getResources().getString(R.string.only_usable_from_channel), Toast.LENGTH_SHORT).show();
+ }
+ break;
+ }
+
+ return true;
+ }
+
+ /**
+ * Get server object assigned to this activity
+ *
+ * @return the server object
+ */
+ public Server getServer()
+ {
+ return server;
+ }
- /**
- * On conversation message
- */
- public void onConversationMessage(String target)
- {
- Conversation conversation = server.getConversation(target);
-
- if (conversation == null) {
- // In an early state it can happen that the conversation object
- // is not created yet.
- return;
- }
-
- MessageListAdapter adapter = conversation.getMessageListAdapter();
-
- conversation.setStatus(Conversation.STATUS_MESSAGE);
+ /**
+ * On conversation message
+ */
+ public void onConversationMessage(String target)
+ {
+ Conversation conversation = server.getConversation(target);
+
+ if (conversation == null) {
+ // In an early state it can happen that the conversation object
+ // is not created yet.
+ return;
+ }
+
+ MessageListAdapter adapter = conversation.getMessageListAdapter();
+
+ conversation.setStatus(Conversation.STATUS_MESSAGE);
- if (dots != null) {
- dots.invalidate();
- }
-
- while(conversation.hasBufferedMessages()) {
- Message message = conversation.pollBufferedMessage();
-
- if (adapter != null) {
- adapter.addMessage(message);
- }
- }
- }
+ if (dots != null) {
+ dots.invalidate();
+ }
+
+ while(conversation.hasBufferedMessages()) {
+ Message message = conversation.pollBufferedMessage();
+
+ if (adapter != null) {
+ adapter.addMessage(message);
+ }
+ }
+ }
- /**
- * On new conversation
- */
- public void onNewConversation(String target)
- {
- deckAdapter.addItem(server.getConversation(target));
-
- if (!deckAdapter.isSwitched()) {
- // Scroll to new conversation
- deck.setSelection(deckAdapter.getCount() - 1);
- }
- }
-
- /**
- * On conversation remove
- */
- public void onRemoveConversation(String target)
- {
- deckAdapter.removeItem(target);
-
- if (deckAdapter.isSwitched()) {
- switcher.showNext();
- switcher.removeView(deckAdapter.getSwitchedView());
- deckAdapter.setSwitched(null, null);
- }
- }
+ /**
+ * On new conversation
+ */
+ public void onNewConversation(String target)
+ {
+ deckAdapter.addItem(server.getConversation(target));
+
+ if (!deckAdapter.isSwitched()) {
+ // Scroll to new conversation
+ deck.setSelection(deckAdapter.getCount() - 1);
+ }
+ }
+
+ /**
+ * On conversation remove
+ */
+ public void onRemoveConversation(String target)
+ {
+ deckAdapter.removeItem(target);
+
+ if (deckAdapter.isSwitched()) {
+ switcher.showNext();
+ switcher.removeView(deckAdapter.getSwitchedView());
+ deckAdapter.setSwitched(null, null);
+ }
+ }
- /**
- * On server status update
- */
- public void onStatusUpdate()
- {
- ((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon());
-
- EditText input = (EditText) findViewById(R.id.input);
+ /**
+ * 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);
+ if (server.isConnected()) {
+ input.setEnabled(true);
+ } else {
+ input.setEnabled(false);
- if (server.getStatus() == Status.CONNECTING) {
- deckAdapter.clearConversations();
- deckAdapter.addItem(server.getConversation(ServerInfo.DEFAULT_NAME));
- return;
- }
+ if (server.getStatus() == Status.CONNECTING) {
+ deckAdapter.clearConversations();
+ deckAdapter.addItem(server.getConversation(ServerInfo.DEFAULT_NAME));
+ return;
+ }
- if (!binder.getService().getSettings().isReconnectEnabled()) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setMessage(getResources().getString(R.string.reconnect_after_disconnect, server.getTitle()))
- .setCancelable(false)
- .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- binder.getService().getConnection(server.getId()).setAutojoinChannels(
- server.getCurrentChannelNames()
- );
- server.clearConversations();
- deckAdapter.clearConversations();
- deckAdapter.addItem(server.getConversation(ServerInfo.DEFAULT_NAME));
- binder.connect(server);
- }
- })
- .setNegativeButton(getString(R.string.negative_button), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- }
- }
- }
+ if (!binder.getService().getSettings().isReconnectEnabled()) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setMessage(getResources().getString(R.string.reconnect_after_disconnect, server.getTitle()))
+ .setCancelable(false)
+ .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ binder.getService().getConnection(server.getId()).setAutojoinChannels(
+ server.getCurrentChannelNames()
+ );
+ server.clearConversations();
+ deckAdapter.clearConversations();
+ deckAdapter.addItem(server.getConversation(ServerInfo.DEFAULT_NAME));
+ binder.connect(server);
+ }
+ })
+ .setNegativeButton(getString(R.string.negative_button), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ dialog.cancel();
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
+ }
+ }
- /**
- * On key down
- *
- * XXX: As we only track the back key: Android >= 2.0 will call a method called onBackPressed()
- */
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event)
- {
- if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
- if (deckAdapter.isSwitched()) {
- switcher.showNext();
- switcher.removeView(deckAdapter.getSwitchedView());
- deckAdapter.setSwitched(null, null);
- return true;
- }
- }
- return super.onKeyDown(keyCode, event);
- }
+ /**
+ * On key down
+ *
+ * XXX: As we only track the back key: Android >= 2.0 will call a method called onBackPressed()
+ */
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event)
+ {
+ if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
+ if (deckAdapter.isSwitched()) {
+ switcher.showNext();
+ switcher.removeView(deckAdapter.getSwitchedView());
+ deckAdapter.setSwitched(null, null);
+ return true;
+ }
+ }
+ return super.onKeyDown(keyCode, event);
+ }
- /**
- * On key pressed (input line)
- */
- public boolean onKey(View view, int keyCode, KeyEvent event)
- {
- EditText input = (EditText) view;
-
- if (keyCode == KeyEvent.KEYCODE_DPAD_UP && event.getAction() == KeyEvent.ACTION_DOWN) {
- String message = scrollback.goBack();
- if (message != null) {
- input.setText(message);
- }
- return true;
- }
-
- if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN && event.getAction() == KeyEvent.ACTION_DOWN) {
- String message = scrollback.goForward();
- if (message != null) {
- input.setText(message);
- }
- return true;
- }
-
- // Nick completion
- if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getAction() == KeyEvent.ACTION_DOWN) {
- String text = input.getText().toString();
+ /**
+ * On key pressed (input line)
+ */
+ public boolean onKey(View view, int keyCode, KeyEvent event)
+ {
+ EditText input = (EditText) view;
+
+ if (keyCode == KeyEvent.KEYCODE_DPAD_UP && event.getAction() == KeyEvent.ACTION_DOWN) {
+ String message = scrollback.goBack();
+ if (message != null) {
+ input.setText(message);
+ }
+ return true;
+ }
+
+ if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN && event.getAction() == KeyEvent.ACTION_DOWN) {
+ String message = scrollback.goForward();
+ if (message != null) {
+ input.setText(message);
+ }
+ return true;
+ }
+
+ // Nick completion
+ if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getAction() == KeyEvent.ACTION_DOWN) {
+ String text = input.getText().toString();
- if (text.length() <= 0) {
- return true;
- }
+ if (text.length() <= 0) {
+ return true;
+ }
- String[] tokens = text.split("[\\s,.-]+");
+ String[] tokens = text.split("[\\s,.-]+");
- if (tokens.length <= 0) {
- return true;
- }
+ if (tokens.length <= 0) {
+ return true;
+ }
- String word = tokens[tokens.length - 1].toLowerCase();
- tokens[tokens.length - 1] = null;
+ String word = tokens[tokens.length - 1].toLowerCase();
+ tokens[tokens.length - 1] = null;
- int begin = input.getSelectionStart();
- int end = input.getSelectionEnd();
- int cursor = Math.min(begin, end);
- int sel_end = Math.max(begin, end);
+ int begin = input.getSelectionStart();
+ int end = input.getSelectionEnd();
+ int cursor = Math.min(begin, end);
+ int sel_end = Math.max(begin, end);
- boolean in_selection = cursor != sel_end;
+ boolean in_selection = cursor != sel_end;
- if (in_selection) {
- word = text.substring(cursor, sel_end);
- } else {
- // use the word at the curent cursor position
- while(true) {
- cursor -= 1;
- if (cursor <= 0 || text.charAt(cursor) == ' ') {
- break;
- }
- }
+ if (in_selection) {
+ word = text.substring(cursor, sel_end);
+ } else {
+ // use the word at the curent cursor position
+ while(true) {
+ cursor -= 1;
+ if (cursor <= 0 || text.charAt(cursor) == ' ') {
+ break;
+ }
+ }
- if (cursor < 0) {
- cursor = 0;
- }
+ if (cursor < 0) {
+ cursor = 0;
+ }
- if (text.charAt(cursor) == ' ') {
- cursor += 1;
- }
+ if (text.charAt(cursor) == ' ') {
+ cursor += 1;
+ }
- sel_end = text.indexOf(' ', cursor);
+ sel_end = text.indexOf(' ', cursor);
- if (sel_end == -1) {
- sel_end = text.length();
- }
+ if (sel_end == -1) {
+ sel_end = text.length();
+ }
- word = text.substring(cursor, sel_end);
- }
- // Log.d("Yaaic", "Trying to complete nick: " + word);
+ word = text.substring(cursor, sel_end);
+ }
+ // Log.d("Yaaic", "Trying to complete nick: " + word);
- Conversation conversationForUserList = deckAdapter.getItem(deck.getSelectedItemPosition());
+ Conversation conversationForUserList = deckAdapter.getItem(deck.getSelectedItemPosition());
- String[] users = null;
+ String[] users = null;
- if (conversationForUserList.getType() == Conversation.TYPE_CHANNEL) {
- users = binder.getService().getConnection(server.getId()).getUsersAsStringArray(
- conversationForUserList.getName()
- );
- }
+ if (conversationForUserList.getType() == Conversation.TYPE_CHANNEL) {
+ users = binder.getService().getConnection(server.getId()).getUsersAsStringArray(
+ conversationForUserList.getName()
+ );
+ }
- // go through users and add matches
- if (users != null) {
- List result = new ArrayList();
+ // go through users and add matches
+ if (users != null) {
+ List result = new ArrayList();
- for (int i = 0; i < users.length; i++) {
- if (users[i].toLowerCase().startsWith(word)) {
- result.add(Integer.valueOf(i));
- }
- }
+ for (int i = 0; i < users.length; i++) {
+ if (users[i].toLowerCase().startsWith(word)) {
+ result.add(Integer.valueOf(i));
+ }
+ }
- if (result.size() == 1) {
- String text1 = users[result.get(0).intValue()];
+ if (result.size() == 1) {
+ String text1 = users[result.get(0).intValue()];
- if (cursor == 0) {
- text1 += ":";
- }
+ if (cursor == 0) {
+ text1 += ":";
+ }
- text1 += " ";
- input.getText().replace(cursor, sel_end, text1, 0, text1.length());
- int old = input.getInputType();
- input.setInputType(old | setInputTypeFlag);
- } else if (result.size() > 0) {
- Intent intent = new Intent(this, UsersActivity.class);
- String[] extra = new String[result.size()];
- int i = 0;
+ text1 += " ";
+ input.getText().replace(cursor, sel_end, text1, 0, text1.length());
+ int old = input.getInputType();
+ input.setInputType(old | setInputTypeFlag);
+ } else if (result.size() > 0) {
+ Intent intent = new Intent(this, UsersActivity.class);
+ String[] extra = new String[result.size()];
+ int i = 0;
- for (Integer n : result) {
- extra[i++] = users[n.intValue()];
- }
+ for (Integer n : result) {
+ extra[i++] = users[n.intValue()];
+ }
- input.setSelection(cursor, sel_end);
- intent.putExtra(Extra.USERS, extra);
- startActivityForResult(intent, REQUEST_CODE_NICK_COMPLETION);
- }
- }
- return true;
- }
+ input.setSelection(cursor, sel_end);
+ intent.putExtra(Extra.USERS, extra);
+ startActivityForResult(intent, REQUEST_CODE_NICK_COMPLETION);
+ }
+ }
+ return true;
+ }
- if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
- if (!server.isConnected()) {
- Message message = new Message(getString(R.string.message_not_connected));
- message.setColor(Message.COLOR_RED);
- message.setIcon(R.drawable.error);
- server.getConversation(server.getSelectedConversation()).addMessage(message);
- onConversationMessage(server.getSelectedConversation());
- }
-
- String text = input.getText().toString();
- input.setText("");
-
- if (text.equals("")) {
- // ignore empty messages
- return true;
- }
-
- scrollback.addMessage(text);
-
- Conversation conversation = deckAdapter.getItem(deck.getSelectedItemPosition());
-
- if (conversation != null) {
- if (!text.trim().startsWith("/")) {
- if (conversation.getType() != Conversation.TYPE_SERVER) {
- String nickname = binder.getService().getConnection(serverId).getNick();
- conversation.addMessage(new Message("<" + nickname + "> " + text));
- binder.getService().getConnection(serverId).sendMessage(conversation.getName(), text);
- } else {
- Message message = new Message(getString(R.string.chat_only_form_channel));
- message.setColor(Message.COLOR_YELLOW);
- message.setIcon(R.drawable.warning);
- conversation.addMessage(message);
- }
- onConversationMessage(conversation.getName());
- } else {
- CommandParser.getInstance().parse(text, server, conversation, binder.getService());
- }
- }
-
- return true;
- }
- return false;
- }
-
- /**
- * On activity result
- */
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data)
- {
- if (resultCode != RESULT_OK) {
- // ignore other result codes
- return;
- }
-
- switch (requestCode) {
- case REQUEST_CODE_SPEECH:
- ArrayList matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
- StringBuffer buffer = new StringBuffer();
- for (String partial : matches) {
- buffer.append(" ");
- buffer.append(partial);
- }
- ((EditText) findViewById(R.id.input)).setText(buffer.toString().trim());
- break;
- case REQUEST_CODE_JOIN:
- joinChannelBuffer = data.getExtras().getString("channel");
- break;
- case REQUEST_CODE_USERS:
- Intent intent = new Intent(this, UserActivity.class);
- intent.putExtra(Extra.USER, data.getStringExtra(Extra.USER));
- startActivityForResult(intent, REQUEST_CODE_USER);
- break;
- case REQUEST_CODE_NICK_COMPLETION:
- EditText input = (EditText) findViewById(R.id.input);
- String src = data.getExtras().getString(Extra.USER);
- int start = input.getSelectionStart();
- int end = input.getSelectionEnd();
+ if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
+ if (!server.isConnected()) {
+ Message message = new Message(getString(R.string.message_not_connected));
+ message.setColor(Message.COLOR_RED);
+ message.setIcon(R.drawable.error);
+ server.getConversation(server.getSelectedConversation()).addMessage(message);
+ onConversationMessage(server.getSelectedConversation());
+ }
+
+ String text = input.getText().toString();
+ input.setText("");
+
+ if (text.equals("")) {
+ // ignore empty messages
+ return true;
+ }
+
+ scrollback.addMessage(text);
+
+ Conversation conversation = deckAdapter.getItem(deck.getSelectedItemPosition());
+
+ if (conversation != null) {
+ if (!text.trim().startsWith("/")) {
+ if (conversation.getType() != Conversation.TYPE_SERVER) {
+ String nickname = binder.getService().getConnection(serverId).getNick();
+ conversation.addMessage(new Message("<" + nickname + "> " + text));
+ binder.getService().getConnection(serverId).sendMessage(conversation.getName(), text);
+ } else {
+ Message message = new Message(getString(R.string.chat_only_form_channel));
+ message.setColor(Message.COLOR_YELLOW);
+ message.setIcon(R.drawable.warning);
+ conversation.addMessage(message);
+ }
+ onConversationMessage(conversation.getName());
+ } else {
+ CommandParser.getInstance().parse(text, server, conversation, binder.getService());
+ }
+ }
+
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * On activity result
+ */
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data)
+ {
+ if (resultCode != RESULT_OK) {
+ // ignore other result codes
+ return;
+ }
+
+ switch (requestCode) {
+ case REQUEST_CODE_SPEECH:
+ ArrayList matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
+ StringBuffer buffer = new StringBuffer();
+ for (String partial : matches) {
+ buffer.append(" ");
+ buffer.append(partial);
+ }
+ ((EditText) findViewById(R.id.input)).setText(buffer.toString().trim());
+ break;
+ case REQUEST_CODE_JOIN:
+ joinChannelBuffer = data.getExtras().getString("channel");
+ break;
+ case REQUEST_CODE_USERS:
+ Intent intent = new Intent(this, UserActivity.class);
+ intent.putExtra(Extra.USER, data.getStringExtra(Extra.USER));
+ startActivityForResult(intent, REQUEST_CODE_USER);
+ break;
+ case REQUEST_CODE_NICK_COMPLETION:
+ EditText input = (EditText) findViewById(R.id.input);
+ String src = data.getExtras().getString(Extra.USER);
+ int start = input.getSelectionStart();
+ int end = input.getSelectionEnd();
- if (start == 0) {
- src += ":";
- }
+ if (start == 0) {
+ src += ":";
+ }
- src += " ";
- input.getText().replace(start, end, src, 0, src.length());
- // put cursor after inserted text
- input.setSelection(start + src.length());
- input.post(new Runnable() {
- @Override
- public void run() {
- // make the softkeyboard come up again (only if no hw keyboard is attached)
- EditText input = (EditText) findViewById(R.id.input);
- InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- mgr.showSoftInput(input, InputMethodManager.SHOW_IMPLICIT);
- }
- });
- input.requestFocus();
- break;
- case REQUEST_CODE_USER:
- final int actionId = data.getExtras().getInt(Extra.ACTION);
- final String nickname = data.getExtras().getString(Extra.USER);
- final IRCConnection connection = binder.getService().getConnection(server.getId());
- final String conversation = server.getSelectedConversation();
+ src += " ";
+ input.getText().replace(start, end, src, 0, src.length());
+ // put cursor after inserted text
+ input.setSelection(start + src.length());
+ input.post(new Runnable() {
+ @Override
+ public void run() {
+ // make the softkeyboard come up again (only if no hw keyboard is attached)
+ EditText input = (EditText) findViewById(R.id.input);
+ InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+ mgr.showSoftInput(input, InputMethodManager.SHOW_IMPLICIT);
+ }
+ });
+ input.requestFocus();
+ break;
+ case REQUEST_CODE_USER:
+ final int actionId = data.getExtras().getInt(Extra.ACTION);
+ final String nickname = data.getExtras().getString(Extra.USER);
+ final IRCConnection connection = binder.getService().getConnection(server.getId());
+ final String conversation = server.getSelectedConversation();
- // XXX: Implement me - The action should be handled after onResume()
- // to catch the broadcasts... now we just wait a second
- // Yes .. that's very ugly - we need some kind of queue that is handled after onResume()
-
- new Thread() {
- public void run() {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // Do nothing
- }
-
- switch (actionId) {
- case R.id.op:
- connection.op(conversation, nickname);
- break;
- case R.id.deop:
- connection.deOp(conversation, nickname);
- break;
- case R.id.voice:
- connection.voice(conversation, nickname);
- break;
- case R.id.devoice:
- connection.deVoice(conversation, nickname);
- break;
- case R.id.kick:
- connection.kick(conversation, nickname);
- break;
- case R.id.ban:
- connection.ban(conversation, nickname + "!*@*");
- break;
- }
- }
- }.start();
+ // XXX: Implement me - The action should be handled after onResume()
+ // to catch the broadcasts... now we just wait a second
+ // Yes .. that's very ugly - we need some kind of queue that is handled after onResume()
+
+ new Thread() {
+ public void run() {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // Do nothing
+ }
+
+ switch (actionId) {
+ case R.id.op:
+ connection.op(conversation, nickname);
+ break;
+ case R.id.deop:
+ connection.deOp(conversation, nickname);
+ break;
+ case R.id.voice:
+ connection.voice(conversation, nickname);
+ break;
+ case R.id.devoice:
+ connection.deVoice(conversation, nickname);
+ break;
+ case R.id.kick:
+ connection.kick(conversation, nickname);
+ break;
+ case R.id.ban:
+ connection.ban(conversation, nickname + "!*@*");
+ break;
+ }
+ }
+ }.start();
- break;
- }
- }
+ break;
+ }
+ }
}
diff --git a/application/src/org/yaaic/activity/JoinActivity.java b/application/src/org/yaaic/activity/JoinActivity.java
index 53bfd4e..5f32715 100644
--- a/application/src/org/yaaic/activity/JoinActivity.java
+++ b/application/src/org/yaaic/activity/JoinActivity.java
@@ -38,9 +38,9 @@ import android.widget.EditText;
*/
public class JoinActivity extends Activity implements OnClickListener
{
- /**
- * On create
- */
+ /**
+ * On create
+ */
@Override
public void onCreate(Bundle savedInstanceState)
{
@@ -54,11 +54,11 @@ public class JoinActivity extends Activity implements OnClickListener
/**
* On click
*/
- public void onClick(View v)
- {
- Intent intent = new Intent();
- intent.putExtra("channel", ((EditText) findViewById(R.id.channel)).getText().toString());
- setResult(RESULT_OK, intent);
- finish();
- }
+ public void onClick(View v)
+ {
+ Intent intent = new Intent();
+ intent.putExtra("channel", ((EditText) findViewById(R.id.channel)).getText().toString());
+ setResult(RESULT_OK, intent);
+ finish();
+ }
}
diff --git a/application/src/org/yaaic/activity/MessageActivity.java b/application/src/org/yaaic/activity/MessageActivity.java
index a2614b8..7e2b0d0 100644
--- a/application/src/org/yaaic/activity/MessageActivity.java
+++ b/application/src/org/yaaic/activity/MessageActivity.java
@@ -35,19 +35,19 @@ import android.widget.TextView;
*/
public class MessageActivity extends Activity
{
- /**
- * On create
- */
+ /**
+ * On create
+ */
@Override
public void onCreate(Bundle savedInstanceState)
{
- super.onCreate(savedInstanceState);
-
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.message);
-
- ((TextView) findViewById(R.id.message)).setText(
- getIntent().getExtras().getString(Extra.MESSAGE)
- );
+ super.onCreate(savedInstanceState);
+
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ setContentView(R.layout.message);
+
+ ((TextView) findViewById(R.id.message)).setText(
+ getIntent().getExtras().getString(Extra.MESSAGE)
+ );
}
}
diff --git a/application/src/org/yaaic/activity/ServersActivity.java b/application/src/org/yaaic/activity/ServersActivity.java
index ae8ca31..64bd837 100644
--- a/application/src/org/yaaic/activity/ServersActivity.java
+++ b/application/src/org/yaaic/activity/ServersActivity.java
@@ -60,14 +60,14 @@ import org.yaaic.receiver.ServerReceiver;
* @author Sebastian Kaspari
*/
public class ServersActivity extends ListActivity implements ServiceConnection, ServerListener, OnItemLongClickListener {
- private IRCBinder binder;
- private ServerReceiver receiver;
- private ServerListAdapter adapter;
- private ListView list;
-
- /**
- * On create
- */
+ private IRCBinder binder;
+ private ServerReceiver receiver;
+ private ServerListAdapter adapter;
+ private ListView list;
+
+ /**
+ * On create
+ */
@Override
public void onCreate(Bundle savedInstanceState)
{
@@ -88,18 +88,18 @@ public class ServersActivity extends ListActivity implements ServiceConnection,
@Override
public void onResume()
{
- super.onResume();
-
+ super.onResume();
+
// Start and connect to service
Intent intent = new Intent(this, IRCService.class);
intent.setAction(IRCService.ACTION_BACKGROUND);
startService(intent);
bindService(intent, this, 0);
- receiver = new ServerReceiver(this);
- registerReceiver(receiver, new IntentFilter(Broadcast.SERVER_UPDATE));
-
- adapter.loadServers();
+ receiver = new ServerReceiver(this);
+ registerReceiver(receiver, new IntentFilter(Broadcast.SERVER_UPDATE));
+
+ adapter.loadServers();
}
/**
@@ -108,210 +108,210 @@ public class ServersActivity extends ListActivity implements ServiceConnection,
@Override
public void onPause()
{
- super.onPause();
-
- if (binder != null && binder.getService() != null) {
- binder.getService().checkServiceStatus();
- }
-
- unbindService(this);
- unregisterReceiver(receiver);
+ super.onPause();
+
+ if (binder != null && binder.getService() != null) {
+ binder.getService().checkServiceStatus();
+ }
+
+ unbindService(this);
+ unregisterReceiver(receiver);
}
/**
* Service connected to Activity
*/
- public void onServiceConnected(ComponentName name, IBinder service)
- {
- binder = (IRCBinder) service;
- }
+ public void onServiceConnected(ComponentName name, IBinder service)
+ {
+ binder = (IRCBinder) service;
+ }
- /**
- * Service disconnected from Activity
- */
- public void onServiceDisconnected(ComponentName name)
- {
- binder = null;
- }
+ /**
+ * Service disconnected from Activity
+ */
+ public void onServiceDisconnected(ComponentName name)
+ {
+ binder = null;
+ }
- /**
- * On server selected
- */
- @Override
- protected void onListItemClick(ListView l, View v, int position, long id) {
- Server server = adapter.getItem(position);
-
- if (server == null) {
- // "Add server" was selected
- startActivityForResult(new Intent(this, AddServerActivity.class), 0);
- return;
- }
-
- Intent intent = new Intent(this, ConversationActivity.class);
-
- if (server.getStatus() == Status.DISCONNECTED) {
- server.setStatus(Status.PRE_CONNECTING);
- intent.putExtra("connect", true);
- }
-
- intent.putExtra("serverId", server.getId());
- startActivity(intent);
- }
-
- /**
- * On long click
- */
- public boolean onItemLongClick(AdapterView> l, View v, int position, long id)
- {
- final Server server = adapter.getItem(position);
-
- if (server == null) {
- // "Add server" view selected
- return true;
- }
-
- final CharSequence[] items = {
- getString(R.string.connect),
- getString(R.string.disconnect),
- getString(R.string.edit),
- getString(R.string.delete)
- };
+ /**
+ * On server selected
+ */
+ @Override
+ protected void onListItemClick(ListView l, View v, int position, long id) {
+ Server server = adapter.getItem(position);
+
+ if (server == null) {
+ // "Add server" was selected
+ startActivityForResult(new Intent(this, AddServerActivity.class), 0);
+ return;
+ }
+
+ Intent intent = new Intent(this, ConversationActivity.class);
+
+ if (server.getStatus() == Status.DISCONNECTED) {
+ server.setStatus(Status.PRE_CONNECTING);
+ intent.putExtra("connect", true);
+ }
+
+ intent.putExtra("serverId", server.getId());
+ startActivity(intent);
+ }
+
+ /**
+ * On long click
+ */
+ public boolean onItemLongClick(AdapterView> l, View v, int position, long id)
+ {
+ final Server server = adapter.getItem(position);
+
+ if (server == null) {
+ // "Add server" view selected
+ return true;
+ }
+
+ final CharSequence[] items = {
+ getString(R.string.connect),
+ getString(R.string.disconnect),
+ getString(R.string.edit),
+ getString(R.string.delete)
+ };
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(server.getTitle());
- builder.setItems(items, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- switch (item) {
- case 0: // Connect
- if (server.getStatus() == Status.DISCONNECTED) {
- binder.connect(server);
- server.setStatus(Status.CONNECTING);
- adapter.notifyDataSetChanged();
- }
- break;
- case 1: // Disconnect
- server.clearConversations();
- server.setStatus(Status.DISCONNECTED);
- binder.getService().getConnection(server.getId()).quitServer();
- break;
- case 2: // Edit
- editServer(server.getId());
- break;
- case 3: // Delete
- binder.getService().getConnection(server.getId()).quitServer();
- deleteServer(server.getId());
- break;
- }
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- return true;
- }
-
- /**
- * Start activity to edit server with given id
- *
- * @param serverId The id of the server
- */
- private void editServer(int serverId)
- {
- Server server = Yaaic.getInstance().getServerById(serverId);
-
- if (server.getStatus() != Status.DISCONNECTED) {
- Toast.makeText(this, getResources().getString(R.string.disconnect_before_editing), Toast.LENGTH_SHORT).show();
- }
- else {
- Intent intent = new Intent(this, AddServerActivity.class);
- intent.putExtra(Extra.SERVER, serverId);
- startActivityForResult(intent, 0);
- }
- }
-
- /**
- * Options Menu (Menu Button pressed)
- */
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(server.getTitle());
+ builder.setItems(items, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int item) {
+ switch (item) {
+ case 0: // Connect
+ if (server.getStatus() == Status.DISCONNECTED) {
+ binder.connect(server);
+ server.setStatus(Status.CONNECTING);
+ adapter.notifyDataSetChanged();
+ }
+ break;
+ case 1: // Disconnect
+ server.clearConversations();
+ server.setStatus(Status.DISCONNECTED);
+ binder.getService().getConnection(server.getId()).quitServer();
+ break;
+ case 2: // Edit
+ editServer(server.getId());
+ break;
+ case 3: // Delete
+ binder.getService().getConnection(server.getId()).quitServer();
+ deleteServer(server.getId());
+ break;
+ }
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ return true;
+ }
+
+ /**
+ * Start activity to edit server with given id
+ *
+ * @param serverId The id of the server
+ */
+ private void editServer(int serverId)
+ {
+ Server server = Yaaic.getInstance().getServerById(serverId);
+
+ if (server.getStatus() != Status.DISCONNECTED) {
+ Toast.makeText(this, getResources().getString(R.string.disconnect_before_editing), Toast.LENGTH_SHORT).show();
+ }
+ else {
+ Intent intent = new Intent(this, AddServerActivity.class);
+ intent.putExtra(Extra.SERVER, serverId);
+ startActivityForResult(intent, 0);
+ }
+ }
+
+ /**
+ * Options Menu (Menu Button pressed)
+ */
public boolean onCreateOptionsMenu(Menu menu)
{
- super.onCreateOptionsMenu(menu);
-
- // inflate from xml
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.servers, menu);
-
- return true;
+ super.onCreateOptionsMenu(menu);
+
+ // inflate from xml
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.servers, menu);
+
+ return true;
}
/**
* On menu item selected
*/
- @Override
- public boolean onMenuItemSelected(int featureId, MenuItem item)
- {
- switch (item.getItemId()) {
- case R.id.add:
- startActivityForResult(new Intent(this, AddServerActivity.class), 0);
- break;
- case R.id.about:
- startActivity(new Intent(this, AboutActivity.class));
- break;
- case R.id.settings:
- startActivity(new Intent(this, SettingsActivity.class));
- break;
- case R.id.exit:
- ArrayList mServers = Yaaic.getInstance().getServersAsArrayList();
- for (Server server : mServers) {
- if (binder.getService().hasConnection(server.getId())) {
- server.setStatus(Status.DISCONNECTED);
- binder.getService().getConnection(server.getId()).quitServer();
- }
- }
- // ugly
- binder.getService().stopForegroundCompat(R.string.app_name);
- finish();
- }
-
- return true;
- }
+ @Override
+ public boolean onMenuItemSelected(int featureId, MenuItem item)
+ {
+ switch (item.getItemId()) {
+ case R.id.add:
+ startActivityForResult(new Intent(this, AddServerActivity.class), 0);
+ break;
+ case R.id.about:
+ startActivity(new Intent(this, AboutActivity.class));
+ break;
+ case R.id.settings:
+ startActivity(new Intent(this, SettingsActivity.class));
+ break;
+ case R.id.exit:
+ ArrayList mServers = Yaaic.getInstance().getServersAsArrayList();
+ for (Server server : mServers) {
+ if (binder.getService().hasConnection(server.getId())) {
+ server.setStatus(Status.DISCONNECTED);
+ binder.getService().getConnection(server.getId()).quitServer();
+ }
+ }
+ // ugly
+ binder.getService().stopForegroundCompat(R.string.app_name);
+ finish();
+ }
+
+ return true;
+ }
- /**
- * On activity result
- */
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data)
- {
- if (resultCode == RESULT_OK) {
- // Refresh list from database
- adapter.loadServers();
- }
- }
-
- /**
- * Delete server
- *
- * @param serverId
- */
- public void deleteServer(int serverId)
- {
- Database db = new Database(this);
- db.removeServerById(serverId);
- db.close();
-
- Yaaic.getInstance().removeServerById(serverId);
- adapter.loadServers();
- }
+ /**
+ * On activity result
+ */
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data)
+ {
+ if (resultCode == RESULT_OK) {
+ // Refresh list from database
+ adapter.loadServers();
+ }
+ }
+
+ /**
+ * Delete server
+ *
+ * @param serverId
+ */
+ public void deleteServer(int serverId)
+ {
+ Database db = new Database(this);
+ db.removeServerById(serverId);
+ db.close();
+
+ Yaaic.getInstance().removeServerById(serverId);
+ adapter.loadServers();
+ }
- /**
- * On server status update
- */
- public void onStatusUpdate()
- {
- adapter.loadServers();
-
- if (adapter.getCount() > 2) {
- // Hide background if there are servers in the list
- list.setBackgroundDrawable(null);
- }
- }
+ /**
+ * On server status update
+ */
+ public void onStatusUpdate()
+ {
+ adapter.loadServers();
+
+ if (adapter.getCount() > 2) {
+ // Hide background if there are servers in the list
+ list.setBackgroundDrawable(null);
+ }
+ }
}
\ No newline at end of file
diff --git a/application/src/org/yaaic/activity/SettingsActivity.java b/application/src/org/yaaic/activity/SettingsActivity.java
index 9fe0e6c..360e5e1 100644
--- a/application/src/org/yaaic/activity/SettingsActivity.java
+++ b/application/src/org/yaaic/activity/SettingsActivity.java
@@ -32,10 +32,10 @@ import android.preference.PreferenceActivity;
*/
public class SettingsActivity extends PreferenceActivity
{
- /**
- * On create
- */
- @Override
+ /**
+ * On create
+ */
+ @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
diff --git a/application/src/org/yaaic/activity/UserActivity.java b/application/src/org/yaaic/activity/UserActivity.java
index 00b8d2b..678c5a1 100644
--- a/application/src/org/yaaic/activity/UserActivity.java
+++ b/application/src/org/yaaic/activity/UserActivity.java
@@ -41,44 +41,44 @@ import android.widget.TextView;
*/
public class UserActivity extends Activity implements OnClickListener
{
- private String nickname;
-
- /**
- * On create
- */
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- nickname = getIntent().getStringExtra(Extra.USER);
- setContentView(R.layout.user);
-
- // Use full width
- LayoutParams params = getWindow().getAttributes();
- params.width = WindowManager.LayoutParams.FILL_PARENT;
- getWindow().setAttributes(params);
-
- ((Button) findViewById(R.id.op)).setOnClickListener(this);
- ((Button) findViewById(R.id.deop)).setOnClickListener(this);
- ((Button) findViewById(R.id.voice)).setOnClickListener(this);
- ((Button) findViewById(R.id.devoice)).setOnClickListener(this);
- ((Button) findViewById(R.id.kick)).setOnClickListener(this);
- ((Button) findViewById(R.id.ban)).setOnClickListener(this);
-
- ((TextView) findViewById(R.id.nickname)).setText(nickname);
- }
+ private String nickname;
+
+ /**
+ * On create
+ */
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+ nickname = getIntent().getStringExtra(Extra.USER);
+ setContentView(R.layout.user);
+
+ // Use full width
+ LayoutParams params = getWindow().getAttributes();
+ params.width = WindowManager.LayoutParams.FILL_PARENT;
+ getWindow().setAttributes(params);
+
+ ((Button) findViewById(R.id.op)).setOnClickListener(this);
+ ((Button) findViewById(R.id.deop)).setOnClickListener(this);
+ ((Button) findViewById(R.id.voice)).setOnClickListener(this);
+ ((Button) findViewById(R.id.devoice)).setOnClickListener(this);
+ ((Button) findViewById(R.id.kick)).setOnClickListener(this);
+ ((Button) findViewById(R.id.ban)).setOnClickListener(this);
+
+ ((TextView) findViewById(R.id.nickname)).setText(nickname);
+ }
- /**
- * On button click
- */
- public void onClick(View v)
- {
- Intent intent = new Intent();
- intent.putExtra(Extra.ACTION, v.getId());
- intent.putExtra(Extra.USER, nickname);
- setResult(RESULT_OK, intent);
- finish();
- }
+ /**
+ * On button click
+ */
+ public void onClick(View v)
+ {
+ Intent intent = new Intent();
+ intent.putExtra(Extra.ACTION, v.getId());
+ intent.putExtra(Extra.USER, nickname);
+ setResult(RESULT_OK, intent);
+ finish();
+ }
}
diff --git a/application/src/org/yaaic/activity/UsersActivity.java b/application/src/org/yaaic/activity/UsersActivity.java
index d676710..626a171 100644
--- a/application/src/org/yaaic/activity/UsersActivity.java
+++ b/application/src/org/yaaic/activity/UsersActivity.java
@@ -41,34 +41,34 @@ import android.widget.ArrayAdapter;
*/
public class UsersActivity extends ListActivity implements OnItemClickListener
{
- /**
- * On create
- */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
-
- setContentView(R.layout.users);
-
- final String[] users = getIntent().getExtras().getStringArray(Extra.USERS);
- getListView().setOnItemClickListener(this);
+ /**
+ * On create
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+
+ setContentView(R.layout.users);
+
+ final String[] users = getIntent().getExtras().getStringArray(Extra.USERS);
+ getListView().setOnItemClickListener(this);
- // Add sorted list of users in own thread to avoid blocking UI
- // TODO: Move to a background task and show loading indicator while sorting
- Arrays.sort(users, String.CASE_INSENSITIVE_ORDER);
- getListView().setAdapter(new ArrayAdapter(UsersActivity.this, R.layout.useritem, users));
- }
+ // Add sorted list of users in own thread to avoid blocking UI
+ // TODO: Move to a background task and show loading indicator while sorting
+ Arrays.sort(users, String.CASE_INSENSITIVE_ORDER);
+ getListView().setAdapter(new ArrayAdapter(UsersActivity.this, R.layout.useritem, users));
+ }
- /**
- * On user selected
- */
- public void onItemClick(AdapterView> list, View item, int position, long id)
- {
- Intent intent = new Intent();
- intent.putExtra(Extra.USER, (String) getListView().getAdapter().getItem(position));
- setResult(RESULT_OK, intent);
- finish();
- }
+ /**
+ * On user selected
+ */
+ public void onItemClick(AdapterView> list, View item, int position, long id)
+ {
+ Intent intent = new Intent();
+ intent.putExtra(Extra.USER, (String) getListView().getAdapter().getItem(position));
+ setResult(RESULT_OK, intent);
+ finish();
+ }
}
diff --git a/application/src/org/yaaic/adapter/DeckAdapter.java b/application/src/org/yaaic/adapter/DeckAdapter.java
index 56f4448..ac99059 100644
--- a/application/src/org/yaaic/adapter/DeckAdapter.java
+++ b/application/src/org/yaaic/adapter/DeckAdapter.java
@@ -40,186 +40,186 @@ import android.widget.ListView;
*/
public class DeckAdapter extends BaseAdapter
{
- private LinkedList conversations;
- private MessageListView currentView;
- private String currentChannel;
-
- /**
- * Create a new DeckAdapter instance
- */
- public DeckAdapter()
- {
- conversations = new LinkedList();
- }
-
- /**
- * Clear conversations
- */
- public void clearConversations()
- {
- conversations = new LinkedList();
- }
-
- /**
- * Get number of item
- */
- public int getCount()
- {
- return conversations.size();
- }
+ private LinkedList conversations;
+ private MessageListView currentView;
+ private String currentChannel;
+
+ /**
+ * Create a new DeckAdapter instance
+ */
+ public DeckAdapter()
+ {
+ conversations = new LinkedList();
+ }
+
+ /**
+ * Clear conversations
+ */
+ public void clearConversations()
+ {
+ conversations = new LinkedList();
+ }
+
+ /**
+ * Get number of item
+ */
+ public int getCount()
+ {
+ return conversations.size();
+ }
- /**
- * Get item at position
- */
- public Conversation getItem(int position)
- {
- if (position >= 0 && position < conversations.size()) {
- return conversations.get(position);
- }
- return null;
- }
+ /**
+ * Get item at position
+ */
+ public Conversation getItem(int position)
+ {
+ if (position >= 0 && position < conversations.size()) {
+ return conversations.get(position);
+ }
+ return null;
+ }
- /**
- * Get id of item at position
- */
- public long getItemId(int position)
- {
- return position;
- }
-
- /**
- * Add an item
- *
- * @param channel Name of the channel
- * @param view The view object
- */
- public void addItem(Conversation conversation)
- {
- conversations.add(conversation);
-
- notifyDataSetChanged();
- }
-
- /**
- * Get an item by the channel's name
- *
- * @param channel
- * @return The item
- */
- public int getPositionByName(String name)
- {
- // Optimization - cache field lookups
- int mSize = conversations.size();
- LinkedList mItems = this.conversations;
-
- for (int i = 0; i < mSize; i++) {
- if (mItems.get(i).getName().equalsIgnoreCase(name)) {
- return i;
- }
- }
-
- return -1;
- }
-
- /**
- * Remove an item
- *
- * @param channel
- */
- public void removeItem(String target)
- {
- int position = getPositionByName(target);
-
- if (position != -1) {
- conversations.remove(position);
- notifyDataSetChanged();
- }
- }
-
- /**
- * Set single channel view
- *
- * @param switched
- */
- public void setSwitched(String channel, MessageListView current)
- {
- currentChannel = channel;
- currentView = current;
- }
-
- /**
- * Get single channel view
- *
- * @return
- */
- public MessageListView getSwitchedView()
- {
- return currentView;
- }
-
- /**
- * Get name of channel (single channel view)
- *
- * @return
- */
- public String getSwitchedName()
- {
- return currentChannel;
- }
-
- /**
- * Has the view been switched to single channel view?
- *
- * @return view true if view is in single channel view, false otherwise
- */
- public boolean isSwitched()
- {
- return currentView != null;
- }
-
- /**
- * Get view at given position
- */
- public View getView(int position, View convertView, ViewGroup parent)
- {
- Conversation conversation = getItem(position);
- return renderConversation(conversation, parent);
- }
-
- /**
- * Render a conversation view (MessageListView)
- *
- * @param channel The conversation of the view
- * @param parent The parent view (context)
- * @return The rendered MessageListView
- */
- public MessageListView renderConversation(Conversation conversation, ViewGroup parent)
- {
- MessageListView list = new MessageListView(parent.getContext(), parent);
- list.setOnItemClickListener(MessageClickListener.getInstance());
-
- MessageListAdapter adapter = conversation.getMessageListAdapter();
- if (adapter == null) {
- adapter = new MessageListAdapter(conversation, parent.getContext());
- conversation.setMessageListAdapter(adapter);
- }
-
- list.setAdapter(adapter);
-
- list.setDivider(null);
- list.setLayoutParams(new Gallery.LayoutParams(
- parent.getWidth() / 100 * 85,
- parent.getHeight()
- ));
-
- list.setBackgroundResource(R.layout.rounded);
- list.setCacheColorHint(0xee000000);
- list.setPadding(5, 5, 5, 5);
- list.setVerticalFadingEdgeEnabled(false);
- list.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_INSET);
- list.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
- list.setSelection(list.getAdapter().getCount() - 1); // scroll to bottom
-
- return list;
- }
+ /**
+ * Get id of item at position
+ */
+ public long getItemId(int position)
+ {
+ return position;
+ }
+
+ /**
+ * Add an item
+ *
+ * @param channel Name of the channel
+ * @param view The view object
+ */
+ public void addItem(Conversation conversation)
+ {
+ conversations.add(conversation);
+
+ notifyDataSetChanged();
+ }
+
+ /**
+ * Get an item by the channel's name
+ *
+ * @param channel
+ * @return The item
+ */
+ public int getPositionByName(String name)
+ {
+ // Optimization - cache field lookups
+ int mSize = conversations.size();
+ LinkedList mItems = this.conversations;
+
+ for (int i = 0; i < mSize; i++) {
+ if (mItems.get(i).getName().equalsIgnoreCase(name)) {
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
+ /**
+ * Remove an item
+ *
+ * @param channel
+ */
+ public void removeItem(String target)
+ {
+ int position = getPositionByName(target);
+
+ if (position != -1) {
+ conversations.remove(position);
+ notifyDataSetChanged();
+ }
+ }
+
+ /**
+ * Set single channel view
+ *
+ * @param switched
+ */
+ public void setSwitched(String channel, MessageListView current)
+ {
+ currentChannel = channel;
+ currentView = current;
+ }
+
+ /**
+ * Get single channel view
+ *
+ * @return
+ */
+ public MessageListView getSwitchedView()
+ {
+ return currentView;
+ }
+
+ /**
+ * Get name of channel (single channel view)
+ *
+ * @return
+ */
+ public String getSwitchedName()
+ {
+ return currentChannel;
+ }
+
+ /**
+ * Has the view been switched to single channel view?
+ *
+ * @return view true if view is in single channel view, false otherwise
+ */
+ public boolean isSwitched()
+ {
+ return currentView != null;
+ }
+
+ /**
+ * Get view at given position
+ */
+ public View getView(int position, View convertView, ViewGroup parent)
+ {
+ Conversation conversation = getItem(position);
+ return renderConversation(conversation, parent);
+ }
+
+ /**
+ * Render a conversation view (MessageListView)
+ *
+ * @param channel The conversation of the view
+ * @param parent The parent view (context)
+ * @return The rendered MessageListView
+ */
+ public MessageListView renderConversation(Conversation conversation, ViewGroup parent)
+ {
+ MessageListView list = new MessageListView(parent.getContext(), parent);
+ list.setOnItemClickListener(MessageClickListener.getInstance());
+
+ MessageListAdapter adapter = conversation.getMessageListAdapter();
+ if (adapter == null) {
+ adapter = new MessageListAdapter(conversation, parent.getContext());
+ conversation.setMessageListAdapter(adapter);
+ }
+
+ list.setAdapter(adapter);
+
+ list.setDivider(null);
+ list.setLayoutParams(new Gallery.LayoutParams(
+ parent.getWidth() / 100 * 85,
+ parent.getHeight()
+ ));
+
+ list.setBackgroundResource(R.layout.rounded);
+ list.setCacheColorHint(0xee000000);
+ list.setPadding(5, 5, 5, 5);
+ list.setVerticalFadingEdgeEnabled(false);
+ list.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_INSET);
+ list.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
+ list.setSelection(list.getAdapter().getCount() - 1); // scroll to bottom
+
+ return list;
+ }
}
diff --git a/application/src/org/yaaic/adapter/MessageListAdapter.java b/application/src/org/yaaic/adapter/MessageListAdapter.java
index c5e570a..b4a5c3d 100644
--- a/application/src/org/yaaic/adapter/MessageListAdapter.java
+++ b/application/src/org/yaaic/adapter/MessageListAdapter.java
@@ -38,122 +38,122 @@ import android.widget.TextView;
*/
public class MessageListAdapter extends BaseAdapter
{
- private LinkedList messages;
- private Context context;
-
- /**
- * Create a new MessageAdapter
- *
- * @param channel
- * @param context
- */
- public MessageListAdapter(Conversation conversation, Context context)
- {
- LinkedList messages = new LinkedList();
-
- // Render channel name as first message in channel
- if (conversation.getType() != Conversation.TYPE_SERVER) {
- Message header = new Message(conversation.getName());
- header.setColor(Message.COLOR_RED);
- messages.add(header.renderTextView(context));
- }
-
- // Optimization - cache field lookups
- LinkedList mHistory = conversation.getHistory();
- int mSize = mHistory.size();
-
- for (int i = 0; i < mSize; i++) {
- messages.add(mHistory.get(i).renderTextView(context));
- }
-
- // XXX: We don't want to clear the buffer, we want to add only
- // buffered messages that are not already added (history)
- conversation.clearBuffer();
-
- this.messages = messages;
- this.context = context;
- }
+ private LinkedList messages;
+ private Context context;
+
+ /**
+ * Create a new MessageAdapter
+ *
+ * @param channel
+ * @param context
+ */
+ public MessageListAdapter(Conversation conversation, Context context)
+ {
+ LinkedList messages = new LinkedList();
+
+ // Render channel name as first message in channel
+ if (conversation.getType() != Conversation.TYPE_SERVER) {
+ Message header = new Message(conversation.getName());
+ header.setColor(Message.COLOR_RED);
+ messages.add(header.renderTextView(context));
+ }
+
+ // Optimization - cache field lookups
+ LinkedList mHistory = conversation.getHistory();
+ int mSize = mHistory.size();
+
+ for (int i = 0; i < mSize; i++) {
+ messages.add(mHistory.get(i).renderTextView(context));
+ }
+
+ // XXX: We don't want to clear the buffer, we want to add only
+ // buffered messages that are not already added (history)
+ conversation.clearBuffer();
+
+ this.messages = messages;
+ this.context = context;
+ }
- /**
- * Add a message to the list
- *
- * @param message
- */
- public void addMessage(Message message)
- {
- messages.add(message.renderTextView(context));
-
- if (messages.size() > Conversation.HISTORY_SIZE) {
- messages.remove(0);
- }
-
- notifyDataSetChanged();
- }
-
- /**
- * Add a list of messages to the list
- *
- * @param messages
- */
- public void addBulkMessages(LinkedList messages)
- {
- LinkedList mMessages = this.messages;
- Context mContext = this.context;
- int mSize = messages.size();
-
- for (int i = mSize - 1; i > -1; i--) {
- mMessages.add(messages.get(i).renderTextView(mContext));
-
- if (mMessages.size() > Conversation.HISTORY_SIZE) {
- mMessages.remove(0);
- }
- }
-
- notifyDataSetChanged();
- }
-
- /**
- * Get number of items
- *
- * @return
- */
- public int getCount()
- {
- return messages.size();
- }
+ /**
+ * Add a message to the list
+ *
+ * @param message
+ */
+ public void addMessage(Message message)
+ {
+ messages.add(message.renderTextView(context));
+
+ if (messages.size() > Conversation.HISTORY_SIZE) {
+ messages.remove(0);
+ }
+
+ notifyDataSetChanged();
+ }
+
+ /**
+ * Add a list of messages to the list
+ *
+ * @param messages
+ */
+ public void addBulkMessages(LinkedList messages)
+ {
+ LinkedList mMessages = this.messages;
+ Context mContext = this.context;
+ int mSize = messages.size();
+
+ for (int i = mSize - 1; i > -1; i--) {
+ mMessages.add(messages.get(i).renderTextView(mContext));
+
+ if (mMessages.size() > Conversation.HISTORY_SIZE) {
+ mMessages.remove(0);
+ }
+ }
+
+ notifyDataSetChanged();
+ }
+
+ /**
+ * Get number of items
+ *
+ * @return
+ */
+ public int getCount()
+ {
+ return messages.size();
+ }
- /**
- * Get item at given position
- *
- * @param position
- * @return
- */
- public TextView getItem(int position)
- {
- return messages.get(position);
- }
+ /**
+ * Get item at given position
+ *
+ * @param position
+ * @return
+ */
+ public TextView getItem(int position)
+ {
+ return messages.get(position);
+ }
- /**
- * Get id of item at given position
- *
- * @param position
- * @return
- */
- public long getItemId(int position)
- {
- return position;
- }
+ /**
+ * Get id of item at given position
+ *
+ * @param position
+ * @return
+ */
+ public long getItemId(int position)
+ {
+ return position;
+ }
- /**
- * Get item view for the given position
- *
- * @param position
- * @param convertView
- * @param parent
- * @return
- */
- public View getView(int position, View convertView, ViewGroup parent)
- {
- return getItem(position);
- }
+ /**
+ * Get item view for the given position
+ *
+ * @param position
+ * @param convertView
+ * @param parent
+ * @return
+ */
+ public View getView(int position, View convertView, ViewGroup parent)
+ {
+ return getItem(position);
+ }
}
diff --git a/application/src/org/yaaic/adapter/ServerListAdapter.java b/application/src/org/yaaic/adapter/ServerListAdapter.java
index e329822..70981ca 100644
--- a/application/src/org/yaaic/adapter/ServerListAdapter.java
+++ b/application/src/org/yaaic/adapter/ServerListAdapter.java
@@ -41,95 +41,95 @@ import android.widget.TextView;
*/
public class ServerListAdapter extends BaseAdapter
{
- private ArrayList servers;
-
- /**
- * Create a new adapter for server lists
- */
- public ServerListAdapter()
- {
- loadServers();
- }
-
- /**
- * Load servers from database
- *
- * Delegate call to yaaic instance
- */
- public void loadServers()
- {
- servers = Yaaic.getInstance().getServersAsArrayList();
- notifyDataSetChanged();
- }
-
- /**
- * Get number of items
- */
- public int getCount()
- {
- int size = servers.size();
-
- // Display "Add server" item
- if (size == 0) {
- return 1;
- }
-
- return size;
- }
+ private ArrayList servers;
+
+ /**
+ * Create a new adapter for server lists
+ */
+ public ServerListAdapter()
+ {
+ loadServers();
+ }
+
+ /**
+ * Load servers from database
+ *
+ * Delegate call to yaaic instance
+ */
+ public void loadServers()
+ {
+ servers = Yaaic.getInstance().getServersAsArrayList();
+ notifyDataSetChanged();
+ }
+
+ /**
+ * Get number of items
+ */
+ public int getCount()
+ {
+ int size = servers.size();
+
+ // Display "Add server" item
+ if (size == 0) {
+ return 1;
+ }
+
+ return size;
+ }
- /**
- * Get item at position
- *
- * @param position
- */
- public Server getItem(int position)
- {
- if (servers.size() == 0) {
- return null; // No server object for the "add server" view
- }
-
- return servers.get(position);
- }
+ /**
+ * Get item at position
+ *
+ * @param position
+ */
+ public Server getItem(int position)
+ {
+ if (servers.size() == 0) {
+ return null; // No server object for the "add server" view
+ }
+
+ return servers.get(position);
+ }
- /**
- * Get id of item at position
- *
- * @param position
- */
- public long getItemId(int position)
- {
- if (servers.size() == 0) {
- return 0;
- }
-
- return getItem(position).getId();
- }
+ /**
+ * Get id of item at position
+ *
+ * @param position
+ */
+ public long getItemId(int position)
+ {
+ if (servers.size() == 0) {
+ return 0;
+ }
+
+ return getItem(position).getId();
+ }
- /**
- * Get view for item at given position
- *
- * @param position
- * @param convertView
- * @param parent
- */
- public View getView(int position, View convertView, ViewGroup parent)
- {
- Server server = getItem(position);
-
- LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- if (server == null) {
- // Return "Add server" view
- return inflater.inflate(R.layout.addserveritem, null);
- }
-
- View v = inflater.inflate(R.layout.serveritem, null);
-
- ((TextView) v.findViewById(R.id.title)).setText(server.getTitle());
- ((TextView) v.findViewById(R.id.host)).setText(server.getIdentity().getNickname() + " @ " + server.getHost() + " : " + server.getPort());
-
- ((ImageView) v.findViewById(R.id.status)).setImageResource(server.getStatusIcon());
-
- return v;
- }
+ /**
+ * Get view for item at given position
+ *
+ * @param position
+ * @param convertView
+ * @param parent
+ */
+ public View getView(int position, View convertView, ViewGroup parent)
+ {
+ Server server = getItem(position);
+
+ LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+ if (server == null) {
+ // Return "Add server" view
+ return inflater.inflate(R.layout.addserveritem, null);
+ }
+
+ View v = inflater.inflate(R.layout.serveritem, null);
+
+ ((TextView) v.findViewById(R.id.title)).setText(server.getTitle());
+ ((TextView) v.findViewById(R.id.host)).setText(server.getIdentity().getNickname() + " @ " + server.getHost() + " : " + server.getPort());
+
+ ((ImageView) v.findViewById(R.id.status)).setImageResource(server.getStatusIcon());
+
+ return v;
+ }
}
diff --git a/application/src/org/yaaic/command/BaseHandler.java b/application/src/org/yaaic/command/BaseHandler.java
index 5728209..908f838 100644
--- a/application/src/org/yaaic/command/BaseHandler.java
+++ b/application/src/org/yaaic/command/BaseHandler.java
@@ -34,57 +34,57 @@ import android.content.Context;
*/
public abstract class BaseHandler
{
- /**
- * Execute the command
- *
- * @param params The params given (0 is the command itself)
- * @param server The server object
- * @param channel The channel object or null if no channel is selected
- * @param service The service with all server connections
- * @throws CommandException if command couldn't be executed
- */
- public abstract void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException;
-
- /**
- * Get the usage description for this command
- *
- * @return The usage description
- */
- public abstract String getUsage();
-
- /**
- * Get the description for this command
- *
- * @param context The current context. Needed for getting string resources
- * @return
- */
- public abstract String getDescription(Context context);
-
- /**
- * Merge params to a string
- *
- * @params params The params to merge
- */
- public static String mergeParams(String[] params)
- {
- return mergeParams(params, 1);
- }
-
- /**
- * Merge params to a string
- *
- * @param params The params to merge
- * @param position Start at given param
- */
- public static String mergeParams(String[] params, int position)
- {
- StringBuffer buffer = new StringBuffer();
-
- for (; position < params.length; position++) {
- buffer.append(params[position]);
- buffer.append(" ");
- }
-
- return buffer.toString().trim();
- }
+ /**
+ * Execute the command
+ *
+ * @param params The params given (0 is the command itself)
+ * @param server The server object
+ * @param channel The channel object or null if no channel is selected
+ * @param service The service with all server connections
+ * @throws CommandException if command couldn't be executed
+ */
+ public abstract void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException;
+
+ /**
+ * Get the usage description for this command
+ *
+ * @return The usage description
+ */
+ public abstract String getUsage();
+
+ /**
+ * Get the description for this command
+ *
+ * @param context The current context. Needed for getting string resources
+ * @return
+ */
+ public abstract String getDescription(Context context);
+
+ /**
+ * Merge params to a string
+ *
+ * @params params The params to merge
+ */
+ public static String mergeParams(String[] params)
+ {
+ return mergeParams(params, 1);
+ }
+
+ /**
+ * Merge params to a string
+ *
+ * @param params The params to merge
+ * @param position Start at given param
+ */
+ public static String mergeParams(String[] params, int position)
+ {
+ StringBuffer buffer = new StringBuffer();
+
+ for (; position < params.length; position++) {
+ buffer.append(params[position]);
+ buffer.append(" ");
+ }
+
+ return buffer.toString().trim();
+ }
}
diff --git a/application/src/org/yaaic/command/CommandParser.java b/application/src/org/yaaic/command/CommandParser.java
index 42babfc..a467b26 100644
--- a/application/src/org/yaaic/command/CommandParser.java
+++ b/application/src/org/yaaic/command/CommandParser.java
@@ -62,175 +62,175 @@ import org.yaaic.model.Server;
*/
public class CommandParser
{
- private HashMap commands;
- private HashMap aliases;
- private static CommandParser instance;
+ private HashMap commands;
+ private HashMap aliases;
+ private static CommandParser instance;
- /**
- * Create a new CommandParser instance
- */
- private CommandParser()
- {
- commands = new HashMap();
-
- // Commands
- commands.put("nick", new NickHandler());
- commands.put("join", new JoinHandler());
- commands.put("me", new MeHandler());
- commands.put("names", new NamesHandler());
- commands.put("echo", new EchoHandler());
- commands.put("topic", new TopicHandler());
- commands.put("quit", new QuitHandler());
- commands.put("op", new OpHandler());
- commands.put("voice", new VoiceHandler());
- commands.put("deop", new DeopHandler());
- commands.put("devoice", new DevoiceHandler());
- commands.put("kick", new KickHandler());
- commands.put("query", new QueryHandler());
- commands.put("part", new PartHandler());
- commands.put("close", new CloseHandler());
- commands.put("notice", new NoticeHandler());
- commands.put("dcc", new DCCHandler());
- commands.put("mode", new ModeHandler());
- commands.put("help", new HelpHandler());
- commands.put("away", new AwayHandler());
- commands.put("whois", new WhoisHandler());
- commands.put("msg", new MsgHandler());
- commands.put("quote", new RawHandler());
- commands.put("amsg", new AMsgHandler());
-
- aliases = new HashMap();
-
- // Aliases
- aliases.put("j","join");
- aliases.put("q", "query");
- aliases.put("h", "help");
- aliases.put("raw", "quote");
- aliases.put("w", "whois");
- }
-
- /**
- * Get the global CommandParser instance
- *
- * @return
- */
- public static synchronized CommandParser getInstance()
- {
- if (instance == null) {
- instance = new CommandParser();
- }
-
- return instance;
- }
-
- /**
- * Get the commands HashMap
- *
- * @return HashMap - command, commandHandler
- */
- public HashMap getCommands()
- {
- return commands;
- }
-
- /**
- * Get the command aliases HashMap
- *
- * @return HashMap - alias, command the alias belogs to
- */
- public HashMap getAliases()
- {
- return aliases;
- }
-
- /**
- * Is the given command a valid client command?
- *
- * @param command The (client) command to check (/command)
- * @return true if the command can be handled by the client, false otherwise
- */
- public boolean isClientCommand(String command)
- {
- return commands.containsKey(command.toLowerCase()) || aliases.containsKey(command.toLowerCase());
- }
-
- /**
- * Handle a client command
- *
- * @param type Type of the command (/type param1 param2 ..)
- * @param params The parameters of the command (0 is the command itself)
- * @param server The current server
- * @param conversation The selected conversation
- * @param service The service handling the connections
- */
- public void handleClientCommand(String type, String[] params, Server server, Conversation conversation, IRCService service)
- {
- BaseHandler command = null;
- if (commands.containsKey(type.toLowerCase())) {
- command = commands.get(type);
- } else if (aliases.containsKey(type.toLowerCase())) {
- String commandInCommands = aliases.get(type.toLowerCase());
- command = commands.get(commandInCommands);
- }
- try {
- command.execute(params, server, conversation, service);
- } catch(CommandException e) {
- // Command could not be executed
- if (conversation != null) {
- Message errorMessage = new Message(type + ": " + e.getMessage());
- errorMessage.setColor(Message.COLOR_RED);
- conversation.addMessage(errorMessage);
-
- // XXX:I18N - How to get a context here? (command_syntax)
- Message usageMessage = new Message("Syntax: " + command.getUsage());
- conversation.addMessage(usageMessage);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
+ /**
+ * Create a new CommandParser instance
+ */
+ private CommandParser()
+ {
+ commands = new HashMap();
+
+ // Commands
+ commands.put("nick", new NickHandler());
+ commands.put("join", new JoinHandler());
+ commands.put("me", new MeHandler());
+ commands.put("names", new NamesHandler());
+ commands.put("echo", new EchoHandler());
+ commands.put("topic", new TopicHandler());
+ commands.put("quit", new QuitHandler());
+ commands.put("op", new OpHandler());
+ commands.put("voice", new VoiceHandler());
+ commands.put("deop", new DeopHandler());
+ commands.put("devoice", new DevoiceHandler());
+ commands.put("kick", new KickHandler());
+ commands.put("query", new QueryHandler());
+ commands.put("part", new PartHandler());
+ commands.put("close", new CloseHandler());
+ commands.put("notice", new NoticeHandler());
+ commands.put("dcc", new DCCHandler());
+ commands.put("mode", new ModeHandler());
+ commands.put("help", new HelpHandler());
+ commands.put("away", new AwayHandler());
+ commands.put("whois", new WhoisHandler());
+ commands.put("msg", new MsgHandler());
+ commands.put("quote", new RawHandler());
+ commands.put("amsg", new AMsgHandler());
+
+ aliases = new HashMap();
+
+ // Aliases
+ aliases.put("j","join");
+ aliases.put("q", "query");
+ aliases.put("h", "help");
+ aliases.put("raw", "quote");
+ aliases.put("w", "whois");
+ }
+
+ /**
+ * Get the global CommandParser instance
+ *
+ * @return
+ */
+ public static synchronized CommandParser getInstance()
+ {
+ if (instance == null) {
+ instance = new CommandParser();
+ }
+
+ return instance;
+ }
+
+ /**
+ * Get the commands HashMap
+ *
+ * @return HashMap - command, commandHandler
+ */
+ public HashMap getCommands()
+ {
+ return commands;
+ }
+
+ /**
+ * Get the command aliases HashMap
+ *
+ * @return HashMap - alias, command the alias belogs to
+ */
+ public HashMap getAliases()
+ {
+ return aliases;
+ }
+
+ /**
+ * Is the given command a valid client command?
+ *
+ * @param command The (client) command to check (/command)
+ * @return true if the command can be handled by the client, false otherwise
+ */
+ public boolean isClientCommand(String command)
+ {
+ return commands.containsKey(command.toLowerCase()) || aliases.containsKey(command.toLowerCase());
+ }
+
+ /**
+ * Handle a client command
+ *
+ * @param type Type of the command (/type param1 param2 ..)
+ * @param params The parameters of the command (0 is the command itself)
+ * @param server The current server
+ * @param conversation The selected conversation
+ * @param service The service handling the connections
+ */
+ public void handleClientCommand(String type, String[] params, Server server, Conversation conversation, IRCService service)
+ {
+ BaseHandler command = null;
+ if (commands.containsKey(type.toLowerCase())) {
+ command = commands.get(type);
+ } else if (aliases.containsKey(type.toLowerCase())) {
+ String commandInCommands = aliases.get(type.toLowerCase());
+ command = commands.get(commandInCommands);
+ }
+ try {
+ command.execute(params, server, conversation, service);
+ } catch(CommandException e) {
+ // Command could not be executed
+ if (conversation != null) {
+ Message errorMessage = new Message(type + ": " + e.getMessage());
+ errorMessage.setColor(Message.COLOR_RED);
+ conversation.addMessage(errorMessage);
+
+ // XXX:I18N - How to get a context here? (command_syntax)
+ Message usageMessage = new Message("Syntax: " + command.getUsage());
+ conversation.addMessage(usageMessage);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
- service.sendBroadcast(intent);
- }
- }
- }
-
- /**
- * Handle a server command
- *
- * @param type Type of the command (/type param1 param2 ..)
- * @param params The parameters of the command (0 is the command itself)
- * @param server The current server
- * @param conversation The selected conversation
- * @param service The service handling the connections
- */
- public void handleServerCommand(String type, String[] params, Server server, Conversation conversation, IRCService service)
- {
- if (params.length > 1) {
- service.getConnection(server.getId()).sendRawLineViaQueue(
- type.toUpperCase() + " " + BaseHandler.mergeParams(params)
- );
- } else {
- service.getConnection(server.getId()).sendRawLineViaQueue(type.toUpperCase());
- }
- }
-
- /**
- * Parse the given line
- *
- * @param line
- */
- public void parse(String line, Server server, Conversation conversation, IRCService service)
- {
- line = line.trim().substring(1); // cut the slash
- String[] params = line.split(" ");
- String type = params[0];
-
- if (isClientCommand(type)) {
- handleClientCommand(type, params, server, conversation, service);
- } else {
- handleServerCommand(type, params, server, conversation, service);
- }
- }
+ service.sendBroadcast(intent);
+ }
+ }
+ }
+
+ /**
+ * Handle a server command
+ *
+ * @param type Type of the command (/type param1 param2 ..)
+ * @param params The parameters of the command (0 is the command itself)
+ * @param server The current server
+ * @param conversation The selected conversation
+ * @param service The service handling the connections
+ */
+ public void handleServerCommand(String type, String[] params, Server server, Conversation conversation, IRCService service)
+ {
+ if (params.length > 1) {
+ service.getConnection(server.getId()).sendRawLineViaQueue(
+ type.toUpperCase() + " " + BaseHandler.mergeParams(params)
+ );
+ } else {
+ service.getConnection(server.getId()).sendRawLineViaQueue(type.toUpperCase());
+ }
+ }
+
+ /**
+ * Parse the given line
+ *
+ * @param line
+ */
+ public void parse(String line, Server server, Conversation conversation, IRCService service)
+ {
+ line = line.trim().substring(1); // cut the slash
+ String[] params = line.split(" ");
+ String type = params[0];
+
+ if (isClientCommand(type)) {
+ handleClientCommand(type, params, server, conversation, service);
+ } else {
+ handleServerCommand(type, params, server, conversation, service);
+ }
+ }
}
diff --git a/application/src/org/yaaic/command/handler/AMsgHandler.java b/application/src/org/yaaic/command/handler/AMsgHandler.java
index 3221a8f..96074ed 100644
--- a/application/src/org/yaaic/command/handler/AMsgHandler.java
+++ b/application/src/org/yaaic/command/handler/AMsgHandler.java
@@ -43,53 +43,53 @@ import android.content.Intent;
*/
public class AMsgHandler extends BaseHandler
{
- /**
- * Execute /amsg
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length > 1) {
- String text = BaseHandler.mergeParams(params);
+ /**
+ * Execute /amsg
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length > 1) {
+ String text = BaseHandler.mergeParams(params);
-
- Collection mConversations = server.getConversations();
- for (Conversation currentConversation : mConversations) {
- if (currentConversation.getType() == Conversation.TYPE_CHANNEL) {
- Message message = new Message("<" + service.getConnection(server.getId()).getNick() + "> " + text);
- currentConversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- currentConversation.getName()
- );
-
- service.sendBroadcast(intent);
-
- service.getConnection(server.getId()).sendMessage(currentConversation.getName(), text);
- }
- }
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /amsg
- */
- @Override
- public String getUsage()
- {
- return "/amsg ";
- }
+
+ Collection mConversations = server.getConversations();
+ for (Conversation currentConversation : mConversations) {
+ if (currentConversation.getType() == Conversation.TYPE_CHANNEL) {
+ Message message = new Message("<" + service.getConnection(server.getId()).getNick() + "> " + text);
+ currentConversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ currentConversation.getName()
+ );
+
+ service.sendBroadcast(intent);
+
+ service.getConnection(server.getId()).sendMessage(currentConversation.getName(), text);
+ }
+ }
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /amsg
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/amsg ";
+ }
- /**
- * Description of /amsg
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_amsg);
- }
+ /**
+ * Description of /amsg
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_amsg);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/AwayHandler.java b/application/src/org/yaaic/command/handler/AwayHandler.java
index a4f037c..b5f3ac7 100644
--- a/application/src/org/yaaic/command/handler/AwayHandler.java
+++ b/application/src/org/yaaic/command/handler/AwayHandler.java
@@ -38,30 +38,30 @@ import android.content.Context;
*/
public class AwayHandler extends BaseHandler
{
- /**
- * Execute /away
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- service.getConnection(server.getId()).sendRawLineViaQueue("AWAY " + BaseHandler.mergeParams(params));
- }
+ /**
+ * Execute /away
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ service.getConnection(server.getId()).sendRawLineViaQueue("AWAY " + BaseHandler.mergeParams(params));
+ }
- /**
- * Get description of /away
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_away);
- }
+ /**
+ * Get description of /away
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_away);
+ }
- /**
- * Get usage of /away
- */
- @Override
- public String getUsage()
- {
- return "/away []";
- }
+ /**
+ * Get usage of /away
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/away []";
+ }
}
diff --git a/application/src/org/yaaic/command/handler/CloseHandler.java b/application/src/org/yaaic/command/handler/CloseHandler.java
index af0a210..0482536 100644
--- a/application/src/org/yaaic/command/handler/CloseHandler.java
+++ b/application/src/org/yaaic/command/handler/CloseHandler.java
@@ -40,48 +40,48 @@ import android.content.Intent;
*/
public class CloseHandler extends BaseHandler
{
- /**
- * Execute /close
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() == Conversation.TYPE_SERVER) {
- throw new CommandException(service.getString(R.string.close_server_window));
- }
-
- if (params.length == 1) {
- if (conversation.getType() == Conversation.TYPE_CHANNEL) {
- service.getConnection(server.getId()).partChannel(conversation.getName());
- }
- if (conversation.getType() == Conversation.TYPE_QUERY) {
- server.removeConversation(conversation.getName());
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_REMOVE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(intent);
- }
- }
- }
-
- /**
- * Usage of /close
- */
- @Override
- public String getUsage()
- {
- return "/close";
- }
+ /**
+ * Execute /close
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() == Conversation.TYPE_SERVER) {
+ throw new CommandException(service.getString(R.string.close_server_window));
+ }
+
+ if (params.length == 1) {
+ if (conversation.getType() == Conversation.TYPE_CHANNEL) {
+ service.getConnection(server.getId()).partChannel(conversation.getName());
+ }
+ if (conversation.getType() == Conversation.TYPE_QUERY) {
+ server.removeConversation(conversation.getName());
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_REMOVE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(intent);
+ }
+ }
+ }
+
+ /**
+ * Usage of /close
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/close";
+ }
- /**
- * Description of /close
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_close);
- }
+ /**
+ * Description of /close
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_close);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/DCCHandler.java b/application/src/org/yaaic/command/handler/DCCHandler.java
index b7f676a..0089ea8 100644
--- a/application/src/org/yaaic/command/handler/DCCHandler.java
+++ b/application/src/org/yaaic/command/handler/DCCHandler.java
@@ -42,50 +42,50 @@ import android.content.Context;
*/
public class DCCHandler extends BaseHandler
{
- /**
- * Execute /dcc
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length == 4) {
- if (!params[1].equalsIgnoreCase("SEND")) {
- throw new CommandException(service.getString(R.string.dcc_only_send));
- }
- File file = new File(params[3]);
- if (!file.exists()) {
- throw new CommandException(service.getString(R.string.dcc_file_not_found, params[3]));
- }
-
- service.getConnection(server.getId()).dccSendFile(file, params[2], 60000);
-
- Message message = new Message(service.getString(R.string.dcc_waiting_accept, params[2]));
- message.setColor(Message.COLOR_GREY);
- conversation.addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), conversation.getName())
- );
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /dcc
- */
- @Override
- public String getUsage()
- {
- return "/dcc SEND ";
- }
+ /**
+ * Execute /dcc
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length == 4) {
+ if (!params[1].equalsIgnoreCase("SEND")) {
+ throw new CommandException(service.getString(R.string.dcc_only_send));
+ }
+ File file = new File(params[3]);
+ if (!file.exists()) {
+ throw new CommandException(service.getString(R.string.dcc_file_not_found, params[3]));
+ }
+
+ service.getConnection(server.getId()).dccSendFile(file, params[2], 60000);
+
+ Message message = new Message(service.getString(R.string.dcc_waiting_accept, params[2]));
+ message.setColor(Message.COLOR_GREY);
+ conversation.addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), conversation.getName())
+ );
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /dcc
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/dcc SEND ";
+ }
- /**
- * Description of /dcc
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_dcc);
- }
+ /**
+ * Description of /dcc
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_dcc);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/DeopHandler.java b/application/src/org/yaaic/command/handler/DeopHandler.java
index 594155e..65c8375 100644
--- a/application/src/org/yaaic/command/handler/DeopHandler.java
+++ b/application/src/org/yaaic/command/handler/DeopHandler.java
@@ -36,38 +36,38 @@ import android.content.Context;
*/
public class DeopHandler extends BaseHandler
{
- /**
- * Execute /deop
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() != Conversation.TYPE_CHANNEL) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel));
- }
-
- if (params.length == 2) {
- service.getConnection(server.getId()).deOp(conversation.getName(), params[1]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /deop
- */
- @Override
- public String getUsage()
- {
- return "/deop ";
- }
+ /**
+ * Execute /deop
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() != Conversation.TYPE_CHANNEL) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel));
+ }
+
+ if (params.length == 2) {
+ service.getConnection(server.getId()).deOp(conversation.getName(), params[1]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /deop
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/deop ";
+ }
- /**
- * Description of /deop
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_deop);
- }
+ /**
+ * Description of /deop
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_deop);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/DevoiceHandler.java b/application/src/org/yaaic/command/handler/DevoiceHandler.java
index 3d655dd..60f2f0e 100644
--- a/application/src/org/yaaic/command/handler/DevoiceHandler.java
+++ b/application/src/org/yaaic/command/handler/DevoiceHandler.java
@@ -36,38 +36,38 @@ import android.content.Context;
*/
public class DevoiceHandler extends BaseHandler
{
- /**
- * Execute /devoice
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() != Conversation.TYPE_CHANNEL) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel));
- }
-
- if (params.length == 2) {
- service.getConnection(server.getId()).deVoice(conversation.getName(), params[1]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /devoice
- */
- @Override
- public String getUsage()
- {
- return "/devoice ";
- }
+ /**
+ * Execute /devoice
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() != Conversation.TYPE_CHANNEL) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel));
+ }
+
+ if (params.length == 2) {
+ service.getConnection(server.getId()).deVoice(conversation.getName(), params[1]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /devoice
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/devoice ";
+ }
- /**
- * Description of /devoice
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_devoice);
- }
+ /**
+ * Description of /devoice
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_devoice);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/EchoHandler.java b/application/src/org/yaaic/command/handler/EchoHandler.java
index 618c136..e29c70d 100644
--- a/application/src/org/yaaic/command/handler/EchoHandler.java
+++ b/application/src/org/yaaic/command/handler/EchoHandler.java
@@ -39,42 +39,42 @@ import android.content.Intent;
*/
public class EchoHandler extends BaseHandler
{
- /**
- * Execute /echo
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length > 1) {
- Message message = new Message(BaseHandler.mergeParams(params));
- conversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(intent);
- } else {
- throw new CommandException(service.getString(R.string.text_missing));
- }
- }
-
- /**
- * Usage of /echo
- */
- @Override
- public String getUsage()
- {
- return "/echo ";
- }
+ /**
+ * Execute /echo
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length > 1) {
+ Message message = new Message(BaseHandler.mergeParams(params));
+ conversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(intent);
+ } else {
+ throw new CommandException(service.getString(R.string.text_missing));
+ }
+ }
+
+ /**
+ * Usage of /echo
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/echo ";
+ }
- /**
- * Description of /echo
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_echo);
- }
+ /**
+ * Description of /echo
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_echo);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/HelpHandler.java b/application/src/org/yaaic/command/handler/HelpHandler.java
index a18c368..4fd1361 100644
--- a/application/src/org/yaaic/command/handler/HelpHandler.java
+++ b/application/src/org/yaaic/command/handler/HelpHandler.java
@@ -44,112 +44,112 @@ import android.content.Intent;
*/
public class HelpHandler extends BaseHandler
{
- /**
- * Execute /help
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length == 2) {
- showCommandDetails(service, server, conversation, params[1]);
- } else if (params.length == 1) {
- showAllCommands(service, server, conversation);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Show all available commands
- *
- * @param conversation
- * @param server
- * @param service
- */
- private void showAllCommands(IRCService service, Server server, Conversation conversation)
- {
- CommandParser cp = CommandParser.getInstance();
-
- StringBuffer commandList = new StringBuffer(service.getString(R.string.available_commands));
- commandList.append("\n");
-
- HashMap commands = cp.getCommands();
- HashMap aliases = cp.getAliases();
+ /**
+ * Execute /help
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length == 2) {
+ showCommandDetails(service, server, conversation, params[1]);
+ } else if (params.length == 1) {
+ showAllCommands(service, server, conversation);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Show all available commands
+ *
+ * @param conversation
+ * @param server
+ * @param service
+ */
+ private void showAllCommands(IRCService service, Server server, Conversation conversation)
+ {
+ CommandParser cp = CommandParser.getInstance();
+
+ StringBuffer commandList = new StringBuffer(service.getString(R.string.available_commands));
+ commandList.append("\n");
+
+ HashMap commands = cp.getCommands();
+ HashMap aliases = cp.getAliases();
- Set commandKeys = commands.keySet();
- Set aliasesKeys = aliases.keySet();
-
- for (Object command : commandKeys) {
- String alias = "";
- for (Object aliasCommand : aliasesKeys) {
- if (command.equals(aliases.get(aliasCommand))) {
- alias = " " + service.getString(R.string.logical_or) + " /" + aliasCommand;
- break;
- }
- }
- commandList.append("/" + command.toString() + alias + " - "+commands.get(command).getDescription(service) + "\n");
- }
-
- Message message = new Message(commandList.toString());
- message.setColor(Message.COLOR_YELLOW);
- conversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
-
- service.sendBroadcast(intent);
- }
+ Set commandKeys = commands.keySet();
+ Set aliasesKeys = aliases.keySet();
+
+ for (Object command : commandKeys) {
+ String alias = "";
+ for (Object aliasCommand : aliasesKeys) {
+ if (command.equals(aliases.get(aliasCommand))) {
+ alias = " " + service.getString(R.string.logical_or) + " /" + aliasCommand;
+ break;
+ }
+ }
+ commandList.append("/" + command.toString() + alias + " - "+commands.get(command).getDescription(service) + "\n");
+ }
+
+ Message message = new Message(commandList.toString());
+ message.setColor(Message.COLOR_YELLOW);
+ conversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+
+ service.sendBroadcast(intent);
+ }
- /**
- * Show details of a single command
- *
- * @param conversation
- * @param server
- * @param service
- * @param command
- * @throws CommandException
- */
- private void showCommandDetails(IRCService service, Server server, Conversation conversation, String command) throws CommandException
- {
- CommandParser cp = CommandParser.getInstance();
- HashMap commands = cp.getCommands();
-
- if (commands.containsKey(command)) {
- // XXX:I18N - String building salad :)
- Message message = new Message("Help of /" + command + "\n" + commands.get(command).getUsage() + "\n" + commands.get(command).getDescription(service) + "\n");
- message.setColor(Message.COLOR_YELLOW);
- conversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
-
- service.sendBroadcast(intent);
- } else {
- throw new CommandException(service.getString(R.string.unknown_command, command));
- }
- }
+ /**
+ * Show details of a single command
+ *
+ * @param conversation
+ * @param server
+ * @param service
+ * @param command
+ * @throws CommandException
+ */
+ private void showCommandDetails(IRCService service, Server server, Conversation conversation, String command) throws CommandException
+ {
+ CommandParser cp = CommandParser.getInstance();
+ HashMap commands = cp.getCommands();
+
+ if (commands.containsKey(command)) {
+ // XXX:I18N - String building salad :)
+ Message message = new Message("Help of /" + command + "\n" + commands.get(command).getUsage() + "\n" + commands.get(command).getDescription(service) + "\n");
+ message.setColor(Message.COLOR_YELLOW);
+ conversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+
+ service.sendBroadcast(intent);
+ } else {
+ throw new CommandException(service.getString(R.string.unknown_command, command));
+ }
+ }
- /**
- * Usage of /help
- */
- @Override
- public String getUsage()
- {
- return "/help []";
- }
+ /**
+ * Usage of /help
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/help []";
+ }
- /**
- * Description of /help
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_help);
- }
+ /**
+ * Description of /help
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_help);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/JoinHandler.java b/application/src/org/yaaic/command/handler/JoinHandler.java
index 59867e1..f4ee999 100644
--- a/application/src/org/yaaic/command/handler/JoinHandler.java
+++ b/application/src/org/yaaic/command/handler/JoinHandler.java
@@ -36,36 +36,36 @@ import android.content.Context;
*/
public class JoinHandler extends BaseHandler
{
- /**
- * Execute /join
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length == 2) {
- service.getConnection(server.getId()).joinChannel(params[1]);
- } else if (params.length == 3) {
- service.getConnection(server.getId()).joinChannel(params[1], params[2]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /join
- */
- @Override
- public String getUsage()
- {
- return "/join []";
- }
+ /**
+ * Execute /join
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length == 2) {
+ service.getConnection(server.getId()).joinChannel(params[1]);
+ } else if (params.length == 3) {
+ service.getConnection(server.getId()).joinChannel(params[1], params[2]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /join
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/join []";
+ }
- /**
- * Description of /join
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_join);
- }
+ /**
+ * Description of /join
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_join);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/KickHandler.java b/application/src/org/yaaic/command/handler/KickHandler.java
index 0c52a32..415afa1 100644
--- a/application/src/org/yaaic/command/handler/KickHandler.java
+++ b/application/src/org/yaaic/command/handler/KickHandler.java
@@ -38,38 +38,38 @@ import android.content.Context;
*/
public class KickHandler extends BaseHandler
{
- /**
- * Execute /kick
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() != Conversation.TYPE_CHANNEL) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel));
- }
-
- if (params.length == 2) {
- service.getConnection(server.getId()).kick(conversation.getName(), params[1]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /kick
- */
- @Override
- public String getUsage()
- {
- return "/kick ";
- }
+ /**
+ * Execute /kick
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() != Conversation.TYPE_CHANNEL) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel));
+ }
+
+ if (params.length == 2) {
+ service.getConnection(server.getId()).kick(conversation.getName(), params[1]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /kick
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/kick ";
+ }
- /**
- * Description of /kick
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_kick);
- }
+ /**
+ * Description of /kick
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_kick);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/MeHandler.java b/application/src/org/yaaic/command/handler/MeHandler.java
index ecaac22..1ccde6c 100644
--- a/application/src/org/yaaic/command/handler/MeHandler.java
+++ b/application/src/org/yaaic/command/handler/MeHandler.java
@@ -39,52 +39,52 @@ import android.content.Intent;
*/
public class MeHandler extends BaseHandler
{
- /**
- * Execute /me
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() == Conversation.TYPE_SERVER) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel_or_query));
- }
-
- if (params.length > 1) {
- String action = BaseHandler.mergeParams(params);
- String nickname = service.getConnection(server.getId()).getNick();
-
- Message message = new Message(nickname + " " + action);
- message.setIcon(R.drawable.action);
- server.getConversation(conversation.getName()).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(intent);
-
- service.getConnection(server.getId()).sendAction(conversation.getName(), action);
- } else {
- throw new CommandException(service.getString(R.string.text_missing));
- }
- }
-
- /**
- * Usage of /me
- */
- @Override
- public String getUsage()
- {
- return "/me ";
- }
+ /**
+ * Execute /me
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() == Conversation.TYPE_SERVER) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel_or_query));
+ }
+
+ if (params.length > 1) {
+ String action = BaseHandler.mergeParams(params);
+ String nickname = service.getConnection(server.getId()).getNick();
+
+ Message message = new Message(nickname + " " + action);
+ message.setIcon(R.drawable.action);
+ server.getConversation(conversation.getName()).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(intent);
+
+ service.getConnection(server.getId()).sendAction(conversation.getName(), action);
+ } else {
+ throw new CommandException(service.getString(R.string.text_missing));
+ }
+ }
+
+ /**
+ * Usage of /me
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/me ";
+ }
- /**
- * Description of /me
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_me);
- }
+ /**
+ * Description of /me
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_me);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/ModeHandler.java b/application/src/org/yaaic/command/handler/ModeHandler.java
index c3fe7a3..c09f06f 100644
--- a/application/src/org/yaaic/command/handler/ModeHandler.java
+++ b/application/src/org/yaaic/command/handler/ModeHandler.java
@@ -38,36 +38,36 @@ import android.content.Context;
*/
public class ModeHandler extends BaseHandler
{
- /**
- * Execute /mode
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length > 2) {
- String modes = BaseHandler.mergeParams(params, 2);
-
- service.getConnection(server.getId()).setMode(params[1], modes);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /mode
- */
- @Override
- public String getUsage()
- {
- return "/mode ";
- }
+ /**
+ * Execute /mode
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length > 2) {
+ String modes = BaseHandler.mergeParams(params, 2);
+
+ service.getConnection(server.getId()).setMode(params[1], modes);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /mode
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/mode ";
+ }
- /**
- * Description of /mode
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_mode);
- }
+ /**
+ * Description of /mode
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_mode);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/MsgHandler.java b/application/src/org/yaaic/command/handler/MsgHandler.java
index 68d4aaa..2c9514e 100644
--- a/application/src/org/yaaic/command/handler/MsgHandler.java
+++ b/application/src/org/yaaic/command/handler/MsgHandler.java
@@ -41,50 +41,50 @@ import android.content.Intent;
*/
public class MsgHandler extends BaseHandler
{
- /**
- * Execute /msg
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length > 2) {
- String text = BaseHandler.mergeParams(params, 2);
- service.getConnection(server.getId()).sendMessage(params[1], text);
-
- Conversation targetConversation = server.getConversation(params[1]);
-
- if (targetConversation != null) {
- Message message = new Message("<" + service.getConnection(server.getId()).getNick() + "> " + text);
- targetConversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- targetConversation.getName()
- );
-
- service.sendBroadcast(intent);
- }
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /msg
- */
- @Override
- public String getUsage()
- {
- return "/msg ";
- }
+ /**
+ * Execute /msg
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length > 2) {
+ String text = BaseHandler.mergeParams(params, 2);
+ service.getConnection(server.getId()).sendMessage(params[1], text);
+
+ Conversation targetConversation = server.getConversation(params[1]);
+
+ if (targetConversation != null) {
+ Message message = new Message("<" + service.getConnection(server.getId()).getNick() + "> " + text);
+ targetConversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ targetConversation.getName()
+ );
+
+ service.sendBroadcast(intent);
+ }
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /msg
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/msg ";
+ }
- /**
- * Description of /msg
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_msg);
- }
+ /**
+ * Description of /msg
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_msg);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/NamesHandler.java b/application/src/org/yaaic/command/handler/NamesHandler.java
index 6d67fb8..83736fe 100644
--- a/application/src/org/yaaic/command/handler/NamesHandler.java
+++ b/application/src/org/yaaic/command/handler/NamesHandler.java
@@ -41,53 +41,53 @@ import android.content.Intent;
*/
public class NamesHandler extends BaseHandler
{
- /**
- * Execute /names
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() != Conversation.TYPE_CHANNEL) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel));
- }
-
- StringBuffer userList = new StringBuffer(service.getString(R.string.message_users_on_chan, conversation.getName()));
-
- User[] mUsers = service.getConnection(server.getId()).getUsers(conversation.getName());
- int mSize = mUsers.length;
- for (int i = 0; i < mSize; i++) {
- userList.append(" ");
- userList.append(mUsers[i].getPrefix());
- userList.append(mUsers[i].getNick());
- }
-
- Message message = new Message(userList.toString());
- message.setColor(Message.COLOR_YELLOW);
- conversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(intent);
- }
-
- /**
- * Usage of /names
- */
- @Override
- public String getUsage()
- {
- return "/names";
- }
+ /**
+ * Execute /names
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() != Conversation.TYPE_CHANNEL) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel));
+ }
+
+ StringBuffer userList = new StringBuffer(service.getString(R.string.message_users_on_chan, conversation.getName()));
+
+ User[] mUsers = service.getConnection(server.getId()).getUsers(conversation.getName());
+ int mSize = mUsers.length;
+ for (int i = 0; i < mSize; i++) {
+ userList.append(" ");
+ userList.append(mUsers[i].getPrefix());
+ userList.append(mUsers[i].getNick());
+ }
+
+ Message message = new Message(userList.toString());
+ message.setColor(Message.COLOR_YELLOW);
+ conversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(intent);
+ }
+
+ /**
+ * Usage of /names
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/names";
+ }
- /**
- * Description of /names
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_names);
- }
+ /**
+ * Description of /names
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_names);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/NickHandler.java b/application/src/org/yaaic/command/handler/NickHandler.java
index 8bebab9..f628e77 100644
--- a/application/src/org/yaaic/command/handler/NickHandler.java
+++ b/application/src/org/yaaic/command/handler/NickHandler.java
@@ -36,34 +36,34 @@ import android.content.Context;
*/
public class NickHandler extends BaseHandler
{
- /**
- * Execute /nick
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length == 2) {
- service.getConnection(server.getId()).changeNick(params[1]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /nick
- */
- @Override
- public String getUsage()
- {
- return "/nick ";
- }
-
- /**
- * Description of /nick
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_nick);
- }
+ /**
+ * Execute /nick
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length == 2) {
+ service.getConnection(server.getId()).changeNick(params[1]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /nick
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/nick ";
+ }
+
+ /**
+ * Description of /nick
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_nick);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/NoticeHandler.java b/application/src/org/yaaic/command/handler/NoticeHandler.java
index eb00197..9fa5144 100644
--- a/application/src/org/yaaic/command/handler/NoticeHandler.java
+++ b/application/src/org/yaaic/command/handler/NoticeHandler.java
@@ -41,47 +41,47 @@ import android.content.Intent;
*/
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 = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(intent);
-
- service.getConnection(server.getId()).sendNotice(params[1], text);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /notice
- */
- @Override
- public String getUsage()
- {
- return "/notice ";
- }
+ /**
+ * 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 = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(intent);
+
+ service.getConnection(server.getId()).sendNotice(params[1], text);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /notice
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/notice ";
+ }
- /**
- * Description of /notice
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_notice);
- }
+ /**
+ * Description of /notice
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_notice);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/OpHandler.java b/application/src/org/yaaic/command/handler/OpHandler.java
index b16e975..16c7da3 100644
--- a/application/src/org/yaaic/command/handler/OpHandler.java
+++ b/application/src/org/yaaic/command/handler/OpHandler.java
@@ -36,38 +36,38 @@ import android.content.Context;
*/
public class OpHandler extends BaseHandler
{
- /**
- * Execute /deop
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() != Conversation.TYPE_CHANNEL) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel));
- }
-
- if (params.length == 2) {
- service.getConnection(server.getId()).op(conversation.getName(), params[1]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /deop
- */
- @Override
- public String getUsage()
- {
- return "/op ";
- }
+ /**
+ * Execute /deop
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() != Conversation.TYPE_CHANNEL) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel));
+ }
+
+ if (params.length == 2) {
+ service.getConnection(server.getId()).op(conversation.getName(), params[1]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /deop
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/op ";
+ }
- /**
- * Description of /deop
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_op);
- }
+ /**
+ * Description of /deop
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_op);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/PartHandler.java b/application/src/org/yaaic/command/handler/PartHandler.java
index cbadbc8..92974d8 100644
--- a/application/src/org/yaaic/command/handler/PartHandler.java
+++ b/application/src/org/yaaic/command/handler/PartHandler.java
@@ -38,40 +38,40 @@ import android.content.Context;
*/
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(service.getString(R.string.only_usable_from_channel));
- }
-
- service.getConnection(server.getId()).partChannel(conversation.getName());
- } else if (params.length == 2) {
- service.getConnection(server.getId()).partChannel(params[1]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /part
- */
- @Override
- public String getUsage()
- {
- return "/part []";
- }
+ /**
+ * 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(service.getString(R.string.only_usable_from_channel));
+ }
+
+ service.getConnection(server.getId()).partChannel(conversation.getName());
+ } else if (params.length == 2) {
+ service.getConnection(server.getId()).partChannel(params[1]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /part
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/part []";
+ }
- /**
- * Description of /part
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_part);
- }
+ /**
+ * Description of /part
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_part);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/QueryHandler.java b/application/src/org/yaaic/command/handler/QueryHandler.java
index 0023817..2fe1526 100644
--- a/application/src/org/yaaic/command/handler/QueryHandler.java
+++ b/application/src/org/yaaic/command/handler/QueryHandler.java
@@ -41,53 +41,53 @@ import android.content.Intent;
*/
public class QueryHandler extends BaseHandler
{
- /**
- * Execute /query
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length == 2) {
- // Simple validation
- if (params[1].startsWith("#")) {
- throw new CommandException(service.getString(R.string.query_to_channel));
- }
-
- Conversation query = server.getConversation(params[1]);
-
- if (query != null) {
- throw new CommandException(service.getString(R.string.query_exists));
- }
-
- query = new Query(params[1]);
- server.addConversationl(query);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_NEW,
- server.getId(),
- query.getName()
- );
- service.sendBroadcast(intent);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /query
- */
- @Override
- public String getUsage()
- {
- return "/query ";
- }
+ /**
+ * Execute /query
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length == 2) {
+ // Simple validation
+ if (params[1].startsWith("#")) {
+ throw new CommandException(service.getString(R.string.query_to_channel));
+ }
+
+ Conversation query = server.getConversation(params[1]);
+
+ if (query != null) {
+ throw new CommandException(service.getString(R.string.query_exists));
+ }
+
+ query = new Query(params[1]);
+ server.addConversationl(query);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_NEW,
+ server.getId(),
+ query.getName()
+ );
+ service.sendBroadcast(intent);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /query
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/query ";
+ }
- /**
- * Description of /query
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_query);
- }
+ /**
+ * Description of /query
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_query);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/QuitHandler.java b/application/src/org/yaaic/command/handler/QuitHandler.java
index e22a1d4..26518fd 100644
--- a/application/src/org/yaaic/command/handler/QuitHandler.java
+++ b/application/src/org/yaaic/command/handler/QuitHandler.java
@@ -36,34 +36,34 @@ import android.content.Context;
*/
public class QuitHandler extends BaseHandler
{
- /**
- * Execute /quit
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length == 1) {
- service.getConnection(server.getId()).quitServer();
- } else {
- service.getConnection(server.getId()).quitServer(BaseHandler.mergeParams(params));
- }
- }
-
- /**
- * Usage of /quit
- */
- @Override
- public String getUsage()
- {
- return "/quit []";
- }
+ /**
+ * Execute /quit
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length == 1) {
+ service.getConnection(server.getId()).quitServer();
+ } else {
+ service.getConnection(server.getId()).quitServer(BaseHandler.mergeParams(params));
+ }
+ }
+
+ /**
+ * Usage of /quit
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/quit []";
+ }
- /**
- * Description of /quit
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_quit);
- }
+ /**
+ * Description of /quit
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_quit);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/RawHandler.java b/application/src/org/yaaic/command/handler/RawHandler.java
index 9c1f4b2..5b280d0 100644
--- a/application/src/org/yaaic/command/handler/RawHandler.java
+++ b/application/src/org/yaaic/command/handler/RawHandler.java
@@ -38,35 +38,35 @@ import android.content.Context;
*/
public class RawHandler extends BaseHandler
{
- /**
- * Execute /raw
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length > 1) {
- String line = BaseHandler.mergeParams(params);
- service.getConnection(server.getId()).sendRawLineViaQueue(line);
- } else {
- throw new CommandException(service.getString(R.string.line_missing));
- }
- }
-
- /**
- * Usage of /raw
- */
- @Override
- public String getUsage()
- {
- return "/raw ";
- }
+ /**
+ * Execute /raw
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length > 1) {
+ String line = BaseHandler.mergeParams(params);
+ service.getConnection(server.getId()).sendRawLineViaQueue(line);
+ } else {
+ throw new CommandException(service.getString(R.string.line_missing));
+ }
+ }
+
+ /**
+ * Usage of /raw
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/raw ";
+ }
- /**
- * Description of /raw
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_raw);
- }
+ /**
+ * Description of /raw
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_raw);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/TopicHandler.java b/application/src/org/yaaic/command/handler/TopicHandler.java
index 608667f..5c33c96 100644
--- a/application/src/org/yaaic/command/handler/TopicHandler.java
+++ b/application/src/org/yaaic/command/handler/TopicHandler.java
@@ -39,42 +39,42 @@ import android.content.Context;
*/
public class TopicHandler extends BaseHandler
{
- /**
- * Execute /topic
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() != Conversation.TYPE_CHANNEL) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel));
- }
-
- Channel channel = (Channel) conversation;
-
- if (params.length == 1) {
- // Show topic
- service.getConnection(server.getId()).onTopic(channel.getName(), channel.getTopic(), "", 0, false);
- } else if (params.length > 1) {
- // Change topic
- service.getConnection(server.getId()).setTopic(channel.getName(), BaseHandler.mergeParams(params));
- }
- }
-
- /**
- * Usage of /topic
- */
- @Override
- public String getUsage()
- {
- return "/topic []";
- }
+ /**
+ * Execute /topic
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() != Conversation.TYPE_CHANNEL) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel));
+ }
+
+ Channel channel = (Channel) conversation;
+
+ if (params.length == 1) {
+ // Show topic
+ service.getConnection(server.getId()).onTopic(channel.getName(), channel.getTopic(), "", 0, false);
+ } else if (params.length > 1) {
+ // Change topic
+ service.getConnection(server.getId()).setTopic(channel.getName(), BaseHandler.mergeParams(params));
+ }
+ }
+
+ /**
+ * Usage of /topic
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/topic []";
+ }
- /**
- * Description of /topic
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_topic);
- }
+ /**
+ * Description of /topic
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_topic);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/VoiceHandler.java b/application/src/org/yaaic/command/handler/VoiceHandler.java
index bc96a29..7e2418f 100644
--- a/application/src/org/yaaic/command/handler/VoiceHandler.java
+++ b/application/src/org/yaaic/command/handler/VoiceHandler.java
@@ -36,38 +36,38 @@ import android.content.Context;
*/
public class VoiceHandler extends BaseHandler
{
- /**
- * Execute /voice
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (conversation.getType() != Conversation.TYPE_CHANNEL) {
- throw new CommandException(service.getString(R.string.only_usable_from_channel));
- }
-
- if (params.length == 2) {
- service.getConnection(server.getId()).voice(conversation.getName(), params[1]);
- } else {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
- }
-
- /**
- * Usage of /voice
- */
- @Override
- public String getUsage()
- {
- return "/voice ";
- }
+ /**
+ * Execute /voice
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (conversation.getType() != Conversation.TYPE_CHANNEL) {
+ throw new CommandException(service.getString(R.string.only_usable_from_channel));
+ }
+
+ if (params.length == 2) {
+ service.getConnection(server.getId()).voice(conversation.getName(), params[1]);
+ } else {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+ }
+
+ /**
+ * Usage of /voice
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/voice ";
+ }
- /**
- * Description of /voice
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_voice);
- }
+ /**
+ * Description of /voice
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_voice);
+ }
}
diff --git a/application/src/org/yaaic/command/handler/WhoisHandler.java b/application/src/org/yaaic/command/handler/WhoisHandler.java
index 7308299..5a06bec 100644
--- a/application/src/org/yaaic/command/handler/WhoisHandler.java
+++ b/application/src/org/yaaic/command/handler/WhoisHandler.java
@@ -38,34 +38,34 @@ import android.content.Context;
*/
public class WhoisHandler extends BaseHandler
{
- /**
- * Execute /whois
- */
- @Override
- public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
- {
- if (params.length != 2) {
- throw new CommandException(service.getString(R.string.invalid_number_of_params));
- }
-
- service.getConnection(server.getId()).sendRawLineViaQueue("WHOIS " + params[1]);
- }
+ /**
+ * Execute /whois
+ */
+ @Override
+ public void execute(String[] params, Server server, Conversation conversation, IRCService service) throws CommandException
+ {
+ if (params.length != 2) {
+ throw new CommandException(service.getString(R.string.invalid_number_of_params));
+ }
+
+ service.getConnection(server.getId()).sendRawLineViaQueue("WHOIS " + params[1]);
+ }
- /**
- * Get description of /whois
- */
- @Override
- public String getDescription(Context context)
- {
- return context.getString(R.string.command_desc_whois);
- }
+ /**
+ * Get description of /whois
+ */
+ @Override
+ public String getDescription(Context context)
+ {
+ return context.getString(R.string.command_desc_whois);
+ }
- /**
- * Get usage of /whois
- */
- @Override
- public String getUsage()
- {
- return "/whois ";
- }
+ /**
+ * Get usage of /whois
+ */
+ @Override
+ public String getUsage()
+ {
+ return "/whois ";
+ }
}
diff --git a/application/src/org/yaaic/db/AliasConstants.java b/application/src/org/yaaic/db/AliasConstants.java
index eadfeb3..7aee246 100644
--- a/application/src/org/yaaic/db/AliasConstants.java
+++ b/application/src/org/yaaic/db/AliasConstants.java
@@ -4,16 +4,16 @@ import android.provider.BaseColumns;
public class AliasConstants implements BaseColumns {
- public static final String TABLE_NAME = "aliases";
-
- // fields
- public static final String ALIAS = "alias";
- public static final String IDENTITY = "identity";
-
- public static final String[] ALL = {
- _ID,
- ALIAS,
- IDENTITY,
- };
-
+ public static final String TABLE_NAME = "aliases";
+
+ // fields
+ public static final String ALIAS = "alias";
+ public static final String IDENTITY = "identity";
+
+ public static final String[] ALL = {
+ _ID,
+ ALIAS,
+ IDENTITY,
+ };
+
}
diff --git a/application/src/org/yaaic/db/ChannelConstants.java b/application/src/org/yaaic/db/ChannelConstants.java
index ae6751e..7b9dc1f 100644
--- a/application/src/org/yaaic/db/ChannelConstants.java
+++ b/application/src/org/yaaic/db/ChannelConstants.java
@@ -29,19 +29,19 @@ import android.provider.BaseColumns;
*/
public interface ChannelConstants extends BaseColumns
{
- public static final String TABLE_NAME = "channels";
-
- // fields
- public static final String NAME = "name";
- public static final String PASSWORD = "password";
- public static final String SERVER = "server";
-
- /**
- * All fields of the table
- */
- public static final String[] ALL = {
- NAME,
- PASSWORD,
- SERVER
- };
+ public static final String TABLE_NAME = "channels";
+
+ // fields
+ public static final String NAME = "name";
+ public static final String PASSWORD = "password";
+ public static final String SERVER = "server";
+
+ /**
+ * All fields of the table
+ */
+ public static final String[] ALL = {
+ NAME,
+ PASSWORD,
+ SERVER
+ };
}
diff --git a/application/src/org/yaaic/db/CommandConstants.java b/application/src/org/yaaic/db/CommandConstants.java
index ecd1bb6..d5f42a8 100644
--- a/application/src/org/yaaic/db/CommandConstants.java
+++ b/application/src/org/yaaic/db/CommandConstants.java
@@ -29,17 +29,17 @@ import android.provider.BaseColumns;
*/
public interface CommandConstants extends BaseColumns
{
- public static final String TABLE_NAME = "commands";
-
- // fields
- public static final String COMMAND = "command";
- public static final String SERVER = "server";
-
- /**
- * All fields of the table
- */
- public static final String[] ALL = {
- COMMAND,
- SERVER
- };
+ public static final String TABLE_NAME = "commands";
+
+ // fields
+ public static final String COMMAND = "command";
+ public static final String SERVER = "server";
+
+ /**
+ * All fields of the table
+ */
+ public static final String[] ALL = {
+ COMMAND,
+ SERVER
+ };
}
diff --git a/application/src/org/yaaic/db/Database.java b/application/src/org/yaaic/db/Database.java
index 03e6af4..264a2a0 100644
--- a/application/src/org/yaaic/db/Database.java
+++ b/application/src/org/yaaic/db/Database.java
@@ -41,620 +41,620 @@ import android.database.sqlite.SQLiteOpenHelper;
*/
public class Database extends SQLiteOpenHelper
{
- private static final String DATABASE_NAME = "servers.db";
- private static final int DATABASE_VERSION = 4;
-
- /**
- * Create a new helper for database access
- *
- * @param context
- */
- public Database(Context context)
- {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
-
- /**
- * Create all needed tables on first start
- */
- @Override
- public void onCreate(SQLiteDatabase db)
- {
- db.execSQL("CREATE TABLE " + ServerConstants.TABLE_NAME + " ( "
- + ServerConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + ServerConstants.TITLE + " TEXT NOT NULL, "
- + ServerConstants.HOST + " TEXT NOT NULL, "
- + ServerConstants.PORT + " INTEGER, "
- + ServerConstants.PASSWORD + " TEXT, "
- + ServerConstants.AUTOCONNECT + " BOOLEAN, " // XXX: Does SQLLite support boolean?
- + ServerConstants.USE_SSL + " BOOLEAN, "
- + ServerConstants.CHARSET + " TEXT, "
- + ServerConstants.IDENTITY + " INTEGER"
- + ");"
- );
-
- db.execSQL("CREATE TABLE " + ChannelConstants.TABLE_NAME + " ("
- + ChannelConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + ChannelConstants.NAME + " TEXT NOT NULL, "
- + ChannelConstants.PASSWORD + " TEXT, "
- + ChannelConstants.SERVER + " INTEGER"
- + ");"
- );
-
- db.execSQL("CREATE TABLE " + IdentityConstants.TABLE_NAME +" ("
- + IdentityConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + IdentityConstants.NICKNAME + " TEXT NOT NULL,"
- + IdentityConstants.IDENT + " TEXT NOT NULL,"
- + IdentityConstants.REALNAME + " TEXT NOT NULL"
- + ");"
- );
-
- db.execSQL("CREATE TABLE " + CommandConstants.TABLE_NAME + " ("
- + CommandConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + CommandConstants.COMMAND + " TEXT NOT NULL, "
- + ChannelConstants.SERVER + " INTEGER"
- + ");"
- );
-
- db.execSQL("CREATE TABLE " + AliasConstants.TABLE_NAME + " ("
- + AliasConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + AliasConstants.ALIAS + " TEXT NOT NULL, "
- + AliasConstants.IDENTITY + " INTEGER"
- + ");"
- );
- }
-
- /**
- * Migrate existing databases to
- */
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
- {
- // XXX: Do not delete databases (release version)
-
- // db.execSQL("DROP TABLE IF EXISTS " + ServerConstants.TABLE_NAME + ";");
- // db.execSQL("DROP TABLE IF EXISTS " + ChannelConstants.TABLE_NAME + ";");
- // db.execSQL("DROP TABLE IF EXISTS " + IdentityConstants.TABLE_NAME + ";");
-
- // onCreate(db);
-
- if (oldVersion == 1) {
- // Add charset field to server table
- db.execSQL("ALTER TABLE " + ServerConstants.TABLE_NAME + " ADD " + ServerConstants.CHARSET + " TEXT AFTER " + ServerConstants.USE_SSL + ";");
-
- oldVersion = 2; // now do the updates for version 2
- }
-
- if (oldVersion == 2) {
- // Add new commands table (copy&paste from onCreate())
- db.execSQL("CREATE TABLE " + CommandConstants.TABLE_NAME + " ("
- + CommandConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + CommandConstants.COMMAND + " TEXT NOT NULL, "
- + ChannelConstants.SERVER + " INTEGER"
- + ");"
- );
-
- oldVersion = 3;
- }
-
- if (oldVersion == 3) {
- db.execSQL("CREATE TABLE " + AliasConstants.TABLE_NAME + " ("
- + AliasConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
- + AliasConstants.ALIAS + " TEXT NOT NULL, "
- + AliasConstants.IDENTITY + " INTEGER"
- + ");"
- );
- }
- }
-
- /**
- * Add a new server to the database
- *
- * @param title Unique title of the server
- * @param host Hostname of the server
- * @param port Port (default: 3337)
- * @param password Password if needed
- * @param autoConnect Autoconnect to this server on startup?
- * @param useSSL Does the server use SSL?
- * @param identityId The id of the identity record
- */
- public long addServer(String title, String host, int port, String password, boolean autoConnect, boolean useSSL, long identityId, String charset)
- {
- ContentValues values = new ContentValues();
-
- values.put(ServerConstants.TITLE, title);
- values.put(ServerConstants.HOST, host);
- values.put(ServerConstants.PORT, port);
- values.put(ServerConstants.PASSWORD, password);
- values.put(ServerConstants.AUTOCONNECT, autoConnect);
- values.put(ServerConstants.USE_SSL, useSSL);
- values.put(ServerConstants.IDENTITY, identityId);
- values.put(ServerConstants.CHARSET, charset);
-
- return this.getWritableDatabase().insert(ServerConstants.TABLE_NAME, null, values);
- }
-
- /**
- * Update the server record in the database
- *
- * @param serverId
- * @param title Unique title of the server
- * @param host Hostname of the server
- * @param port Port (default: 3337)
- * @param password Password if needed
- * @param autoConnect Autoconnect to this server on startup?
- * @param useSSL Does the server use SSL?
- * @param identityId The identity of the server record
- */
- public void updateServer(int serverId, String title, String host, int port, String password, boolean autoConnect, boolean useSSL, long identityId, String charset)
- {
- ContentValues values = new ContentValues();
-
- values.put(ServerConstants.TITLE, title);
- values.put(ServerConstants.HOST, host);
- values.put(ServerConstants.PORT, port);
- values.put(ServerConstants.PASSWORD, password);
- values.put(ServerConstants.AUTOCONNECT, autoConnect);
- values.put(ServerConstants.USE_SSL, useSSL);
- values.put(ServerConstants.IDENTITY, identityId);
- values.put(ServerConstants.CHARSET, charset);
-
- this.getWritableDatabase().update(
- ServerConstants.TABLE_NAME,
- values,
- ServerConstants._ID + " = " + serverId,
- null
- );
- }
-
- /**
- * Add a channel to the database
- *
- * @param serverId Unique id of server
- * @param name Name of channel
- * @param password Password to join (if needed)
- */
- public void addChannel(int serverId, String name, String password)
- {
- ContentValues values = new ContentValues();
-
- values.put(ChannelConstants.NAME, name);
- values.put(ChannelConstants.PASSWORD, password);
- values.put(ChannelConstants.SERVER, serverId);
-
- this.getWritableDatabase().insert(ChannelConstants.TABLE_NAME, null, values);
- }
-
- /**
- * Replace list of channels for the given server
- *
- * @param serverId Unique id of server
- * @param channels List of channel names
- */
- public void setChannels(int serverId, ArrayList channels)
- {
- // Remove old channels
- this.getWritableDatabase().delete(
- ChannelConstants.TABLE_NAME,
- ChannelConstants.SERVER + " = " + serverId,
- null
- );
-
- // Add new channels
- for (String channel : channels) {
- addChannel(serverId, channel, "");
- }
- }
-
- /**
- * Get all commands to execute on connect
- *
- * @param serverId Unique id of server
- * @return List of commands
- */
- public ArrayList getCommandsByServerId(int serverId)
- {
- ArrayList commands = new ArrayList();
-
- Cursor cursor = this.getReadableDatabase().query(
- CommandConstants.TABLE_NAME,
- CommandConstants.ALL,
- CommandConstants.SERVER + "=" + serverId,
- null,
- null,
- null,
- null
- );
-
- while (cursor.moveToNext()) {
- String command = cursor.getString(cursor.getColumnIndex(CommandConstants.COMMAND));
- commands.add(command);
- }
-
- cursor.close();
-
- return commands;
- }
-
- /**
- * Add a command to a server
- *
- * @param serverId Unique id of server
- * @param command The command to execute after connect
- */
- public void addCommand(int serverId, String command)
- {
- ContentValues values = new ContentValues();
-
- values.put(CommandConstants.COMMAND, command);
- values.put(CommandConstants.SERVER, serverId);
-
- this.getWritableDatabase().insert(CommandConstants.TABLE_NAME, null, values);
- }
-
- /**
- * Replace list of commands for the given server
- *
- * @param serverId Unique id of server
- * @param commands List of commands to execute after connect
- */
- public void setCommands(int serverId, ArrayList commands)
- {
- // Remove old commands
- this.getWritableDatabase().delete(
- CommandConstants.TABLE_NAME,
- CommandConstants.SERVER + " = " + serverId,
- null
- );
-
- // Add new commands
- for (String command : commands) {
- addCommand(serverId, command);
- }
- }
-
- /**
- * Get all servers from database
- *
- * @return
- */
- public HashMap getServers()
- {
- HashMap servers = new HashMap();
-
- Cursor cursor = this.getReadableDatabase().query(
- ServerConstants.TABLE_NAME,
- ServerConstants.ALL,
- null,
- null,
- null,
- null,
- ServerConstants.TITLE + " ASC"
- );
-
- while (cursor.moveToNext()) {
- Server server = populateServer(cursor);
- servers.put(server.getId(), server);
- }
- cursor.close();
-
- return servers;
- }
-
- public Server getServerById(int serverId)
- {
- Server server = null;
-
- Cursor cursor = this.getReadableDatabase().query(
- ServerConstants.TABLE_NAME,
- ServerConstants.ALL,
- ServerConstants._ID + "=" + serverId,
- null,
- null,
- null,
- ServerConstants.TITLE + " ASC"
- );
-
- if (cursor.moveToNext()) {
- server = populateServer(cursor);
- }
-
- cursor.close();
-
- return server;
- }
-
- /**
- * Check if the given server title is currently used
- *
- * @param title The server title
- * @return true if there's a server with this title, false otherwise
- */
- public boolean isTitleUsed(String title)
- {
- boolean isTitleUsed = false;
-
- Cursor cursor = this.getReadableDatabase().query(
- ServerConstants.TABLE_NAME,
- ServerConstants.ALL,
- ServerConstants.TITLE + " = '" + title + "'",
- null,
- null,
- null,
- null
- );
-
- if (cursor.moveToNext()) {
- isTitleUsed = true;
- }
-
- cursor.close();
-
- return isTitleUsed;
- }
-
- /**
- * Populate a server object from the given database cursor
- * @param cursor
- * @return
- */
- private Server populateServer(Cursor cursor)
- {
- Server server = new Server();
-
- server.setTitle(cursor.getString(cursor.getColumnIndex((ServerConstants.TITLE))));
- server.setHost(cursor.getString(cursor.getColumnIndex((ServerConstants.HOST))));
- server.setPort(cursor.getInt(cursor.getColumnIndex((ServerConstants.PORT))));
- server.setPassword(cursor.getString(cursor.getColumnIndex(ServerConstants.PASSWORD)));
- server.setId(cursor.getInt(cursor.getColumnIndex((ServerConstants._ID))));
- server.setCharset(cursor.getString(cursor.getColumnIndex(ServerConstants.CHARSET)));
-
- String useSSLvalue = cursor.getString(cursor.getColumnIndex(ServerConstants.USE_SSL));
- if (useSSLvalue != null && useSSLvalue.equals("1")) {
- server.setUseSSL(true);
- }
-
- server.setStatus(Status.DISCONNECTED);
-
- // Load identity for server
- Identity identity = this.getIdentityById(cursor.getInt(cursor.getColumnIndex(ServerConstants.IDENTITY)));
- server.setIdentity(identity);
-
- // Load auto join channels
- ArrayList channels = this.getChannelsByServerId(server.getId());
- server.setAutoJoinChannels(channels);
-
- // Load commands to execute after connect
- ArrayList commands = this.getCommandsByServerId(server.getId());
- server.setConnectCommands(commands);
-
- return server;
- }
-
- /**
- * Get all servers with autoconnect enabled
- *
- * @return
- */
- public Cursor getAutoConnectServers()
- {
- return this.getReadableDatabase().query(
- ServerConstants.TABLE_NAME,
- ServerConstants.ALL,
- ServerConstants.AUTOCONNECT + " = 1",
- null,
- null,
- null,
- ServerConstants.TITLE + " ASC"
- );
- }
-
- /**
- * Get all channels of server
- *
- * @param server Unique id of server
- * @return list of channel names
- */
- public ArrayList getChannelsByServerId(int serverId)
- {
- ArrayList channels = new ArrayList();
-
- Cursor cursor = this.getReadableDatabase().query(
- ChannelConstants.TABLE_NAME,
- ChannelConstants.ALL,
- ChannelConstants.SERVER + "=" + serverId,
- null,
- null,
- null,
- ChannelConstants.NAME + " ASC"
- );
-
- while (cursor.moveToNext()) {
- String channel = cursor.getString(cursor.getColumnIndex(ChannelConstants.NAME));
- channels.add(channel);
- }
-
- cursor.close();
-
- return channels;
- }
-
- /**
- * Remove server from database by unique id
- *
- * @param title
- */
- public void removeServerById(int serverId)
- {
- // XXX: Workaround: Remove identity assigned to this server
- // until we have some kind of identity manager
- int identityId = this.getIdentityIdByServerId(serverId);
- if (identityId != -1) {
- deleteAliases(identityId);
- this.getWritableDatabase().execSQL(
- "DELETE FROM " + IdentityConstants.TABLE_NAME + " WHERE " + IdentityConstants._ID + " = " + identityId + ";"
- );
- }
-
- // Now delete the server entry
- this.getWritableDatabase().execSQL(
- "DELETE FROM " + ServerConstants.TABLE_NAME + " WHERE " + ServerConstants._ID + " = " + serverId + ";"
- );
- }
-
- protected void setAliases(long identityId, List aliases)
- {
- deleteAliases(identityId);
-
- ContentValues values = new ContentValues();
- for (String alias : aliases) {
- values.clear();
- values.put(AliasConstants.ALIAS, alias);
- values.put(AliasConstants.IDENTITY, identityId);
- getWritableDatabase().insert(AliasConstants.TABLE_NAME, null, values);
- }
- }
-
- protected void deleteAliases(long identityId)
- {
- getWritableDatabase().execSQL(
- "DELETE FROM " + AliasConstants.TABLE_NAME + " WHERE " + AliasConstants.IDENTITY + " = " + identityId
- );
- }
-
- protected List getAliasesByIdentityId(long identityId)
- {
- List aliases = new ArrayList();
-
- Cursor cursor = this.getReadableDatabase().query(
- AliasConstants.TABLE_NAME,
- AliasConstants.ALL,
- AliasConstants.IDENTITY + " = " + identityId,
- null,
- null,
- null,
- null
- );
-
- while (cursor.moveToNext()) {
- aliases.add(cursor.getString(cursor.getColumnIndex(AliasConstants.ALIAS)));
- }
- cursor.close();
-
- return aliases;
- }
-
- /**
- * Add a new identity
- *
- * @param identityId
- * @param nickname
- * @param ident
- * @param realname
- * @param aliases
- */
- public long addIdentity(String nickname, String ident, String realname, List aliases)
- {
- ContentValues values = new ContentValues();
-
- values.put(IdentityConstants.NICKNAME, nickname);
- values.put(IdentityConstants.IDENT, ident);
- values.put(IdentityConstants.REALNAME, realname);
-
- long identityId = this.getWritableDatabase().insert(IdentityConstants.TABLE_NAME, null, values);
-
- setAliases(identityId, aliases);
-
- return identityId;
- }
-
- /**
- * Update the identity with the given id
- *
- * @param identityId
- * @param nickname
- * @param ident
- * @param realname
- */
- public void updateIdentity(int identityId, String nickname, String ident, String realname, List aliases)
- {
- ContentValues values = new ContentValues();
-
- values.put(IdentityConstants.NICKNAME, nickname);
- values.put(IdentityConstants.IDENT, ident);
- values.put(IdentityConstants.REALNAME, realname);
-
- this.getWritableDatabase().update(
- IdentityConstants.TABLE_NAME,
- values,
- IdentityConstants._ID + " = " + identityId,
- null
- );
-
- setAliases(identityId, aliases);
- }
-
- /**
- * Get an identity by its id
- *
- * @param identityId
- * @return
- */
- public Identity getIdentityById(int identityId)
- {
- Identity identity = null;
-
- Cursor cursor = this.getReadableDatabase().query(
- IdentityConstants.TABLE_NAME,
- IdentityConstants.ALL,
- IdentityConstants._ID + "=" + identityId,
- null,
- null,
- null,
- null
- );
-
- if (cursor.moveToNext()) {
- identity = new Identity();
-
- identity.setNickname(cursor.getString(cursor.getColumnIndex(IdentityConstants.NICKNAME)));
- identity.setIdent(cursor.getString(cursor.getColumnIndex(IdentityConstants.IDENT)));
- identity.setRealName(cursor.getString(cursor.getColumnIndex(IdentityConstants.REALNAME)));
-
- identity.setAliases(getAliasesByIdentityId(identityId));
- }
-
- cursor.close();
-
- return identity;
- }
-
- /**
- * Get a server by its id
- *
- * @param serverId
- * @return
- */
- public int getIdentityIdByServerId(int serverId)
- {
- int identityId = -1;
-
- Cursor cursor = this.getReadableDatabase().query(
- ServerConstants.TABLE_NAME,
- ServerConstants.ALL,
- ServerConstants._ID + "=" + serverId,
- null,
- null,
- null,
- null
- );
-
- if (cursor.moveToNext()) {
- identityId = cursor.getInt(cursor.getColumnIndex(ServerConstants.IDENTITY));
- }
-
- cursor.close();
-
- return identityId;
- }
+ private static final String DATABASE_NAME = "servers.db";
+ private static final int DATABASE_VERSION = 4;
+
+ /**
+ * Create a new helper for database access
+ *
+ * @param context
+ */
+ public Database(Context context)
+ {
+ super(context, DATABASE_NAME, null, DATABASE_VERSION);
+ }
+
+ /**
+ * Create all needed tables on first start
+ */
+ @Override
+ public void onCreate(SQLiteDatabase db)
+ {
+ db.execSQL("CREATE TABLE " + ServerConstants.TABLE_NAME + " ( "
+ + ServerConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ + ServerConstants.TITLE + " TEXT NOT NULL, "
+ + ServerConstants.HOST + " TEXT NOT NULL, "
+ + ServerConstants.PORT + " INTEGER, "
+ + ServerConstants.PASSWORD + " TEXT, "
+ + ServerConstants.AUTOCONNECT + " BOOLEAN, " // XXX: Does SQLLite support boolean?
+ + ServerConstants.USE_SSL + " BOOLEAN, "
+ + ServerConstants.CHARSET + " TEXT, "
+ + ServerConstants.IDENTITY + " INTEGER"
+ + ");"
+ );
+
+ db.execSQL("CREATE TABLE " + ChannelConstants.TABLE_NAME + " ("
+ + ChannelConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ + ChannelConstants.NAME + " TEXT NOT NULL, "
+ + ChannelConstants.PASSWORD + " TEXT, "
+ + ChannelConstants.SERVER + " INTEGER"
+ + ");"
+ );
+
+ db.execSQL("CREATE TABLE " + IdentityConstants.TABLE_NAME +" ("
+ + IdentityConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ + IdentityConstants.NICKNAME + " TEXT NOT NULL,"
+ + IdentityConstants.IDENT + " TEXT NOT NULL,"
+ + IdentityConstants.REALNAME + " TEXT NOT NULL"
+ + ");"
+ );
+
+ db.execSQL("CREATE TABLE " + CommandConstants.TABLE_NAME + " ("
+ + CommandConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ + CommandConstants.COMMAND + " TEXT NOT NULL, "
+ + ChannelConstants.SERVER + " INTEGER"
+ + ");"
+ );
+
+ db.execSQL("CREATE TABLE " + AliasConstants.TABLE_NAME + " ("
+ + AliasConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ + AliasConstants.ALIAS + " TEXT NOT NULL, "
+ + AliasConstants.IDENTITY + " INTEGER"
+ + ");"
+ );
+ }
+
+ /**
+ * Migrate existing databases to
+ */
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
+ {
+ // XXX: Do not delete databases (release version)
+
+ // db.execSQL("DROP TABLE IF EXISTS " + ServerConstants.TABLE_NAME + ";");
+ // db.execSQL("DROP TABLE IF EXISTS " + ChannelConstants.TABLE_NAME + ";");
+ // db.execSQL("DROP TABLE IF EXISTS " + IdentityConstants.TABLE_NAME + ";");
+
+ // onCreate(db);
+
+ if (oldVersion == 1) {
+ // Add charset field to server table
+ db.execSQL("ALTER TABLE " + ServerConstants.TABLE_NAME + " ADD " + ServerConstants.CHARSET + " TEXT AFTER " + ServerConstants.USE_SSL + ";");
+
+ oldVersion = 2; // now do the updates for version 2
+ }
+
+ if (oldVersion == 2) {
+ // Add new commands table (copy&paste from onCreate())
+ db.execSQL("CREATE TABLE " + CommandConstants.TABLE_NAME + " ("
+ + CommandConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ + CommandConstants.COMMAND + " TEXT NOT NULL, "
+ + ChannelConstants.SERVER + " INTEGER"
+ + ");"
+ );
+
+ oldVersion = 3;
+ }
+
+ if (oldVersion == 3) {
+ db.execSQL("CREATE TABLE " + AliasConstants.TABLE_NAME + " ("
+ + AliasConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ + AliasConstants.ALIAS + " TEXT NOT NULL, "
+ + AliasConstants.IDENTITY + " INTEGER"
+ + ");"
+ );
+ }
+ }
+
+ /**
+ * Add a new server to the database
+ *
+ * @param title Unique title of the server
+ * @param host Hostname of the server
+ * @param port Port (default: 3337)
+ * @param password Password if needed
+ * @param autoConnect Autoconnect to this server on startup?
+ * @param useSSL Does the server use SSL?
+ * @param identityId The id of the identity record
+ */
+ public long addServer(String title, String host, int port, String password, boolean autoConnect, boolean useSSL, long identityId, String charset)
+ {
+ ContentValues values = new ContentValues();
+
+ values.put(ServerConstants.TITLE, title);
+ values.put(ServerConstants.HOST, host);
+ values.put(ServerConstants.PORT, port);
+ values.put(ServerConstants.PASSWORD, password);
+ values.put(ServerConstants.AUTOCONNECT, autoConnect);
+ values.put(ServerConstants.USE_SSL, useSSL);
+ values.put(ServerConstants.IDENTITY, identityId);
+ values.put(ServerConstants.CHARSET, charset);
+
+ return this.getWritableDatabase().insert(ServerConstants.TABLE_NAME, null, values);
+ }
+
+ /**
+ * Update the server record in the database
+ *
+ * @param serverId
+ * @param title Unique title of the server
+ * @param host Hostname of the server
+ * @param port Port (default: 3337)
+ * @param password Password if needed
+ * @param autoConnect Autoconnect to this server on startup?
+ * @param useSSL Does the server use SSL?
+ * @param identityId The identity of the server record
+ */
+ public void updateServer(int serverId, String title, String host, int port, String password, boolean autoConnect, boolean useSSL, long identityId, String charset)
+ {
+ ContentValues values = new ContentValues();
+
+ values.put(ServerConstants.TITLE, title);
+ values.put(ServerConstants.HOST, host);
+ values.put(ServerConstants.PORT, port);
+ values.put(ServerConstants.PASSWORD, password);
+ values.put(ServerConstants.AUTOCONNECT, autoConnect);
+ values.put(ServerConstants.USE_SSL, useSSL);
+ values.put(ServerConstants.IDENTITY, identityId);
+ values.put(ServerConstants.CHARSET, charset);
+
+ this.getWritableDatabase().update(
+ ServerConstants.TABLE_NAME,
+ values,
+ ServerConstants._ID + " = " + serverId,
+ null
+ );
+ }
+
+ /**
+ * Add a channel to the database
+ *
+ * @param serverId Unique id of server
+ * @param name Name of channel
+ * @param password Password to join (if needed)
+ */
+ public void addChannel(int serverId, String name, String password)
+ {
+ ContentValues values = new ContentValues();
+
+ values.put(ChannelConstants.NAME, name);
+ values.put(ChannelConstants.PASSWORD, password);
+ values.put(ChannelConstants.SERVER, serverId);
+
+ this.getWritableDatabase().insert(ChannelConstants.TABLE_NAME, null, values);
+ }
+
+ /**
+ * Replace list of channels for the given server
+ *
+ * @param serverId Unique id of server
+ * @param channels List of channel names
+ */
+ public void setChannels(int serverId, ArrayList channels)
+ {
+ // Remove old channels
+ this.getWritableDatabase().delete(
+ ChannelConstants.TABLE_NAME,
+ ChannelConstants.SERVER + " = " + serverId,
+ null
+ );
+
+ // Add new channels
+ for (String channel : channels) {
+ addChannel(serverId, channel, "");
+ }
+ }
+
+ /**
+ * Get all commands to execute on connect
+ *
+ * @param serverId Unique id of server
+ * @return List of commands
+ */
+ public ArrayList getCommandsByServerId(int serverId)
+ {
+ ArrayList commands = new ArrayList();
+
+ Cursor cursor = this.getReadableDatabase().query(
+ CommandConstants.TABLE_NAME,
+ CommandConstants.ALL,
+ CommandConstants.SERVER + "=" + serverId,
+ null,
+ null,
+ null,
+ null
+ );
+
+ while (cursor.moveToNext()) {
+ String command = cursor.getString(cursor.getColumnIndex(CommandConstants.COMMAND));
+ commands.add(command);
+ }
+
+ cursor.close();
+
+ return commands;
+ }
+
+ /**
+ * Add a command to a server
+ *
+ * @param serverId Unique id of server
+ * @param command The command to execute after connect
+ */
+ public void addCommand(int serverId, String command)
+ {
+ ContentValues values = new ContentValues();
+
+ values.put(CommandConstants.COMMAND, command);
+ values.put(CommandConstants.SERVER, serverId);
+
+ this.getWritableDatabase().insert(CommandConstants.TABLE_NAME, null, values);
+ }
+
+ /**
+ * Replace list of commands for the given server
+ *
+ * @param serverId Unique id of server
+ * @param commands List of commands to execute after connect
+ */
+ public void setCommands(int serverId, ArrayList commands)
+ {
+ // Remove old commands
+ this.getWritableDatabase().delete(
+ CommandConstants.TABLE_NAME,
+ CommandConstants.SERVER + " = " + serverId,
+ null
+ );
+
+ // Add new commands
+ for (String command : commands) {
+ addCommand(serverId, command);
+ }
+ }
+
+ /**
+ * Get all servers from database
+ *
+ * @return
+ */
+ public HashMap getServers()
+ {
+ HashMap servers = new HashMap();
+
+ Cursor cursor = this.getReadableDatabase().query(
+ ServerConstants.TABLE_NAME,
+ ServerConstants.ALL,
+ null,
+ null,
+ null,
+ null,
+ ServerConstants.TITLE + " ASC"
+ );
+
+ while (cursor.moveToNext()) {
+ Server server = populateServer(cursor);
+ servers.put(server.getId(), server);
+ }
+ cursor.close();
+
+ return servers;
+ }
+
+ public Server getServerById(int serverId)
+ {
+ Server server = null;
+
+ Cursor cursor = this.getReadableDatabase().query(
+ ServerConstants.TABLE_NAME,
+ ServerConstants.ALL,
+ ServerConstants._ID + "=" + serverId,
+ null,
+ null,
+ null,
+ ServerConstants.TITLE + " ASC"
+ );
+
+ if (cursor.moveToNext()) {
+ server = populateServer(cursor);
+ }
+
+ cursor.close();
+
+ return server;
+ }
+
+ /**
+ * Check if the given server title is currently used
+ *
+ * @param title The server title
+ * @return true if there's a server with this title, false otherwise
+ */
+ public boolean isTitleUsed(String title)
+ {
+ boolean isTitleUsed = false;
+
+ Cursor cursor = this.getReadableDatabase().query(
+ ServerConstants.TABLE_NAME,
+ ServerConstants.ALL,
+ ServerConstants.TITLE + " = '" + title + "'",
+ null,
+ null,
+ null,
+ null
+ );
+
+ if (cursor.moveToNext()) {
+ isTitleUsed = true;
+ }
+
+ cursor.close();
+
+ return isTitleUsed;
+ }
+
+ /**
+ * Populate a server object from the given database cursor
+ * @param cursor
+ * @return
+ */
+ private Server populateServer(Cursor cursor)
+ {
+ Server server = new Server();
+
+ server.setTitle(cursor.getString(cursor.getColumnIndex((ServerConstants.TITLE))));
+ server.setHost(cursor.getString(cursor.getColumnIndex((ServerConstants.HOST))));
+ server.setPort(cursor.getInt(cursor.getColumnIndex((ServerConstants.PORT))));
+ server.setPassword(cursor.getString(cursor.getColumnIndex(ServerConstants.PASSWORD)));
+ server.setId(cursor.getInt(cursor.getColumnIndex((ServerConstants._ID))));
+ server.setCharset(cursor.getString(cursor.getColumnIndex(ServerConstants.CHARSET)));
+
+ String useSSLvalue = cursor.getString(cursor.getColumnIndex(ServerConstants.USE_SSL));
+ if (useSSLvalue != null && useSSLvalue.equals("1")) {
+ server.setUseSSL(true);
+ }
+
+ server.setStatus(Status.DISCONNECTED);
+
+ // Load identity for server
+ Identity identity = this.getIdentityById(cursor.getInt(cursor.getColumnIndex(ServerConstants.IDENTITY)));
+ server.setIdentity(identity);
+
+ // Load auto join channels
+ ArrayList channels = this.getChannelsByServerId(server.getId());
+ server.setAutoJoinChannels(channels);
+
+ // Load commands to execute after connect
+ ArrayList commands = this.getCommandsByServerId(server.getId());
+ server.setConnectCommands(commands);
+
+ return server;
+ }
+
+ /**
+ * Get all servers with autoconnect enabled
+ *
+ * @return
+ */
+ public Cursor getAutoConnectServers()
+ {
+ return this.getReadableDatabase().query(
+ ServerConstants.TABLE_NAME,
+ ServerConstants.ALL,
+ ServerConstants.AUTOCONNECT + " = 1",
+ null,
+ null,
+ null,
+ ServerConstants.TITLE + " ASC"
+ );
+ }
+
+ /**
+ * Get all channels of server
+ *
+ * @param server Unique id of server
+ * @return list of channel names
+ */
+ public ArrayList getChannelsByServerId(int serverId)
+ {
+ ArrayList channels = new ArrayList();
+
+ Cursor cursor = this.getReadableDatabase().query(
+ ChannelConstants.TABLE_NAME,
+ ChannelConstants.ALL,
+ ChannelConstants.SERVER + "=" + serverId,
+ null,
+ null,
+ null,
+ ChannelConstants.NAME + " ASC"
+ );
+
+ while (cursor.moveToNext()) {
+ String channel = cursor.getString(cursor.getColumnIndex(ChannelConstants.NAME));
+ channels.add(channel);
+ }
+
+ cursor.close();
+
+ return channels;
+ }
+
+ /**
+ * Remove server from database by unique id
+ *
+ * @param title
+ */
+ public void removeServerById(int serverId)
+ {
+ // XXX: Workaround: Remove identity assigned to this server
+ // until we have some kind of identity manager
+ int identityId = this.getIdentityIdByServerId(serverId);
+ if (identityId != -1) {
+ deleteAliases(identityId);
+ this.getWritableDatabase().execSQL(
+ "DELETE FROM " + IdentityConstants.TABLE_NAME + " WHERE " + IdentityConstants._ID + " = " + identityId + ";"
+ );
+ }
+
+ // Now delete the server entry
+ this.getWritableDatabase().execSQL(
+ "DELETE FROM " + ServerConstants.TABLE_NAME + " WHERE " + ServerConstants._ID + " = " + serverId + ";"
+ );
+ }
+
+ protected void setAliases(long identityId, List aliases)
+ {
+ deleteAliases(identityId);
+
+ ContentValues values = new ContentValues();
+ for (String alias : aliases) {
+ values.clear();
+ values.put(AliasConstants.ALIAS, alias);
+ values.put(AliasConstants.IDENTITY, identityId);
+ getWritableDatabase().insert(AliasConstants.TABLE_NAME, null, values);
+ }
+ }
+
+ protected void deleteAliases(long identityId)
+ {
+ getWritableDatabase().execSQL(
+ "DELETE FROM " + AliasConstants.TABLE_NAME + " WHERE " + AliasConstants.IDENTITY + " = " + identityId
+ );
+ }
+
+ protected List getAliasesByIdentityId(long identityId)
+ {
+ List aliases = new ArrayList();
+
+ Cursor cursor = this.getReadableDatabase().query(
+ AliasConstants.TABLE_NAME,
+ AliasConstants.ALL,
+ AliasConstants.IDENTITY + " = " + identityId,
+ null,
+ null,
+ null,
+ null
+ );
+
+ while (cursor.moveToNext()) {
+ aliases.add(cursor.getString(cursor.getColumnIndex(AliasConstants.ALIAS)));
+ }
+ cursor.close();
+
+ return aliases;
+ }
+
+ /**
+ * Add a new identity
+ *
+ * @param identityId
+ * @param nickname
+ * @param ident
+ * @param realname
+ * @param aliases
+ */
+ public long addIdentity(String nickname, String ident, String realname, List aliases)
+ {
+ ContentValues values = new ContentValues();
+
+ values.put(IdentityConstants.NICKNAME, nickname);
+ values.put(IdentityConstants.IDENT, ident);
+ values.put(IdentityConstants.REALNAME, realname);
+
+ long identityId = this.getWritableDatabase().insert(IdentityConstants.TABLE_NAME, null, values);
+
+ setAliases(identityId, aliases);
+
+ return identityId;
+ }
+
+ /**
+ * Update the identity with the given id
+ *
+ * @param identityId
+ * @param nickname
+ * @param ident
+ * @param realname
+ */
+ public void updateIdentity(int identityId, String nickname, String ident, String realname, List aliases)
+ {
+ ContentValues values = new ContentValues();
+
+ values.put(IdentityConstants.NICKNAME, nickname);
+ values.put(IdentityConstants.IDENT, ident);
+ values.put(IdentityConstants.REALNAME, realname);
+
+ this.getWritableDatabase().update(
+ IdentityConstants.TABLE_NAME,
+ values,
+ IdentityConstants._ID + " = " + identityId,
+ null
+ );
+
+ setAliases(identityId, aliases);
+ }
+
+ /**
+ * Get an identity by its id
+ *
+ * @param identityId
+ * @return
+ */
+ public Identity getIdentityById(int identityId)
+ {
+ Identity identity = null;
+
+ Cursor cursor = this.getReadableDatabase().query(
+ IdentityConstants.TABLE_NAME,
+ IdentityConstants.ALL,
+ IdentityConstants._ID + "=" + identityId,
+ null,
+ null,
+ null,
+ null
+ );
+
+ if (cursor.moveToNext()) {
+ identity = new Identity();
+
+ identity.setNickname(cursor.getString(cursor.getColumnIndex(IdentityConstants.NICKNAME)));
+ identity.setIdent(cursor.getString(cursor.getColumnIndex(IdentityConstants.IDENT)));
+ identity.setRealName(cursor.getString(cursor.getColumnIndex(IdentityConstants.REALNAME)));
+
+ identity.setAliases(getAliasesByIdentityId(identityId));
+ }
+
+ cursor.close();
+
+ return identity;
+ }
+
+ /**
+ * Get a server by its id
+ *
+ * @param serverId
+ * @return
+ */
+ public int getIdentityIdByServerId(int serverId)
+ {
+ int identityId = -1;
+
+ Cursor cursor = this.getReadableDatabase().query(
+ ServerConstants.TABLE_NAME,
+ ServerConstants.ALL,
+ ServerConstants._ID + "=" + serverId,
+ null,
+ null,
+ null,
+ null
+ );
+
+ if (cursor.moveToNext()) {
+ identityId = cursor.getInt(cursor.getColumnIndex(ServerConstants.IDENTITY));
+ }
+
+ cursor.close();
+
+ return identityId;
+ }
}
diff --git a/application/src/org/yaaic/db/IdentityConstants.java b/application/src/org/yaaic/db/IdentityConstants.java
index 0365b41..a621e05 100644
--- a/application/src/org/yaaic/db/IdentityConstants.java
+++ b/application/src/org/yaaic/db/IdentityConstants.java
@@ -29,20 +29,20 @@ import android.provider.BaseColumns;
*/
public class IdentityConstants implements BaseColumns
{
- public static final String TABLE_NAME = "identities";
-
- // fields
- public static final String NICKNAME = "nickname";
- public static final String IDENT = "ident";
- public static final String REALNAME = "realname";
-
- /**
- * All fields of the table
- */
- public static final String[] ALL = {
- _ID,
- NICKNAME,
- IDENT,
- REALNAME,
- };
+ public static final String TABLE_NAME = "identities";
+
+ // fields
+ public static final String NICKNAME = "nickname";
+ public static final String IDENT = "ident";
+ public static final String REALNAME = "realname";
+
+ /**
+ * All fields of the table
+ */
+ public static final String[] ALL = {
+ _ID,
+ NICKNAME,
+ IDENT,
+ REALNAME,
+ };
}
diff --git a/application/src/org/yaaic/db/ServerConstants.java b/application/src/org/yaaic/db/ServerConstants.java
index 9d4fd24..ab36b56 100644
--- a/application/src/org/yaaic/db/ServerConstants.java
+++ b/application/src/org/yaaic/db/ServerConstants.java
@@ -29,30 +29,30 @@ import android.provider.BaseColumns;
*/
public interface ServerConstants extends BaseColumns
{
- public static final String TABLE_NAME = "servers";
-
- // fields
- public static final String TITLE = "title";
- public static final String HOST = "host";
- public static final String PORT = "port";
- public static final String PASSWORD = "password";
- public static final String AUTOCONNECT = "autoConnect";
- public static final String USE_SSL = "useSSL";
- public static final String CHARSET = "charset";
- public static final String IDENTITY = "identity";
-
- /**
- * All fields of the table
- */
- public static final String[] ALL = {
- _ID,
- TITLE,
- HOST,
- PORT,
- PASSWORD,
- AUTOCONNECT,
- USE_SSL,
- CHARSET,
- IDENTITY
- };
+ public static final String TABLE_NAME = "servers";
+
+ // fields
+ public static final String TITLE = "title";
+ public static final String HOST = "host";
+ public static final String PORT = "port";
+ public static final String PASSWORD = "password";
+ public static final String AUTOCONNECT = "autoConnect";
+ public static final String USE_SSL = "useSSL";
+ public static final String CHARSET = "charset";
+ public static final String IDENTITY = "identity";
+
+ /**
+ * All fields of the table
+ */
+ public static final String[] ALL = {
+ _ID,
+ TITLE,
+ HOST,
+ PORT,
+ PASSWORD,
+ AUTOCONNECT,
+ USE_SSL,
+ CHARSET,
+ IDENTITY
+ };
}
diff --git a/application/src/org/yaaic/exception/CommandException.java b/application/src/org/yaaic/exception/CommandException.java
index aefb8f2..6717670 100644
--- a/application/src/org/yaaic/exception/CommandException.java
+++ b/application/src/org/yaaic/exception/CommandException.java
@@ -28,13 +28,13 @@ package org.yaaic.exception;
*/
public class CommandException extends Throwable
{
- private static final long serialVersionUID = -8317993941455253288L;
-
- /**
- * Create a new CommandException object
- */
- public CommandException(String message)
- {
- super(message);
- }
+ private static final long serialVersionUID = -8317993941455253288L;
+
+ /**
+ * Create a new CommandException object
+ */
+ public CommandException(String message)
+ {
+ super(message);
+ }
}
diff --git a/application/src/org/yaaic/exception/ValidationException.java b/application/src/org/yaaic/exception/ValidationException.java
index 03cc87c..ea6ad54 100644
--- a/application/src/org/yaaic/exception/ValidationException.java
+++ b/application/src/org/yaaic/exception/ValidationException.java
@@ -27,15 +27,15 @@ package org.yaaic.exception;
*/
public class ValidationException extends Exception
{
- private static final long serialVersionUID = 6951535205062761539L;
-
- /**
- * Create a new ValidationException with the given message
- *
- * @param message The error message
- */
- public ValidationException(String message)
- {
- super(message);
- }
+ private static final long serialVersionUID = 6951535205062761539L;
+
+ /**
+ * Create a new ValidationException with the given message
+ *
+ * @param message The error message
+ */
+ public ValidationException(String message)
+ {
+ super(message);
+ }
}
diff --git a/application/src/org/yaaic/irc/IRCBinder.java b/application/src/org/yaaic/irc/IRCBinder.java
index 61d02f5..c5b6c3f 100644
--- a/application/src/org/yaaic/irc/IRCBinder.java
+++ b/application/src/org/yaaic/irc/IRCBinder.java
@@ -31,36 +31,36 @@ import android.os.Binder;
*/
public class IRCBinder extends Binder
{
- private IRCService service;
-
- /**
- * Create a new binder for given service
- *
- * @param service
- */
- public IRCBinder(IRCService service)
- {
- super();
-
- this.service = service;
- }
-
- /**
- * Connect to given server
- *
- * @param server
- */
- public void connect(final Server server)
- {
- service.connect(server);
- }
-
- /**
- * Get service associated with this service
- * @return
- */
- public IRCService getService()
- {
- return service;
- }
+ private IRCService service;
+
+ /**
+ * Create a new binder for given service
+ *
+ * @param service
+ */
+ public IRCBinder(IRCService service)
+ {
+ super();
+
+ this.service = service;
+ }
+
+ /**
+ * Connect to given server
+ *
+ * @param server
+ */
+ public void connect(final Server server)
+ {
+ service.connect(server);
+ }
+
+ /**
+ * Get service associated with this service
+ * @return
+ */
+ public IRCService getService()
+ {
+ return service;
+ }
}
diff --git a/application/src/org/yaaic/irc/IRCConnection.java b/application/src/org/yaaic/irc/IRCConnection.java
index 2841194..ed27ba7 100644
--- a/application/src/org/yaaic/irc/IRCConnection.java
+++ b/application/src/org/yaaic/irc/IRCConnection.java
@@ -50,1093 +50,1093 @@ import org.yaaic.model.Status;
*/
public class IRCConnection extends PircBot
{
- private IRCService service;
- private Server server;
- private ArrayList autojoinChannels;
- private Pattern mNickMatch;
-
- /**
- * Create a new connection
- *
- * @param service
- * @param serverId
- */
- public IRCConnection(IRCService service, int serverId)
- {
- this.server = Yaaic.getInstance().getServerById(serverId);
- this.service = service;
-
- // XXX: Should be configurable via settings
- this.setAutoNickChange(true);
-
- this.setFinger("http://www.youtube.com/watch?v=oHg5SJYRHA0");
- this.updateNickMatchPattern();
- }
-
- /**
- * Set the nickname of the user
- *
- * @param nickname The nickname to use
- */
- public void setNickname(String nickname)
- {
- this.setName(nickname);
- this.updateNickMatchPattern();
- }
-
- /**
- * Set the real name of the user
- *
- * @param realname The realname to use
- */
- public void setRealName(String realname)
- {
- // XXX: Pircbot uses the version for "real name" and "version".
- // The real "version" value is provided by onVersion()
- this.setVersion(realname);
- }
-
- /**
- * Set channels to autojoin after connect
- *
- * @param channels
- */
- public void setAutojoinChannels(ArrayList channels)
- {
- autojoinChannels = channels;
- }
+ private IRCService service;
+ private Server server;
+ private ArrayList autojoinChannels;
+ private Pattern mNickMatch;
+
+ /**
+ * Create a new connection
+ *
+ * @param service
+ * @param serverId
+ */
+ public IRCConnection(IRCService service, int serverId)
+ {
+ this.server = Yaaic.getInstance().getServerById(serverId);
+ this.service = service;
+
+ // XXX: Should be configurable via settings
+ this.setAutoNickChange(true);
+
+ this.setFinger("http://www.youtube.com/watch?v=oHg5SJYRHA0");
+ this.updateNickMatchPattern();
+ }
+
+ /**
+ * Set the nickname of the user
+ *
+ * @param nickname The nickname to use
+ */
+ public void setNickname(String nickname)
+ {
+ this.setName(nickname);
+ this.updateNickMatchPattern();
+ }
+
+ /**
+ * Set the real name of the user
+ *
+ * @param realname The realname to use
+ */
+ public void setRealName(String realname)
+ {
+ // XXX: Pircbot uses the version for "real name" and "version".
+ // The real "version" value is provided by onVersion()
+ this.setVersion(realname);
+ }
+
+ /**
+ * Set channels to autojoin after connect
+ *
+ * @param channels
+ */
+ public void setAutojoinChannels(ArrayList channels)
+ {
+ autojoinChannels = channels;
+ }
- /**
- * On version (CTCP version)
- *
- * This is a fix for pircbot as pircbot uses the version as "real name" and as "version"
- */
- @Override
- protected void onVersion(String sourceNick, String sourceLogin, String sourceHostname, String target)
- {
- this.sendRawLine(
- "NOTICE " + sourceNick + " :\u0001VERSION " +
- "Yaaic - Yet another Android IRC client - http://www.yaaic.org" +
- "\u0001"
- );
- }
+ /**
+ * On version (CTCP version)
+ *
+ * This is a fix for pircbot as pircbot uses the version as "real name" and as "version"
+ */
+ @Override
+ protected void onVersion(String sourceNick, String sourceLogin, String sourceHostname, String target)
+ {
+ this.sendRawLine(
+ "NOTICE " + sourceNick + " :\u0001VERSION " +
+ "Yaaic - Yet another Android IRC client - http://www.yaaic.org" +
+ "\u0001"
+ );
+ }
- /**
- * Set the ident of the user
- *
- * @param ident The ident to use
- */
- public void setIdent(String ident)
- {
- this.setLogin(ident);
- }
+ /**
+ * Set the ident of the user
+ *
+ * @param ident The ident to use
+ */
+ public void setIdent(String ident)
+ {
+ this.setLogin(ident);
+ }
- /**
- * On connect
- */
- @Override
- public void onConnect()
- {
- server.setStatus(Status.CONNECTED);
-
- service.sendBroadcast(
- Broadcast.createServerIntent(Broadcast.SERVER_UPDATE, server.getId())
- );
-
- service.updateNotification(service.getString(R.string.notification_connected, server.getTitle()));
-
- Message message = new Message(service.getString(R.string.message_connected, server.getTitle()));
- message.setColor(Message.COLOR_GREEN);
- server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- ServerInfo.DEFAULT_NAME
- );
-
- service.sendBroadcast(intent);
-
- // execute commands
- CommandParser parser = CommandParser.getInstance();
-
- this.updateNickMatchPattern();
- for (String command : server.getConnectCommands()) {
- parser.parse(command, server, server.getConversation(ServerInfo.DEFAULT_NAME), service);
- }
-
- // delay 1 sec before auto joining channels
- try {
- Thread.sleep(1000);
- } catch(InterruptedException e) {
- // do nothing
- }
-
- // join channels
- if (autojoinChannels != null) {
- for (String channel : autojoinChannels) {
- // Add support for channel keys
- joinChannel(channel);
- }
- } else {
- for (String channel : server.getAutoJoinChannels()) {
- joinChannel(channel);
- }
- }
- }
-
- /**
- * On channel action
- */
- @Override
- protected void onAction(String sender, String login, String hostname, String target, String action)
- {
- // Strip mIRC colors and formatting
- action = Colors.removeFormattingAndColors(action);
+ /**
+ * On connect
+ */
+ @Override
+ public void onConnect()
+ {
+ server.setStatus(Status.CONNECTED);
+
+ service.sendBroadcast(
+ Broadcast.createServerIntent(Broadcast.SERVER_UPDATE, server.getId())
+ );
+
+ service.updateNotification(service.getString(R.string.notification_connected, server.getTitle()));
+
+ Message message = new Message(service.getString(R.string.message_connected, server.getTitle()));
+ message.setColor(Message.COLOR_GREEN);
+ server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ ServerInfo.DEFAULT_NAME
+ );
+
+ service.sendBroadcast(intent);
+
+ // execute commands
+ CommandParser parser = CommandParser.getInstance();
+
+ this.updateNickMatchPattern();
+ for (String command : server.getConnectCommands()) {
+ parser.parse(command, server, server.getConversation(ServerInfo.DEFAULT_NAME), service);
+ }
+
+ // delay 1 sec before auto joining channels
+ try {
+ Thread.sleep(1000);
+ } catch(InterruptedException e) {
+ // do nothing
+ }
+
+ // join channels
+ if (autojoinChannels != null) {
+ for (String channel : autojoinChannels) {
+ // Add support for channel keys
+ joinChannel(channel);
+ }
+ } else {
+ for (String channel : server.getAutoJoinChannels()) {
+ joinChannel(channel);
+ }
+ }
+ }
+
+ /**
+ * On channel action
+ */
+ @Override
+ protected void onAction(String sender, String login, String hostname, String target, String action)
+ {
+ // Strip mIRC colors and formatting
+ action = Colors.removeFormattingAndColors(action);
- Message message = new Message(sender + " " + action);
- message.setIcon(R.drawable.action);
-
- if (isMentioned(action)) {
- // highlight
- message.setColor(Message.COLOR_RED);
- service.updateNotification(target + ": " + sender + " " + action, service.getSettings().isVibrateHighlightEnabled());
-
- server.getConversation(target).setStatus(Conversation.STATUS_HIGHLIGHT);
- }
-
- if (target.equals(this.getNick())) {
- // We are the target - this is an action in a query
- Conversation conversation = server.getConversation(sender);
- if (conversation == null) {
- // Open a query if there's none yet
- conversation = new Query(sender);
- server.addConversationl(conversation);
- conversation.addMessage(message);
+ Message message = new Message(sender + " " + action);
+ message.setIcon(R.drawable.action);
+
+ if (isMentioned(action)) {
+ // highlight
+ message.setColor(Message.COLOR_RED);
+ service.updateNotification(target + ": " + sender + " " + action, service.getSettings().isVibrateHighlightEnabled());
+
+ server.getConversation(target).setStatus(Conversation.STATUS_HIGHLIGHT);
+ }
+
+ if (target.equals(this.getNick())) {
+ // We are the target - this is an action in a query
+ Conversation conversation = server.getConversation(sender);
+ if (conversation == null) {
+ // Open a query if there's none yet
+ conversation = new Query(sender);
+ server.addConversationl(conversation);
+ conversation.addMessage(message);
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_NEW,
- server.getId(),
- sender
- );
- service.sendBroadcast(intent);
- } else {
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- sender
- );
- service.sendBroadcast(intent);
- }
- } else {
- // A action in a channel
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
- }
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_NEW,
+ server.getId(),
+ sender
+ );
+ service.sendBroadcast(intent);
+ } else {
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ sender
+ );
+ service.sendBroadcast(intent);
+ }
+ } else {
+ // A action in a channel
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+ }
- /**
- * On Channel Info
- */
- @Override
- protected void onChannelInfo(String channel, int userCount, String topic)
- {
- }
+ /**
+ * On Channel Info
+ */
+ @Override
+ protected void onChannelInfo(String channel, int userCount, String topic)
+ {
+ }
- /**
- * On Deop
- */
- @Override
- protected void onDeop(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
- {
- Message message = new Message(service.getString(R.string.message_deop, sourceNick, recipient));
- message.setIcon(R.drawable.op);
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
+ /**
+ * On Deop
+ */
+ @Override
+ protected void onDeop(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
+ {
+ Message message = new Message(service.getString(R.string.message_deop, sourceNick, recipient));
+ message.setIcon(R.drawable.op);
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
- service.sendBroadcast(intent);
- }
+ service.sendBroadcast(intent);
+ }
- /**
- * On DeVoice
- */
- @Override
- protected void onDeVoice(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
- {
- Message message = new Message(service.getString(R.string.message_devoice, sourceNick, recipient));
- message.setColor(Message.COLOR_BLUE);
- message.setIcon(R.drawable.voice);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
-
- service.sendBroadcast(intent);
- }
+ /**
+ * On DeVoice
+ */
+ @Override
+ protected void onDeVoice(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
+ {
+ Message message = new Message(service.getString(R.string.message_devoice, sourceNick, recipient));
+ message.setColor(Message.COLOR_BLUE);
+ message.setIcon(R.drawable.voice);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+
+ service.sendBroadcast(intent);
+ }
- /**
- * On Invite
- */
- @Override
- protected void onInvite(String targetNick, String sourceNick, String sourceLogin, String sourceHostname, String target)
- {
- if (targetNick.equals(this.getNick())) {
- // We are invited
- Message message = new Message(service.getString(R.string.message_invite_you, sourceNick, target));
- server.getConversation(server.getSelectedConversation()).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- server.getSelectedConversation()
- );
- service.sendBroadcast(intent);
- } else {
- // Someone is invited
- Message message = new Message(service.getString(R.string.message_invite_someone, sourceNick, targetNick, target));
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
- }
+ /**
+ * On Invite
+ */
+ @Override
+ protected void onInvite(String targetNick, String sourceNick, String sourceLogin, String sourceHostname, String target)
+ {
+ if (targetNick.equals(this.getNick())) {
+ // We are invited
+ Message message = new Message(service.getString(R.string.message_invite_you, sourceNick, target));
+ server.getConversation(server.getSelectedConversation()).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ server.getSelectedConversation()
+ );
+ service.sendBroadcast(intent);
+ } else {
+ // Someone is invited
+ Message message = new Message(service.getString(R.string.message_invite_someone, sourceNick, targetNick, target));
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+ }
- /**
- * On Join
- */
- @Override
- protected void onJoin(String target, String sender, String login, String hostname)
- {
- if (sender.equalsIgnoreCase(getNick())) {
- // We joined a new channel
- server.addConversationl(new Channel(target));
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_NEW,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- } else {
- Message message = new Message(service.getString(R.string.message_join, sender));
- message.setIcon(R.drawable.join);
- message.setColor(Message.COLOR_GREEN);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
- }
+ /**
+ * On Join
+ */
+ @Override
+ protected void onJoin(String target, String sender, String login, String hostname)
+ {
+ if (sender.equalsIgnoreCase(getNick())) {
+ // We joined a new channel
+ server.addConversationl(new Channel(target));
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_NEW,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ } else {
+ Message message = new Message(service.getString(R.string.message_join, sender));
+ message.setIcon(R.drawable.join);
+ message.setColor(Message.COLOR_GREEN);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+ }
- /**
- * On Kick
- */
- @Override
- protected void onKick(String target, String kickerNick, String kickerLogin, String kickerHostname, String recipientNick, String reason)
- {
- if (recipientNick.equals(getNick())) {
- // We are kicked
- server.removeConversation(target);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_REMOVE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- } else {
- Message message = new Message(service.getString(R.string.message_kick, kickerNick, recipientNick));
- message.setColor(Message.COLOR_GREEN);
- server.getConversation(target).addMessage(message);
+ /**
+ * On Kick
+ */
+ @Override
+ protected void onKick(String target, String kickerNick, String kickerLogin, String kickerHostname, String recipientNick, String reason)
+ {
+ if (recipientNick.equals(getNick())) {
+ // We are kicked
+ server.removeConversation(target);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_REMOVE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ } else {
+ Message message = new Message(service.getString(R.string.message_kick, kickerNick, recipientNick));
+ message.setColor(Message.COLOR_GREEN);
+ server.getConversation(target).addMessage(message);
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
- }
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+ }
- /**
- * On Message
- */
- @Override
- protected void onMessage(String target, String sender, String login, String hostname, String text)
- {
- // Strip mIRC colors and formatting
- text = Colors.removeFormattingAndColors(text);
-
- Message message = new Message(text, sender);
-
- if (isMentioned(text)) {
- // highlight
- message.setColor(Message.COLOR_RED);
- service.updateNotification(target + ": <" + sender + "> " + text, service.getSettings().isVibrateHighlightEnabled());
-
- server.getConversation(target).setStatus(Conversation.STATUS_HIGHLIGHT);
- }
-
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
+ /**
+ * On Message
+ */
+ @Override
+ protected void onMessage(String target, String sender, String login, String hostname, String text)
+ {
+ // Strip mIRC colors and formatting
+ text = Colors.removeFormattingAndColors(text);
+
+ Message message = new Message(text, sender);
+
+ if (isMentioned(text)) {
+ // highlight
+ message.setColor(Message.COLOR_RED);
+ service.updateNotification(target + ": <" + sender + "> " + text, service.getSettings().isVibrateHighlightEnabled());
+
+ server.getConversation(target).setStatus(Conversation.STATUS_HIGHLIGHT);
+ }
+
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
- /**
- * On Mode
- */
- @Override
- protected void onMode(String target, String sourceNick, String sourceLogin, String sourceHostname, String mode)
- {
- /*//Disabled as it doubles events (e.g. onOp and onMode will be called)
- Message message = new Message(sourceNick + " sets mode " + mode);
- server.getChannel(target).addMessage(message);
-
- Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE);
- intent.putExtra(Broadcast.EXTRA_SERVER, server.getId());
- intent.putExtra(Broadcast.EXTRA_CHANNEL, target);
- service.sendBroadcast(intent);
- */
- }
+ /**
+ * On Mode
+ */
+ @Override
+ protected void onMode(String target, String sourceNick, String sourceLogin, String sourceHostname, String mode)
+ {
+ /*//Disabled as it doubles events (e.g. onOp and onMode will be called)
+ Message message = new Message(sourceNick + " sets mode " + mode);
+ server.getChannel(target).addMessage(message);
+
+ Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE);
+ intent.putExtra(Broadcast.EXTRA_SERVER, server.getId());
+ intent.putExtra(Broadcast.EXTRA_CHANNEL, target);
+ service.sendBroadcast(intent);
+ */
+ }
- /**
- * On Nick Change
- */
- @Override
- protected void onNickChange(String oldNick, String login, String hostname, String newNick)
- {
- if (getNick().equalsIgnoreCase(newNick)) {
- this.updateNickMatchPattern();
- }
- Vector channels = getChannelsByNickname(newNick);
-
- for (String target : channels) {
- Message message = new Message(service.getString(R.string.message_rename, oldNick, newNick));
- message.setColor(Message.COLOR_GREEN);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
- }
+ /**
+ * On Nick Change
+ */
+ @Override
+ protected void onNickChange(String oldNick, String login, String hostname, String newNick)
+ {
+ if (getNick().equalsIgnoreCase(newNick)) {
+ this.updateNickMatchPattern();
+ }
+ Vector channels = getChannelsByNickname(newNick);
+
+ for (String target : channels) {
+ Message message = new Message(service.getString(R.string.message_rename, oldNick, newNick));
+ message.setColor(Message.COLOR_GREEN);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+ }
- /**
- * On Notice
- */
- @Override
- protected void onNotice(String sourceNick, String sourceLogin, String sourceHostname, String target, String notice)
- {
- // Strip mIRC colors and formatting
- notice = Colors.removeFormattingAndColors(notice);
-
- // Post notice to currently selected conversation
- Conversation conversation = server.getConversation(server.getSelectedConversation());
-
- if (conversation == null) {
- // Fallback: Use ServerInfo view
- conversation = server.getConversation(ServerInfo.DEFAULT_NAME);
- }
+ /**
+ * On Notice
+ */
+ @Override
+ protected void onNotice(String sourceNick, String sourceLogin, String sourceHostname, String target, String notice)
+ {
+ // Strip mIRC colors and formatting
+ notice = Colors.removeFormattingAndColors(notice);
+
+ // Post notice to currently selected conversation
+ Conversation conversation = server.getConversation(server.getSelectedConversation());
+
+ if (conversation == null) {
+ // Fallback: Use ServerInfo view
+ conversation = server.getConversation(ServerInfo.DEFAULT_NAME);
+ }
- Message message = new Message("-" + sourceNick + "- " + notice);
- message.setIcon(R.drawable.info);
- conversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(intent);
- }
+ Message message = new Message("-" + sourceNick + "- " + notice);
+ message.setIcon(R.drawable.info);
+ conversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(intent);
+ }
- /**
- * On Op
- */
- @Override
- protected void onOp(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
- {
- Message message = new Message(service.getString(R.string.message_op, sourceNick, recipient));
- message.setColor(Message.COLOR_BLUE);
- message.setIcon(R.drawable.op);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
+ /**
+ * On Op
+ */
+ @Override
+ protected void onOp(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
+ {
+ Message message = new Message(service.getString(R.string.message_op, sourceNick, recipient));
+ message.setColor(Message.COLOR_BLUE);
+ message.setIcon(R.drawable.op);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
- /**
- * On Part
- */
- @Override
- protected void onPart(String target, String sender, String login, String hostname)
- {
- if (sender.equals(getNick())) {
- // We parted a channel
- server.removeConversation(target);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_REMOVE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- } else {
- Message message = new Message(service.getString(R.string.message_part, sender));
- message.setColor(Message.COLOR_GREEN);
- message.setIcon(R.drawable.part);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
- }
+ /**
+ * On Part
+ */
+ @Override
+ protected void onPart(String target, String sender, String login, String hostname)
+ {
+ if (sender.equals(getNick())) {
+ // We parted a channel
+ server.removeConversation(target);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_REMOVE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ } else {
+ Message message = new Message(service.getString(R.string.message_part, sender));
+ message.setColor(Message.COLOR_GREEN);
+ message.setIcon(R.drawable.part);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+ }
- /**
- * On Private Message
- */
- @Override
- protected void onPrivateMessage(String sender, String login, String hostname, String text)
- {
- // Strip mIRC colors and formatting
- text = Colors.removeFormattingAndColors(text);
+ /**
+ * On Private Message
+ */
+ @Override
+ protected void onPrivateMessage(String sender, String login, String hostname, String text)
+ {
+ // Strip mIRC colors and formatting
+ text = Colors.removeFormattingAndColors(text);
- Message message = new Message("<" + sender + "> " + text);
-
- if (isMentioned(text)) {
- message.setColor(Message.COLOR_RED);
- service.updateNotification("<" + sender + "> " + text, service.getSettings().isVibrateHighlightEnabled());
-
- server.getConversation(sender).setStatus(Conversation.STATUS_HIGHLIGHT);
- }
+ Message message = new Message("<" + sender + "> " + text);
+
+ if (isMentioned(text)) {
+ message.setColor(Message.COLOR_RED);
+ service.updateNotification("<" + sender + "> " + text, service.getSettings().isVibrateHighlightEnabled());
+
+ server.getConversation(sender).setStatus(Conversation.STATUS_HIGHLIGHT);
+ }
- Conversation conversation = server.getConversation(sender);
+ Conversation conversation = server.getConversation(sender);
- if (conversation == null) {
- // Open a query if there's none yet
- conversation = new Query(sender);
- conversation.addMessage(message);
- server.addConversationl(conversation);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_NEW,
- server.getId(),
- sender
- );
- service.sendBroadcast(intent);
- } else {
- conversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- sender
- );
- service.sendBroadcast(intent);
- }
- }
+ if (conversation == null) {
+ // Open a query if there's none yet
+ conversation = new Query(sender);
+ conversation.addMessage(message);
+ server.addConversationl(conversation);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_NEW,
+ server.getId(),
+ sender
+ );
+ service.sendBroadcast(intent);
+ } else {
+ conversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ sender
+ );
+ service.sendBroadcast(intent);
+ }
+ }
- /**
- * On Quit
- */
- @Override
- protected void onQuit(String sourceNick, String sourceLogin, String sourceHostname, String reason)
- {
- if (!sourceNick.equals(this.getNick())) {
- Vector channels = getChannelsByNickname(sourceNick);
-
- for (String target : channels) {
- Message message = new Message(service.getString(R.string.message_quit, sourceNick, reason));
- message.setColor(Message.COLOR_GREEN);
- message.setIcon(R.drawable.quit);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
-
- // Look if there's a query to update
- Conversation conversation = server.getConversation(sourceNick);
-
- if (conversation != null) {
- Message message = new Message(service.getString(R.string.message_quit, sourceNick, reason));
- message.setColor(Message.COLOR_GREEN);
- message.setIcon(R.drawable.quit);
- conversation.addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(intent);
- }
-
- } else {
- // XXX: We quitted
- }
- }
+ /**
+ * On Quit
+ */
+ @Override
+ protected void onQuit(String sourceNick, String sourceLogin, String sourceHostname, String reason)
+ {
+ if (!sourceNick.equals(this.getNick())) {
+ Vector channels = getChannelsByNickname(sourceNick);
+
+ for (String target : channels) {
+ Message message = new Message(service.getString(R.string.message_quit, sourceNick, reason));
+ message.setColor(Message.COLOR_GREEN);
+ message.setIcon(R.drawable.quit);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+
+ // Look if there's a query to update
+ Conversation conversation = server.getConversation(sourceNick);
+
+ if (conversation != null) {
+ Message message = new Message(service.getString(R.string.message_quit, sourceNick, reason));
+ message.setColor(Message.COLOR_GREEN);
+ message.setIcon(R.drawable.quit);
+ conversation.addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(intent);
+ }
+
+ } else {
+ // XXX: We quitted
+ }
+ }
- /**
- * On Topic
- */
- @Override
- public void onTopic(String target, String topic, String setBy, long date, boolean changed)
- {
- // strip mIRC colors
- topic = Colors.removeFormattingAndColors(topic);
-
- if (changed) {
- Message message = new Message(service.getString(R.string.message_topic_set, setBy, topic));
- message.setColor(Message.COLOR_YELLOW);
- server.getConversation(target).addMessage(message);
- } else {
- Message message = new Message(service.getString(R.string.message_topic, topic));
- message.setColor(Message.COLOR_YELLOW);
- server.getConversation(target).addMessage(message);
- }
-
- // remember channel's topic
- ((Channel) server.getConversation(target)).setTopic(topic);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
+ /**
+ * On Topic
+ */
+ @Override
+ public void onTopic(String target, String topic, String setBy, long date, boolean changed)
+ {
+ // strip mIRC colors
+ topic = Colors.removeFormattingAndColors(topic);
+
+ if (changed) {
+ Message message = new Message(service.getString(R.string.message_topic_set, setBy, topic));
+ message.setColor(Message.COLOR_YELLOW);
+ server.getConversation(target).addMessage(message);
+ } else {
+ Message message = new Message(service.getString(R.string.message_topic, topic));
+ message.setColor(Message.COLOR_YELLOW);
+ server.getConversation(target).addMessage(message);
+ }
+
+ // remember channel's topic
+ ((Channel) server.getConversation(target)).setTopic(topic);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
- /**
- * On User List
- */
- @Override
- protected void onUserList(String channel, User[] users)
- {
- // XXX: Store user list somewhere and keep it updated or just broadcast some event?
- }
+ /**
+ * On User List
+ */
+ @Override
+ protected void onUserList(String channel, User[] users)
+ {
+ // XXX: Store user list somewhere and keep it updated or just broadcast some event?
+ }
- /**
- * On Voice
- */
- @Override
- protected void onVoice(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
- {
- Message message = new Message(service.getString(R.string.message_voice, sourceNick, recipient));
- message.setIcon(R.drawable.voice);
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- target
- );
- service.sendBroadcast(intent);
- }
-
- /**
- * On remove channel key
- */
- @Override
- protected void onRemoveChannelKey(String target, String sourceNick, String sourceLogin, String sourceHostname, String key)
- {
- Message message = new Message(service.getString(R.string.message_remove_channel_key, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
+ /**
+ * On Voice
+ */
+ @Override
+ protected void onVoice(String target, String sourceNick, String sourceLogin, String sourceHostname, String recipient)
+ {
+ Message message = new Message(service.getString(R.string.message_voice, sourceNick, recipient));
+ message.setIcon(R.drawable.voice);
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ target
+ );
+ service.sendBroadcast(intent);
+ }
+
+ /**
+ * On remove channel key
+ */
+ @Override
+ protected void onRemoveChannelKey(String target, String sourceNick, String sourceLogin, String sourceHostname, String key)
+ {
+ Message message = new Message(service.getString(R.string.message_remove_channel_key, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
- /**
- * On set channel key
- */
- @Override
- protected void onSetChannelKey(String target, String sourceNick, String sourceLogin, String sourceHostname, String key)
- {
- Message message = new Message(service.getString(R.string.message_set_channel_key, sourceNick, key));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On set secret
- */
- @Override
- protected void onSetSecret(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_set_channel_secret, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On remove secret
- */
- @Override
- protected void onRemoveSecret(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_set_channel_public, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On set channel limit
- */
- @Override
- protected void onSetChannelLimit(String target, String sourceNick, String sourceLogin, String sourceHostname, int limit)
- {
- Message message = new Message(service.getString(R.string.message_set_channel_limit, sourceNick, limit));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On remove channel limit
- */
- @Override
- protected void onRemoveChannelLimit(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_remove_channel_limit, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
+ /**
+ * On set channel key
+ */
+ @Override
+ protected void onSetChannelKey(String target, String sourceNick, String sourceLogin, String sourceHostname, String key)
+ {
+ Message message = new Message(service.getString(R.string.message_set_channel_key, sourceNick, key));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On set secret
+ */
+ @Override
+ protected void onSetSecret(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_set_channel_secret, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On remove secret
+ */
+ @Override
+ protected void onRemoveSecret(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_set_channel_public, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On set channel limit
+ */
+ @Override
+ protected void onSetChannelLimit(String target, String sourceNick, String sourceLogin, String sourceHostname, int limit)
+ {
+ Message message = new Message(service.getString(R.string.message_set_channel_limit, sourceNick, limit));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On remove channel limit
+ */
+ @Override
+ protected void onRemoveChannelLimit(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_remove_channel_limit, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
- /**
- * On set channel ban
- */
- @Override
- protected void onSetChannelBan(String target, String sourceNick, String sourceLogin, String sourceHostname, String hostmask)
- {
- Message message = new Message(service.getString(R.string.message_set_ban, sourceNick, hostmask));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On remove channel ban
- */
- @Override
- protected void onRemoveChannelBan(String target, String sourceNick, String sourceLogin, String sourceHostname, String hostmask)
- {
- Message message = new Message(service.getString(R.string.message_remove_ban, sourceNick, hostmask));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On set topic protection
- */
- @Override
- protected void onSetTopicProtection(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_set_topic_protection, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On remove topic protection
- */
- @Override
- protected void onRemoveTopicProtection(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_remove_topic_protection, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
+ /**
+ * On set channel ban
+ */
+ @Override
+ protected void onSetChannelBan(String target, String sourceNick, String sourceLogin, String sourceHostname, String hostmask)
+ {
+ Message message = new Message(service.getString(R.string.message_set_ban, sourceNick, hostmask));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On remove channel ban
+ */
+ @Override
+ protected void onRemoveChannelBan(String target, String sourceNick, String sourceLogin, String sourceHostname, String hostmask)
+ {
+ Message message = new Message(service.getString(R.string.message_remove_ban, sourceNick, hostmask));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On set topic protection
+ */
+ @Override
+ protected void onSetTopicProtection(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_set_topic_protection, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On remove topic protection
+ */
+ @Override
+ protected void onRemoveTopicProtection(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_remove_topic_protection, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
- /**
- * On set no external messages
- */
- @Override
- protected void onSetNoExternalMessages(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_disable_external, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
+ /**
+ * On set no external messages
+ */
+ @Override
+ protected void onSetNoExternalMessages(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_disable_external, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
- /**
- * On remove no external messages
- */
- @Override
- protected void onRemoveNoExternalMessages(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_enable_external, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On set invite only
- */
- @Override
- protected void onSetInviteOnly(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_set_invite_only, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On remove invite only
- */
- @Override
- protected void onRemoveInviteOnly(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_remove_invite_only, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
+ /**
+ * On remove no external messages
+ */
+ @Override
+ protected void onRemoveNoExternalMessages(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_enable_external, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On set invite only
+ */
+ @Override
+ protected void onSetInviteOnly(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_set_invite_only, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On remove invite only
+ */
+ @Override
+ protected void onRemoveInviteOnly(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_remove_invite_only, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
- /**
- * On set moderated
- */
- @Override
- protected void onSetModerated(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_set_moderated, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On remove moderated
- */
- @Override
- protected void onRemoveModerated(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_remove_moderated, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On set private
- */
- @Override
- protected void onSetPrivate(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_set_channel_private, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
-
- /**
- * On remove private
- */
- @Override
- protected void onRemovePrivate(String target, String sourceNick, String sourceLogin, String sourceHostname)
- {
- Message message = new Message(service.getString(R.string.message_set_channel_public, sourceNick));
- message.setColor(Message.COLOR_BLUE);
- server.getConversation(target).addMessage(message);
-
- service.sendBroadcast(
- Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
- );
- }
+ /**
+ * On set moderated
+ */
+ @Override
+ protected void onSetModerated(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_set_moderated, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On remove moderated
+ */
+ @Override
+ protected void onRemoveModerated(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_remove_moderated, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On set private
+ */
+ @Override
+ protected void onSetPrivate(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_set_channel_private, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
+
+ /**
+ * On remove private
+ */
+ @Override
+ protected void onRemovePrivate(String target, String sourceNick, String sourceLogin, String sourceHostname)
+ {
+ Message message = new Message(service.getString(R.string.message_set_channel_public, sourceNick));
+ message.setColor(Message.COLOR_BLUE);
+ server.getConversation(target).addMessage(message);
+
+ service.sendBroadcast(
+ Broadcast.createConversationIntent(Broadcast.CONVERSATION_MESSAGE, server.getId(), target)
+ );
+ }
- /**
- * On unknown
- */
- @Override
- protected void onUnknown(String line)
- {
- Message message = new Message(line);
- message.setIcon(R.drawable.action);
- message.setColor(Message.COLOR_GREY);
- server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- ServerInfo.DEFAULT_NAME
- );
- service.sendBroadcast(intent);
- }
+ /**
+ * On unknown
+ */
+ @Override
+ protected void onUnknown(String line)
+ {
+ Message message = new Message(line);
+ message.setIcon(R.drawable.action);
+ message.setColor(Message.COLOR_GREY);
+ server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ ServerInfo.DEFAULT_NAME
+ );
+ service.sendBroadcast(intent);
+ }
- /**
- * On server response
- */
- @Override
- protected void onServerResponse(int code, String response)
- {
- if (code == 372 || code == 375 || code == 376) {
- // Skip MOTD
- return;
- }
-
- if (code >= 200 && code < 300) {
- // Skip 2XX responses
- return;
- }
-
- if (code == 353 || code == 366 || code == 332 || code == 333) {
- return;
- }
-
- if (code < 10) {
- // Skip server info
- return;
- }
+ /**
+ * On server response
+ */
+ @Override
+ protected void onServerResponse(int code, String response)
+ {
+ if (code == 372 || code == 375 || code == 376) {
+ // Skip MOTD
+ return;
+ }
+
+ if (code >= 200 && code < 300) {
+ // Skip 2XX responses
+ return;
+ }
+
+ if (code == 353 || code == 366 || code == 332 || code == 333) {
+ return;
+ }
+
+ if (code < 10) {
+ // Skip server info
+ return;
+ }
- // Currently disabled... to much text
- Message message = new Message(response);
- message.setColor(Message.COLOR_GREY);
- server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
-
- Intent intent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- ServerInfo.DEFAULT_NAME
- );
- service.sendBroadcast(intent);
- }
+ // Currently disabled... to much text
+ Message message = new Message(response);
+ message.setColor(Message.COLOR_GREY);
+ server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
+
+ Intent intent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ ServerInfo.DEFAULT_NAME
+ );
+ service.sendBroadcast(intent);
+ }
- /**
- * On disconnect
- */
- @Override
- public void onDisconnect()
- {
- if (service.getSettings().isReconnectEnabled() && server.getStatus() != Status.DISCONNECTED) {
- setAutojoinChannels(server.getCurrentChannelNames());
+ /**
+ * On disconnect
+ */
+ @Override
+ public void onDisconnect()
+ {
+ if (service.getSettings().isReconnectEnabled() && server.getStatus() != Status.DISCONNECTED) {
+ setAutojoinChannels(server.getCurrentChannelNames());
- server.clearConversations();
- server.setStatus(Status.CONNECTING);
- service.connect(server);
- } else {
- server.setStatus(Status.DISCONNECTED);
- }
-
- service.updateNotification(service.getString(R.string.notification_disconnected, server.getTitle()));
+ server.clearConversations();
+ server.setStatus(Status.CONNECTING);
+ service.connect(server);
+ } else {
+ server.setStatus(Status.DISCONNECTED);
+ }
+
+ service.updateNotification(service.getString(R.string.notification_disconnected, server.getTitle()));
- Intent sIntent = Broadcast.createServerIntent(Broadcast.SERVER_UPDATE, server.getId());
- service.sendBroadcast(sIntent);
-
- Collection conversations = server.getConversations();
-
- for (Conversation conversation : conversations) {
- Message message = new Message(service.getString(R.string.message_disconnected));
- message.setIcon(R.drawable.error);
- message.setColor(Message.COLOR_RED);
- server.getConversation(conversation.getName()).addMessage(message);
-
- Intent cIntent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- conversation.getName()
- );
- service.sendBroadcast(cIntent);
- }
- }
-
- /**
- * Get all channels where the user with the given nickname is online
- *
- * @param nickname
- * @return Array of channel names
- */
- private Vector getChannelsByNickname(String nickname)
- {
- Vector channels = new Vector();
- String[] channelArray = getChannels();
-
- for (String channel : channelArray) {
- User[] userArray = getUsers(channel);
- for (User user : userArray) {
- if (user.getNick().equals(nickname)) {
- channels.add(channel);
- break;
- }
- }
- }
-
- return channels;
- }
-
- /**
- * Get list of users in a channel as array of strings
- *
- * @param channel Name of the channel
- */
- public String[] getUsersAsStringArray(String channel)
- {
- User[] userArray = getUsers(channel);
- int mLength = userArray.length;
- String[] users = new String[mLength];
-
- for (int i = 0; i < mLength; i++) {
- // Prefix disabled
- users[i] = /*userArray[i].getPrefix() + */ userArray[i].getNick();
- }
-
- return users;
- }
-
- /**
- * Get a user by channel and nickname
- *
- * @param channel The channel the user is in
- * @param nickname The nickname of the user (with or without prefix)
- * @return the User object or null if user was not found
- */
- public User getUser(String channel, String nickname)
- {
- User[] users = getUsers(channel);
- int mLength = users.length;
-
- for (int i = 0; i < mLength; i++) {
- if (nickname.equals(users[i].getNick())) {
- return users[i];
- }
- if (nickname.equals(users[i].getPrefix() + users[i].getNick())) {
- return users[i];
- }
- }
-
- return null;
- }
-
- /**
- * Quits from the IRC server with default reason.
- */
- @Override
- public void quitServer()
- {
- new Thread() {
- public void run() {
- quitServer(service.getSettings().getQuitMessage());
- }
- }.start();
- }
-
+ Intent sIntent = Broadcast.createServerIntent(Broadcast.SERVER_UPDATE, server.getId());
+ service.sendBroadcast(sIntent);
+
+ Collection conversations = server.getConversations();
+
+ for (Conversation conversation : conversations) {
+ Message message = new Message(service.getString(R.string.message_disconnected));
+ message.setIcon(R.drawable.error);
+ message.setColor(Message.COLOR_RED);
+ server.getConversation(conversation.getName()).addMessage(message);
+
+ Intent cIntent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ conversation.getName()
+ );
+ service.sendBroadcast(cIntent);
+ }
+ }
+
+ /**
+ * Get all channels where the user with the given nickname is online
+ *
+ * @param nickname
+ * @return Array of channel names
+ */
+ private Vector getChannelsByNickname(String nickname)
+ {
+ Vector channels = new Vector();
+ String[] channelArray = getChannels();
+
+ for (String channel : channelArray) {
+ User[] userArray = getUsers(channel);
+ for (User user : userArray) {
+ if (user.getNick().equals(nickname)) {
+ channels.add(channel);
+ break;
+ }
+ }
+ }
+
+ return channels;
+ }
+
+ /**
+ * Get list of users in a channel as array of strings
+ *
+ * @param channel Name of the channel
+ */
+ public String[] getUsersAsStringArray(String channel)
+ {
+ User[] userArray = getUsers(channel);
+ int mLength = userArray.length;
+ String[] users = new String[mLength];
+
+ for (int i = 0; i < mLength; i++) {
+ // Prefix disabled
+ users[i] = /*userArray[i].getPrefix() + */ userArray[i].getNick();
+ }
+
+ return users;
+ }
+
+ /**
+ * Get a user by channel and nickname
+ *
+ * @param channel The channel the user is in
+ * @param nickname The nickname of the user (with or without prefix)
+ * @return the User object or null if user was not found
+ */
+ public User getUser(String channel, String nickname)
+ {
+ User[] users = getUsers(channel);
+ int mLength = users.length;
+
+ for (int i = 0; i < mLength; i++) {
+ if (nickname.equals(users[i].getNick())) {
+ return users[i];
+ }
+ if (nickname.equals(users[i].getPrefix() + users[i].getNick())) {
+ return users[i];
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Quits from the IRC server with default reason.
+ */
+ @Override
+ public void quitServer()
+ {
+ new Thread() {
+ public void run() {
+ quitServer(service.getSettings().getQuitMessage());
+ }
+ }.start();
+ }
+
/**
* Check whether the nickname has been mentioned.
*
* @param text The text to check for the nickname
* @return true if nickname was found, otherwise false
*/
- public boolean isMentioned(String text) {
- return mNickMatch.matcher(text).find();
- }
-
+ public boolean isMentioned(String text) {
+ return mNickMatch.matcher(text).find();
+ }
+
/**
* Update the nick matching pattern, should be called when the nickname changes.
*/
- private void updateNickMatchPattern() {
- mNickMatch = Pattern.compile("(?:^|[\\s?!'´:;,.])"+Pattern.quote(getNick())+"(?:[\\s?!'´:;,.]|$)", Pattern.CASE_INSENSITIVE);
- }
+ private void updateNickMatchPattern() {
+ mNickMatch = Pattern.compile("(?:^|[\\s?!'´:;,.])"+Pattern.quote(getNick())+"(?:[\\s?!'´:;,.]|$)", Pattern.CASE_INSENSITIVE);
+ }
}
diff --git a/application/src/org/yaaic/irc/IRCService.java b/application/src/org/yaaic/irc/IRCService.java
index 3b01403..df43987 100644
--- a/application/src/org/yaaic/irc/IRCService.java
+++ b/application/src/org/yaaic/irc/IRCService.java
@@ -51,18 +51,18 @@ import android.content.Intent;
*/
public class IRCService extends Service
{
- private IRCBinder binder;
- private HashMap connections;
- private boolean foreground = false;
-
- @SuppressWarnings("rawtypes")
- private static final Class[] mStartForegroundSignature = new Class[] { int.class, Notification.class };
- @SuppressWarnings("rawtypes")
+ private IRCBinder binder;
+ private HashMap connections;
+ private boolean foreground = false;
+
+ @SuppressWarnings("rawtypes")
+ private static final Class[] mStartForegroundSignature = new Class[] { int.class, Notification.class };
+ @SuppressWarnings("rawtypes")
private static final Class[] mStopForegroundSignature = new Class[] { boolean.class };
public static final String ACTION_FOREGROUND = "org.yaaic.service.foreground";
public static final String ACTION_BACKGROUND = "org.yaaic.service.background";
-
+
private NotificationManager notificationManager;
private Method mStartForeground;
private Method mStopForeground;
@@ -71,26 +71,26 @@ public class IRCService extends Service
private Notification notification;
private Settings settings;
- /**
- * Create new service
- */
- public IRCService()
- {
- super();
-
- this.connections = new HashMap();
- this.binder = new IRCBinder(this);
- }
-
- /**
- * On create
- */
- @Override
- public void onCreate()
- {
- super.onCreate();
-
- settings = new Settings(getBaseContext());
+ /**
+ * Create new service
+ */
+ public IRCService()
+ {
+ super();
+
+ this.connections = new HashMap();
+ this.binder = new IRCBinder(this);
+ }
+
+ /**
+ * On create
+ */
+ @Override
+ public void onCreate()
+ {
+ super.onCreate();
+
+ settings = new Settings(getBaseContext());
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
try {
@@ -100,50 +100,50 @@ public class IRCService extends Service
// Running on an older platform.
mStartForeground = mStopForeground = null;
}
-
- // Load servers from Database
+
+ // Load servers from Database
Database db = new Database(this);
- Yaaic.getInstance().setServers(db.getServers());
- db.close();
+ Yaaic.getInstance().setServers(db.getServers());
+ db.close();
- // Broadcast changed server list
- sendBroadcast(new Intent(Broadcast.SERVER_UPDATE));
- }
-
- /**
- * Get Settings object
- *
- * @return the settings helper object
- */
- public Settings getSettings()
- {
- return settings;
- }
+ // Broadcast changed server list
+ sendBroadcast(new Intent(Broadcast.SERVER_UPDATE));
+ }
+
+ /**
+ * Get Settings object
+ *
+ * @return the settings helper object
+ */
+ public Settings getSettings()
+ {
+ return settings;
+ }
- /**
- * On start (will be called on pre-2.0 platform. On 2.0 or later onStartCommand()
- * will be called)
- */
- @Override
- public void onStart(Intent intent, int startId)
- {
- super.onStart(intent, startId);
- handleCommand(intent);
- }
+ /**
+ * On start (will be called on pre-2.0 platform. On 2.0 or later onStartCommand()
+ * will be called)
+ */
+ @Override
+ public void onStart(Intent intent, int startId)
+ {
+ super.onStart(intent, startId);
+ handleCommand(intent);
+ }
- /**
- * On start command (Android >= 2.0)
- *
- * @param intent
- * @param flags
- * @param startId
- * @return
- */
+ /**
+ * On start command (Android >= 2.0)
+ *
+ * @param intent
+ * @param flags
+ * @param startId
+ * @return
+ */
public int onStartCommand(Intent intent, int flags, int startId)
{
- if (intent != null) {
- handleCommand(intent);
- }
+ if (intent != null) {
+ handleCommand(intent);
+ }
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
@@ -160,22 +160,22 @@ public class IRCService extends Service
private void handleCommand(Intent intent)
{
if (ACTION_FOREGROUND.equals(intent.getAction())) {
- if (foreground) {
- return; // XXX: We are already in foreground...
- }
- foreground = true;
-
- // Set the icon, scrolling text and timestamp
- notification = new Notification(R.drawable.icon, "", System.currentTimeMillis());
-
- // The PendingIntent to launch our activity if the user selects this notification
- PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, ServersActivity.class), 0);
-
- // Set the info for the views that show in the notification panel.
- notification.setLatestEventInfo(this, getText(R.string.app_name), "", contentIntent);
-
- startForegroundCompat(R.string.app_name, notification);
- } else if (ACTION_BACKGROUND.equals(intent.getAction()) && !foreground) {
+ if (foreground) {
+ return; // XXX: We are already in foreground...
+ }
+ foreground = true;
+
+ // Set the icon, scrolling text and timestamp
+ notification = new Notification(R.drawable.icon, "", System.currentTimeMillis());
+
+ // The PendingIntent to launch our activity if the user selects this notification
+ PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, ServersActivity.class), 0);
+
+ // Set the info for the views that show in the notification panel.
+ notification.setLatestEventInfo(this, getText(R.string.app_name), "", contentIntent);
+
+ startForegroundCompat(R.string.app_name, notification);
+ } else if (ACTION_BACKGROUND.equals(intent.getAction()) && !foreground) {
stopForegroundCompat(R.string.app_name);
}
}
@@ -193,21 +193,21 @@ public class IRCService extends Service
/**
* Update notification and vibrate if needed
*
- * @param text The text to display
+ * @param text The text to display
* @param vibrate True if the device should vibrate, false otherwise
*/
public void updateNotification(String text, boolean vibrate)
{
- if (foreground) {
- notificationManager.cancel(R.string.app_name);
- notification = new Notification(R.drawable.icon, text, System.currentTimeMillis());
- PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, ServersActivity.class), 0);
- notification.setLatestEventInfo(this, getText(R.string.app_name), text, contentIntent);
- if (vibrate) {
- notification.defaults |= Notification.DEFAULT_VIBRATE;
- }
- notificationManager.notify(R.string.app_name, notification);
- }
+ if (foreground) {
+ notificationManager.cancel(R.string.app_name);
+ notification = new Notification(R.drawable.icon, text, System.currentTimeMillis());
+ PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, ServersActivity.class), 0);
+ notification.setLatestEventInfo(this, getText(R.string.app_name), text, contentIntent);
+ if (vibrate) {
+ notification.defaults |= Notification.DEFAULT_VIBRATE;
+ }
+ notificationManager.notify(R.string.app_name, notification);
+ }
}
/**
@@ -228,9 +228,9 @@ public class IRCService extends Service
// Should not happen.
}
} else {
- // Fall back on the old API.
- setForeground(true);
- notificationManager.notify(id, notification);
+ // Fall back on the old API.
+ setForeground(true);
+ notificationManager.notify(id, notification);
}
}
@@ -240,8 +240,8 @@ public class IRCService extends Service
*/
public void stopForegroundCompat(int id)
{
- foreground = false;
-
+ foreground = false;
+
// If we have the new stopForeground API, then use it.
if (mStopForeground != null) {
mStopForegroundArgs[0] = Boolean.TRUE;
@@ -253,10 +253,10 @@ public class IRCService extends Service
// Should not happen.
}
} else {
- // Fall back on the old API. Note to cancel BEFORE changing the
- // foreground state, since we could be killed at that point.
- notificationManager.cancel(id);
- setForeground(false);
+ // Fall back on the old API. Note to cancel BEFORE changing the
+ // foreground state, since we could be killed at that point.
+ notificationManager.cancel(id);
+ setForeground(false);
}
}
@@ -265,135 +265,135 @@ public class IRCService extends Service
*/
public void connect(final Server server)
{
- new Thread() {
- public void run() {
- try {
- IRCConnection connection = getConnection(server.getId());
+ new Thread() {
+ public void run() {
+ try {
+ IRCConnection connection = getConnection(server.getId());
- connection.setNickname(server.getIdentity().getNickname());
- connection.setAliases(server.getIdentity().getAliases());
- connection.setIdent(server.getIdentity().getIdent());
- connection.setRealName(server.getIdentity().getRealName());
- connection.setUseSSL(server.useSSL());
-
- if (server.getCharset() != null) {
- connection.setEncoding(server.getCharset());
- }
-
- if (server.getPassword() != "") {
- connection.connect(server.getHost(), server.getPort(), server.getPassword());
- } else {
- connection.connect(server.getHost(), server.getPort());
- }
- }
- catch (Exception e) {
- server.setStatus(Status.DISCONNECTED);
-
- Intent sIntent = Broadcast.createServerIntent(Broadcast.SERVER_UPDATE, server.getId());
- sendBroadcast(sIntent);
-
- IRCConnection connection = getConnection(server.getId());
-
- Message message;
-
- if (e instanceof NickAlreadyInUseException) {
- message = new Message(getString(R.string.nickname_in_use, connection.getNick()));
- } else if (e instanceof IrcException) {
- message = new Message(getString(R.string.irc_login_error, server.getHost(), server.getPort()));
- } else {
- message = new Message(getString(R.string.could_not_connect, server.getHost(), server.getPort()));
- }
-
- message.setColor(Message.COLOR_RED);
- message.setIcon(R.drawable.error);
- server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
-
- Intent cIntent = Broadcast.createConversationIntent(
- Broadcast.CONVERSATION_MESSAGE,
- server.getId(),
- ServerInfo.DEFAULT_NAME
- );
- sendBroadcast(cIntent);
- }
- }
- }.start();
+ connection.setNickname(server.getIdentity().getNickname());
+ connection.setAliases(server.getIdentity().getAliases());
+ connection.setIdent(server.getIdentity().getIdent());
+ connection.setRealName(server.getIdentity().getRealName());
+ connection.setUseSSL(server.useSSL());
+
+ if (server.getCharset() != null) {
+ connection.setEncoding(server.getCharset());
+ }
+
+ if (server.getPassword() != "") {
+ connection.connect(server.getHost(), server.getPort(), server.getPassword());
+ } else {
+ connection.connect(server.getHost(), server.getPort());
+ }
+ }
+ catch (Exception e) {
+ server.setStatus(Status.DISCONNECTED);
+
+ Intent sIntent = Broadcast.createServerIntent(Broadcast.SERVER_UPDATE, server.getId());
+ sendBroadcast(sIntent);
+
+ IRCConnection connection = getConnection(server.getId());
+
+ Message message;
+
+ if (e instanceof NickAlreadyInUseException) {
+ message = new Message(getString(R.string.nickname_in_use, connection.getNick()));
+ } else if (e instanceof IrcException) {
+ message = new Message(getString(R.string.irc_login_error, server.getHost(), server.getPort()));
+ } else {
+ message = new Message(getString(R.string.could_not_connect, server.getHost(), server.getPort()));
+ }
+
+ message.setColor(Message.COLOR_RED);
+ message.setIcon(R.drawable.error);
+ server.getConversation(ServerInfo.DEFAULT_NAME).addMessage(message);
+
+ Intent cIntent = Broadcast.createConversationIntent(
+ Broadcast.CONVERSATION_MESSAGE,
+ server.getId(),
+ ServerInfo.DEFAULT_NAME
+ );
+ sendBroadcast(cIntent);
+ }
+ }
+ }.start();
}
-
- /**
- * Get connection for given server
- *
- * @param serverId
- * @return
- */
- public synchronized IRCConnection getConnection(int serverId)
- {
- IRCConnection connection = connections.get(serverId);
-
- if (connection == null) {
- connection = new IRCConnection(this, serverId);
- connections.put(serverId, connection);
- }
-
- return connection;
- }
-
- /**
- * Does the service keep a connection object for this server?
- *
- * @return true if there's a connection object, false otherwise
- */
- public boolean hasConnection(int serverId)
- {
- return connections.containsKey(serverId);
- }
-
- /**
- * Check status of service
- */
- public void checkServiceStatus()
- {
- boolean shutDown = true;
- ArrayList mServers = Yaaic.getInstance().getServersAsArrayList();
- int mSize = mServers.size();
- Server server;
-
- for (int i = 0; i < mSize; i++) {
- server = mServers.get(i);
- if (server.isDisconnected()) {
- connections.remove(server.getId());
- } else {
- shutDown = false;
- }
- }
-
- if (shutDown) {
- foreground = false;
- stopForegroundCompat(R.string.app_name);
- stopSelf();
- }
- }
-
- /**
- * On Destroy
- */
+
+ /**
+ * Get connection for given server
+ *
+ * @param serverId
+ * @return
+ */
+ public synchronized IRCConnection getConnection(int serverId)
+ {
+ IRCConnection connection = connections.get(serverId);
+
+ if (connection == null) {
+ connection = new IRCConnection(this, serverId);
+ connections.put(serverId, connection);
+ }
+
+ return connection;
+ }
+
+ /**
+ * Does the service keep a connection object for this server?
+ *
+ * @return true if there's a connection object, false otherwise
+ */
+ public boolean hasConnection(int serverId)
+ {
+ return connections.containsKey(serverId);
+ }
+
+ /**
+ * Check status of service
+ */
+ public void checkServiceStatus()
+ {
+ boolean shutDown = true;
+ ArrayList mServers = Yaaic.getInstance().getServersAsArrayList();
+ int mSize = mServers.size();
+ Server server;
+
+ for (int i = 0; i < mSize; i++) {
+ server = mServers.get(i);
+ if (server.isDisconnected()) {
+ connections.remove(server.getId());
+ } else {
+ shutDown = false;
+ }
+ }
+
+ if (shutDown) {
+ foreground = false;
+ stopForegroundCompat(R.string.app_name);
+ stopSelf();
+ }
+ }
+
+ /**
+ * On Destroy
+ */
@Override
public void onDestroy()
{
// Make sure our notification is gone.
- if (foreground) {
- stopForegroundCompat(R.string.app_name);
- }
+ if (foreground) {
+ stopForegroundCompat(R.string.app_name);
+ }
}
- /**
- * On Activity binding to this service
- *
- * @param intent
- * @return
- */
- @Override
- public IRCBinder onBind(Intent intent)
- {
- return binder;
- }
+ /**
+ * On Activity binding to this service
+ *
+ * @param intent
+ * @return
+ */
+ @Override
+ public IRCBinder onBind(Intent intent)
+ {
+ return binder;
+ }
}
diff --git a/application/src/org/yaaic/layout/NonScalingBackgroundDrawable.java b/application/src/org/yaaic/layout/NonScalingBackgroundDrawable.java
index 5ce9456..f2bfee3 100644
--- a/application/src/org/yaaic/layout/NonScalingBackgroundDrawable.java
+++ b/application/src/org/yaaic/layout/NonScalingBackgroundDrawable.java
@@ -53,14 +53,14 @@ public class NonScalingBackgroundDrawable extends Drawable {
*/
public void draw(Canvas canvas)
{
- int left = (view.getWidth() / 2) - (drawable.getIntrinsicWidth() / 2);
- int top = (view.getHeight() / 2) - (drawable.getIntrinsicHeight() / 2);
- int right = left + drawable.getIntrinsicWidth();
- int bottom = top + drawable.getIntrinsicHeight();
+ int left = (view.getWidth() / 2) - (drawable.getIntrinsicWidth() / 2);
+ int top = (view.getHeight() / 2) - (drawable.getIntrinsicHeight() / 2);
+ int right = left + drawable.getIntrinsicWidth();
+ int bottom = top + drawable.getIntrinsicHeight();
- drawable.setBounds(left, top, right, bottom);
+ drawable.setBounds(left, top, right, bottom);
- drawable.draw(canvas);
+ drawable.draw(canvas);
}
/**
@@ -76,7 +76,7 @@ public class NonScalingBackgroundDrawable extends Drawable {
*/
public void setAlpha(int alpha)
{
- drawable.setAlpha(alpha);
+ drawable.setAlpha(alpha);
}
/**
@@ -84,6 +84,6 @@ public class NonScalingBackgroundDrawable extends Drawable {
*/
public void setColorFilter(ColorFilter cf)
{
- drawable.setColorFilter(cf);
+ drawable.setColorFilter(cf);
}
}
diff --git a/application/src/org/yaaic/listener/ConversationClickListener.java b/application/src/org/yaaic/listener/ConversationClickListener.java
index 527e811..d7ee447f 100644
--- a/application/src/org/yaaic/listener/ConversationClickListener.java
+++ b/application/src/org/yaaic/listener/ConversationClickListener.java
@@ -38,35 +38,35 @@ import org.yaaic.view.MessageListView;
*/
public class ConversationClickListener implements OnItemClickListener
{
- private DeckAdapter adapter;
- private ViewSwitcher switcher;
-
- /**
- * Create a new ConversationClickListener
- *
- * @param adapter
- * @param switcher
- */
- public ConversationClickListener(DeckAdapter adapter, ViewSwitcher switcher)
- {
- this.adapter = adapter;
- this.switcher = switcher;
- }
-
- /**
- * On conversation item clicked
- */
- public void onItemClick(AdapterView> adapterView, View view, int position, long id)
- {
- Conversation conversation = adapter.getItem(position);
-
- MessageListView canvas = adapter.renderConversation(conversation, switcher);
- canvas.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
- canvas.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
- canvas.setDelegateTouchEvents(false); // Do not delegate
-
- adapter.setSwitched(conversation.getName(), canvas);
- switcher.addView(canvas);
- switcher.showNext();
- }
+ private DeckAdapter adapter;
+ private ViewSwitcher switcher;
+
+ /**
+ * Create a new ConversationClickListener
+ *
+ * @param adapter
+ * @param switcher
+ */
+ public ConversationClickListener(DeckAdapter adapter, ViewSwitcher switcher)
+ {
+ this.adapter = adapter;
+ this.switcher = switcher;
+ }
+
+ /**
+ * On conversation item clicked
+ */
+ public void onItemClick(AdapterView> adapterView, View view, int position, long id)
+ {
+ Conversation conversation = adapter.getItem(position);
+
+ MessageListView canvas = adapter.renderConversation(conversation, switcher);
+ canvas.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
+ canvas.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
+ canvas.setDelegateTouchEvents(false); // Do not delegate
+
+ adapter.setSwitched(conversation.getName(), canvas);
+ switcher.addView(canvas);
+ switcher.showNext();
+ }
}
diff --git a/application/src/org/yaaic/listener/ConversationListener.java b/application/src/org/yaaic/listener/ConversationListener.java
index d19847d..199823f 100644
--- a/application/src/org/yaaic/listener/ConversationListener.java
+++ b/application/src/org/yaaic/listener/ConversationListener.java
@@ -22,7 +22,7 @@ package org.yaaic.listener;
public interface ConversationListener
{
- public void onConversationMessage(String target);
- public void onNewConversation(String target);
- public void onRemoveConversation(String target);
+ public void onConversationMessage(String target);
+ public void onNewConversation(String target);
+ public void onRemoveConversation(String target);
}
diff --git a/application/src/org/yaaic/listener/ConversationSelectedListener.java b/application/src/org/yaaic/listener/ConversationSelectedListener.java
index 54f7f94..60bb517 100644
--- a/application/src/org/yaaic/listener/ConversationSelectedListener.java
+++ b/application/src/org/yaaic/listener/ConversationSelectedListener.java
@@ -36,56 +36,56 @@ import org.yaaic.view.ConversationSwitcher;
*/
public class ConversationSelectedListener implements OnItemSelectedListener
{
- private Server server;
- private TextView titleView;
- private ConversationSwitcher switcher;
-
- /**
- * Create a new ConversationSelectedListener
- *
- * @param server
- * @param titleView
- */
- public ConversationSelectedListener(Server server, TextView titleView, ConversationSwitcher switcher)
- {
- this.server = server;
- this.titleView = titleView;
- this.switcher = switcher;
- }
-
- /**
- * On conversation selected/focused
- */
- public void onItemSelected(AdapterView> deck, View view, int position, long id)
- {
- Conversation conversation = (Conversation) deck.getItemAtPosition(position);
-
- if (conversation != null && conversation.getType() != Conversation.TYPE_SERVER) {
- titleView.setText(server.getTitle() + " - " + conversation.getName());
- } else {
- onNothingSelected(deck);
- }
-
- // Remember selection
- if (conversation != null) {
- Conversation previousConversation = server.getConversation(server.getSelectedConversation());
-
- if (previousConversation != null) {
- previousConversation.setStatus(Conversation.STATUS_DEFAULT);
- }
-
- conversation.setStatus(Conversation.STATUS_SELECTED);
- server.setSelectedConversation(conversation.getName());
- }
+ private Server server;
+ private TextView titleView;
+ private ConversationSwitcher switcher;
+
+ /**
+ * Create a new ConversationSelectedListener
+ *
+ * @param server
+ * @param titleView
+ */
+ public ConversationSelectedListener(Server server, TextView titleView, ConversationSwitcher switcher)
+ {
+ this.server = server;
+ this.titleView = titleView;
+ this.switcher = switcher;
+ }
+
+ /**
+ * On conversation selected/focused
+ */
+ public void onItemSelected(AdapterView> deck, View view, int position, long id)
+ {
+ Conversation conversation = (Conversation) deck.getItemAtPosition(position);
+
+ if (conversation != null && conversation.getType() != Conversation.TYPE_SERVER) {
+ titleView.setText(server.getTitle() + " - " + conversation.getName());
+ } else {
+ onNothingSelected(deck);
+ }
+
+ // Remember selection
+ if (conversation != null) {
+ Conversation previousConversation = server.getConversation(server.getSelectedConversation());
+
+ if (previousConversation != null) {
+ previousConversation.setStatus(Conversation.STATUS_DEFAULT);
+ }
+
+ conversation.setStatus(Conversation.STATUS_SELECTED);
+ server.setSelectedConversation(conversation.getName());
+ }
- switcher.invalidate();
- }
-
- /**
- * On no conversation selected/focused
- */
- public void onNothingSelected(AdapterView> deck)
- {
- titleView.setText(server.getTitle());
- }
+ switcher.invalidate();
+ }
+
+ /**
+ * On no conversation selected/focused
+ */
+ public void onNothingSelected(AdapterView> deck)
+ {
+ titleView.setText(server.getTitle());
+ }
}
diff --git a/application/src/org/yaaic/listener/MessageClickListener.java b/application/src/org/yaaic/listener/MessageClickListener.java
index 9c513a4..c4d1955 100644
--- a/application/src/org/yaaic/listener/MessageClickListener.java
+++ b/application/src/org/yaaic/listener/MessageClickListener.java
@@ -36,38 +36,38 @@ import android.widget.AdapterView.OnItemClickListener;
*/
public class MessageClickListener implements OnItemClickListener
{
- private static MessageClickListener instance;
-
- /**
- * Private constructor
- */
- private MessageClickListener()
- {
- }
-
- /**
- * Get global instance of message click listener
- *
- * @return
- */
- public static synchronized MessageClickListener getInstance()
- {
- if (instance == null) {
- instance = new MessageClickListener();
- }
-
- return instance;
- }
-
- /**
- * On message item clicked
- */
- public void onItemClick(AdapterView> group, View view, int position, long id)
- {
- MessageListAdapter adapter = (MessageListAdapter) group.getAdapter();
-
- Intent intent = new Intent(group.getContext(), MessageActivity.class);
- intent.putExtra(Extra.MESSAGE, adapter.getItem(position).getText().toString());
- group.getContext().startActivity(intent);
- }
+ private static MessageClickListener instance;
+
+ /**
+ * Private constructor
+ */
+ private MessageClickListener()
+ {
+ }
+
+ /**
+ * Get global instance of message click listener
+ *
+ * @return
+ */
+ public static synchronized MessageClickListener getInstance()
+ {
+ if (instance == null) {
+ instance = new MessageClickListener();
+ }
+
+ return instance;
+ }
+
+ /**
+ * On message item clicked
+ */
+ public void onItemClick(AdapterView> group, View view, int position, long id)
+ {
+ MessageListAdapter adapter = (MessageListAdapter) group.getAdapter();
+
+ Intent intent = new Intent(group.getContext(), MessageActivity.class);
+ intent.putExtra(Extra.MESSAGE, adapter.getItem(position).getText().toString());
+ group.getContext().startActivity(intent);
+ }
}
diff --git a/application/src/org/yaaic/listener/ServerListener.java b/application/src/org/yaaic/listener/ServerListener.java
index f115fae..6822e5b 100644
--- a/application/src/org/yaaic/listener/ServerListener.java
+++ b/application/src/org/yaaic/listener/ServerListener.java
@@ -22,5 +22,5 @@ package org.yaaic.listener;
public interface ServerListener
{
- public void onStatusUpdate();
+ public void onStatusUpdate();
}
diff --git a/application/src/org/yaaic/listener/SpeechClickListener.java b/application/src/org/yaaic/listener/SpeechClickListener.java
index d135d3d..36a7401 100644
--- a/application/src/org/yaaic/listener/SpeechClickListener.java
+++ b/application/src/org/yaaic/listener/SpeechClickListener.java
@@ -35,29 +35,29 @@ import android.view.View.OnClickListener;
*/
public class SpeechClickListener implements OnClickListener
{
- private Activity activity;
-
- /**
- * Create a new listener for speech button
- *
- * @param activity
- * @param input
- */
- public SpeechClickListener(Activity activity)
- {
- this.activity = activity;
- }
-
- /**
- * On Click on speech button
- */
- public void onClick(View v)
- {
- Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
-
+ private Activity activity;
+
+ /**
+ * Create a new listener for speech button
+ *
+ * @param activity
+ * @param input
+ */
+ public SpeechClickListener(Activity activity)
+ {
+ this.activity = activity;
+ }
+
+ /**
+ * On Click on speech button
+ */
+ public void onClick(View v)
+ {
+ Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
+
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "");
activity.startActivityForResult(intent, ConversationActivity.REQUEST_CODE_SPEECH);
- }
+ }
}
diff --git a/application/src/org/yaaic/model/Broadcast.java b/application/src/org/yaaic/model/Broadcast.java
index a215ab0..5373e0c 100644
--- a/application/src/org/yaaic/model/Broadcast.java
+++ b/application/src/org/yaaic/model/Broadcast.java
@@ -29,43 +29,43 @@ import android.content.Intent;
*/
public abstract class Broadcast
{
- public static final String SERVER_UPDATE = "org.yaaic.server.status";
-
- 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";
-
- /**
- * Create an Intent for conversation broadcasting
- *
- * @param broadcastType The type of the broadcast, some constant of Broadcast.*
- * @param serverId The id of the server
- * @param conversationName The unique name of the conversation
- * @return The created Intent
- */
- public static Intent createConversationIntent(String broadcastType, int serverId, String conversationName)
- {
- Intent intent = new Intent(broadcastType);
-
- intent.putExtra(Extra.SERVER, serverId);
- intent.putExtra(Extra.CONVERSATION, conversationName);
-
- return intent;
- }
-
- /**
- * Create an Intent for server broadcasting
- *
- * @param broadcastType The typo of the broadcast, some constant of Broadcast.*
- * @param serverId The id of the server
- * @return The created Intent
- */
- public static Intent createServerIntent(String broadcastType, int serverId)
- {
- Intent intent = new Intent(broadcastType);
-
- intent.putExtra(Extra.SERVER, serverId);
-
- return intent;
- }
+ public static final String SERVER_UPDATE = "org.yaaic.server.status";
+
+ 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";
+
+ /**
+ * Create an Intent for conversation broadcasting
+ *
+ * @param broadcastType The type of the broadcast, some constant of Broadcast.*
+ * @param serverId The id of the server
+ * @param conversationName The unique name of the conversation
+ * @return The created Intent
+ */
+ public static Intent createConversationIntent(String broadcastType, int serverId, String conversationName)
+ {
+ Intent intent = new Intent(broadcastType);
+
+ intent.putExtra(Extra.SERVER, serverId);
+ intent.putExtra(Extra.CONVERSATION, conversationName);
+
+ return intent;
+ }
+
+ /**
+ * Create an Intent for server broadcasting
+ *
+ * @param broadcastType The typo of the broadcast, some constant of Broadcast.*
+ * @param serverId The id of the server
+ * @return The created Intent
+ */
+ public static Intent createServerIntent(String broadcastType, int serverId)
+ {
+ Intent intent = new Intent(broadcastType);
+
+ intent.putExtra(Extra.SERVER, serverId);
+
+ return intent;
+ }
}
diff --git a/application/src/org/yaaic/model/Channel.java b/application/src/org/yaaic/model/Channel.java
index 26f770f..d580d28 100644
--- a/application/src/org/yaaic/model/Channel.java
+++ b/application/src/org/yaaic/model/Channel.java
@@ -27,45 +27,45 @@ package org.yaaic.model;
*/
public class Channel extends Conversation
{
- private String topic;
+ private String topic;
- /**
- * Create a new channel object
- *
- * @param name of the channel
- */
- public Channel(String name)
- {
- super(name);
- this.topic = "";
- }
-
- /**
- * Get the type of this conversation
- */
- @Override
- public int getType()
- {
- return Conversation.TYPE_CHANNEL;
- }
-
- /**
- * Set the channel's topic
- *
- * @param topic The topic of the channel
- */
- public void setTopic(String topic)
- {
- this.topic = topic;
- }
-
- /**
- * Get the topic of the channel
- *
- * @return The channel's topic
- */
- public String getTopic()
- {
- return topic;
- }
+ /**
+ * Create a new channel object
+ *
+ * @param name of the channel
+ */
+ public Channel(String name)
+ {
+ super(name);
+ this.topic = "";
+ }
+
+ /**
+ * Get the type of this conversation
+ */
+ @Override
+ public int getType()
+ {
+ return Conversation.TYPE_CHANNEL;
+ }
+
+ /**
+ * Set the channel's topic
+ *
+ * @param topic The topic of the channel
+ */
+ public void setTopic(String topic)
+ {
+ this.topic = topic;
+ }
+
+ /**
+ * Get the topic of the channel
+ *
+ * @return The channel's topic
+ */
+ public String getTopic()
+ {
+ return topic;
+ }
}
diff --git a/application/src/org/yaaic/model/Conversation.java b/application/src/org/yaaic/model/Conversation.java
index 28847f1..aa2c81a 100644
--- a/application/src/org/yaaic/model/Conversation.java
+++ b/application/src/org/yaaic/model/Conversation.java
@@ -33,163 +33,163 @@ import org.yaaic.adapter.MessageListAdapter;
*/
public abstract class Conversation
{
- public static final int TYPE_CHANNEL = 1;
- public static final int TYPE_QUERY = 2;
- public static final int TYPE_SERVER = 3;
-
- public static final int STATUS_DEFAULT = 1;
- public static final int STATUS_SELECTED = 2;
- public static final int STATUS_MESSAGE = 3;
- public static final int STATUS_HIGHLIGHT = 4;
-
- public static final int HISTORY_SIZE = 30;
-
- private LinkedList buffer;
- private LinkedList history;
- private String name;
- private MessageListAdapter adapter;
- private int status = 1;
-
- /**
- * Get the type of conversation (channel, query, ..)
- *
- * @return See the constants: Conversation.TYPE_*
- */
- public abstract int getType();
-
- /**
- * Create a new conversation with the given name
- *
- * @param name The name of the conversation (channel, user)
- */
- public Conversation(String name)
- {
- this.buffer = new LinkedList();
- this.history = new LinkedList();
- this.name = name.toLowerCase();
- }
-
- /**
- * Get name of the conversation (channel, user)
- */
- public String getName()
- {
- return name;
- }
-
- /**
- * Add a message to the channel
- */
- public void addMessage(Message message)
- {
- buffer.add(0, message);
- history.add(message);
-
- if (history.size() > HISTORY_SIZE) {
- history.remove(0);
- }
- }
-
- /**
- * Get the history
- */
- public LinkedList getHistory()
- {
- return history;
- }
-
- /**
- * Get message of the history at the given position
- *
- * @param position
- * @return The message at the given position
- */
- public Message getHistoryMessage(int position)
- {
- return history.get(position);
- }
-
- /**
- * Get last buffered message
- *
- * @return
- */
- public Message pollBufferedMessage()
- {
- Message message = buffer.get(buffer.size() - 1);
- buffer.remove(buffer.size() - 1);
- return message;
- }
-
- /**
- * Get the buffer
- *
- * @return
- */
- public LinkedList getBuffer()
- {
- return buffer;
- }
-
- /**
- * Does the channel have buffered messages?
- */
- public boolean hasBufferedMessages()
- {
- return buffer.size() > 0;
- }
-
- /**
- * Clear the message buffer
- */
- public void clearBuffer()
- {
- buffer.clear();
- }
-
- /**
- * Store the adapter of this conversation
- */
- public void setMessageListAdapter(MessageListAdapter adapter)
- {
- this.adapter = adapter;
- }
-
- /**
- * Get the MessageList Adapter of this conversation if known
- */
- public MessageListAdapter getMessageListAdapter()
- {
- return adapter;
- }
-
- /**
- * Set status of conversation
- *
- * @param status
- */
- public void setStatus(int status)
- {
- // Selected status can only be changed by deselecting
- if (this.status == STATUS_SELECTED && status != STATUS_DEFAULT) {
- return;
- }
-
- // Highlight status can only be changed by selecting
- if (this.status == STATUS_HIGHLIGHT && status != STATUS_SELECTED) {
- return;
- }
-
- this.status = status;
- }
-
- /**
- * Get status of conversation
- *
- * @return
- */
- public int getStatus()
- {
- return status;
- }
+ public static final int TYPE_CHANNEL = 1;
+ public static final int TYPE_QUERY = 2;
+ public static final int TYPE_SERVER = 3;
+
+ public static final int STATUS_DEFAULT = 1;
+ public static final int STATUS_SELECTED = 2;
+ public static final int STATUS_MESSAGE = 3;
+ public static final int STATUS_HIGHLIGHT = 4;
+
+ public static final int HISTORY_SIZE = 30;
+
+ private LinkedList buffer;
+ private LinkedList history;
+ private String name;
+ private MessageListAdapter adapter;
+ private int status = 1;
+
+ /**
+ * Get the type of conversation (channel, query, ..)
+ *
+ * @return See the constants: Conversation.TYPE_*
+ */
+ public abstract int getType();
+
+ /**
+ * Create a new conversation with the given name
+ *
+ * @param name The name of the conversation (channel, user)
+ */
+ public Conversation(String name)
+ {
+ this.buffer = new LinkedList();
+ this.history = new LinkedList();
+ this.name = name.toLowerCase();
+ }
+
+ /**
+ * Get name of the conversation (channel, user)
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Add a message to the channel
+ */
+ public void addMessage(Message message)
+ {
+ buffer.add(0, message);
+ history.add(message);
+
+ if (history.size() > HISTORY_SIZE) {
+ history.remove(0);
+ }
+ }
+
+ /**
+ * Get the history
+ */
+ public LinkedList getHistory()
+ {
+ return history;
+ }
+
+ /**
+ * Get message of the history at the given position
+ *
+ * @param position
+ * @return The message at the given position
+ */
+ public Message getHistoryMessage(int position)
+ {
+ return history.get(position);
+ }
+
+ /**
+ * Get last buffered message
+ *
+ * @return
+ */
+ public Message pollBufferedMessage()
+ {
+ Message message = buffer.get(buffer.size() - 1);
+ buffer.remove(buffer.size() - 1);
+ return message;
+ }
+
+ /**
+ * Get the buffer
+ *
+ * @return
+ */
+ public LinkedList getBuffer()
+ {
+ return buffer;
+ }
+
+ /**
+ * Does the channel have buffered messages?
+ */
+ public boolean hasBufferedMessages()
+ {
+ return buffer.size() > 0;
+ }
+
+ /**
+ * Clear the message buffer
+ */
+ public void clearBuffer()
+ {
+ buffer.clear();
+ }
+
+ /**
+ * Store the adapter of this conversation
+ */
+ public void setMessageListAdapter(MessageListAdapter adapter)
+ {
+ this.adapter = adapter;
+ }
+
+ /**
+ * Get the MessageList Adapter of this conversation if known
+ */
+ public MessageListAdapter getMessageListAdapter()
+ {
+ return adapter;
+ }
+
+ /**
+ * Set status of conversation
+ *
+ * @param status
+ */
+ public void setStatus(int status)
+ {
+ // Selected status can only be changed by deselecting
+ if (this.status == STATUS_SELECTED && status != STATUS_DEFAULT) {
+ return;
+ }
+
+ // Highlight status can only be changed by selecting
+ if (this.status == STATUS_HIGHLIGHT && status != STATUS_SELECTED) {
+ return;
+ }
+
+ this.status = status;
+ }
+
+ /**
+ * Get status of conversation
+ *
+ * @return
+ */
+ public int getStatus()
+ {
+ return status;
+ }
}
diff --git a/application/src/org/yaaic/model/Extra.java b/application/src/org/yaaic/model/Extra.java
index 002d6e3..1e17eb6 100644
--- a/application/src/org/yaaic/model/Extra.java
+++ b/application/src/org/yaaic/model/Extra.java
@@ -27,14 +27,14 @@ package org.yaaic.model;
*/
public class Extra
{
- public static final String SERVER = "server";
- public static final String CONVERSATION = "conversation";
- public static final String USERS = "users";
-
- public static final String ALIASES = "aliases";
- public static final String CHANNELS = "channels";
- public static final String COMMANDS = "commands";
- public static final String MESSAGE = "message";
- public static final String USER = "user";
- public static final String ACTION = "action";
+ public static final String SERVER = "server";
+ public static final String CONVERSATION = "conversation";
+ public static final String USERS = "users";
+
+ public static final String ALIASES = "aliases";
+ public static final String CHANNELS = "channels";
+ public static final String COMMANDS = "commands";
+ public static final String MESSAGE = "message";
+ public static final String USER = "user";
+ public static final String ACTION = "action";
}
diff --git a/application/src/org/yaaic/model/Identity.java b/application/src/org/yaaic/model/Identity.java
index e7bec35..e8c144b 100644
--- a/application/src/org/yaaic/model/Identity.java
+++ b/application/src/org/yaaic/model/Identity.java
@@ -32,77 +32,77 @@ import java.util.List;
*/
public class Identity
{
- private String nickname;
- private List aliases = new ArrayList();
- private String ident;
- private String realname;
-
- /**
- * Set the nickname of this identity
- *
- * @param nickname The nickname to be set
- */
- public void setNickname(String nickname)
- {
- this.nickname = nickname;
- }
-
- /**
- * Get the nickname of this identity
- *
- * @return The nickname
- */
- public String getNickname()
- {
- return nickname;
- }
-
- public void setAliases(Collection aliases) {
- this.aliases.clear();
- this.aliases.addAll(aliases);
- }
-
- public List getAliases() {
- return Collections.unmodifiableList(aliases);
- }
-
- /**
- * Set the ident of this identity
- *
- * @param ident The ident to be set
- */
- public void setIdent(String ident)
- {
- this.ident = ident;
- }
-
- /**
- * Get the ident of this identity
- *
- * @return The identity
- */
- public String getIdent()
- {
- return ident;
- }
-
- /**
- * Set the real name of this identity
- *
- * @param realname The real name to be set
- */
- public void setRealName(String realname)
- {
- this.realname = realname;
- }
-
- /**
- * Get the real name of this identity
- *
- * @return The realname
- */
- public String getRealName()
- {
- return realname;
- }
+ private String nickname;
+ private List aliases = new ArrayList();
+ private String ident;
+ private String realname;
+
+ /**
+ * Set the nickname of this identity
+ *
+ * @param nickname The nickname to be set
+ */
+ public void setNickname(String nickname)
+ {
+ this.nickname = nickname;
+ }
+
+ /**
+ * Get the nickname of this identity
+ *
+ * @return The nickname
+ */
+ public String getNickname()
+ {
+ return nickname;
+ }
+
+ public void setAliases(Collection aliases) {
+ this.aliases.clear();
+ this.aliases.addAll(aliases);
+ }
+
+ public List getAliases() {
+ return Collections.unmodifiableList(aliases);
+ }
+
+ /**
+ * Set the ident of this identity
+ *
+ * @param ident The ident to be set
+ */
+ public void setIdent(String ident)
+ {
+ this.ident = ident;
+ }
+
+ /**
+ * Get the ident of this identity
+ *
+ * @return The identity
+ */
+ public String getIdent()
+ {
+ return ident;
+ }
+
+ /**
+ * Set the real name of this identity
+ *
+ * @param realname The real name to be set
+ */
+ public void setRealName(String realname)
+ {
+ this.realname = realname;
+ }
+
+ /**
+ * Get the real name of this identity
+ *
+ * @return The realname
+ */
+ public String getRealName()
+ {
+ return realname;
+ }
}
diff --git a/application/src/org/yaaic/model/Message.java b/application/src/org/yaaic/model/Message.java
index e0a0276..37b3cc1 100644
--- a/application/src/org/yaaic/model/Message.java
+++ b/application/src/org/yaaic/model/Message.java
@@ -37,191 +37,191 @@ import android.widget.TextView;
* @author Sebastian Kaspari
*/
public class Message {
- public static final int COLOR_GREEN = 0xFF458509;
- public static final int COLOR_RED = 0xFFcc0000;
- public static final int COLOR_BLUE = 0xFF729fcf;
- public static final int COLOR_YELLOW = 0xFFbe9b01;
- public static final int COLOR_GREY = 0xFFaaaaaa;
- public static final int COLOR_DEFAULT = 0xFFeeeeee;
-
- public static final int[] colors = {
- 0xFFffffff, //White
- 0xFFffff00, //Yellow
- 0xFFff00ff, //Fuchsia
- 0xFFff0000, //Red
- 0xFFc0c0c0, //Silver
- 0xFF808080, //Gray
- 0xFF808000, //Olive
- 0xFF800080, //Purple
- 0xFF800000, //Maroon
- 0xFF00ffff, //Agua
- 0xFF00ff00, //Lime
- 0xFF008080, //Teal
- 0xFF008000, //Green
- 0xFF0000FF, //Blue
- 0xFF000080, //Navy
- 0xFF000000, //Black
- };
+ public static final int COLOR_GREEN = 0xFF458509;
+ public static final int COLOR_RED = 0xFFcc0000;
+ public static final int COLOR_BLUE = 0xFF729fcf;
+ public static final int COLOR_YELLOW = 0xFFbe9b01;
+ public static final int COLOR_GREY = 0xFFaaaaaa;
+ public static final int COLOR_DEFAULT = 0xFFeeeeee;
+
+ public static final int[] colors = {
+ 0xFFffffff, //White
+ 0xFFffff00, //Yellow
+ 0xFFff00ff, //Fuchsia
+ 0xFFff0000, //Red
+ 0xFFc0c0c0, //Silver
+ 0xFF808080, //Gray
+ 0xFF808000, //Olive
+ 0xFF800080, //Purple
+ 0xFF800000, //Maroon
+ 0xFF00ffff, //Agua
+ 0xFF00ff00, //Lime
+ 0xFF008080, //Teal
+ 0xFF008000, //Green
+ 0xFF0000FF, //Blue
+ 0xFF000080, //Navy
+ 0xFF000000, //Black
+ };
- private int icon = -1;
- private String text;
- private String sender;
- private SpannableString canvas;
- private int color = -1;
- private long timestamp;
-
- /**
- * Create a new message without an icon
- *
- * @param text
- */
- public Message(String text)
- {
- this(text, null);
- }
- /**
- * Create a new message sent by a user without an icon
- *
- * @param text
- * @param sender
- */
- public Message(String text, String sender)
- {
- this.text = text;
- this.sender = sender;
- this.timestamp = new Date().getTime();
- }
-
- /**
- * Set the message's icon
- */
- public void setIcon(int icon)
- {
- this.icon = icon;
- }
-
- /**
- * Get the message's icon
- *
- * @return
- */
- public int getIcon()
- {
- return icon;
- }
-
- /**
- * Get the text of this message
- *
- * @return
- */
- public String getText()
- {
- return text;
- }
-
- /**
- * Set the color of this message
- */
- public void setColor(int color)
- {
- this.color = color;
- }
- /**
- * Associate a color with a sender name
- *
- * @return a color hexa
- */
- private int getSenderColor()
- {
- /* It might be worth to use some hash table here */
- if (sender == null) return COLOR_DEFAULT;
- int color = 0;
- for(int i = 0; i < sender.length(); i++){
- color += sender.charAt(i);
- }
- /* we dont want color[colors.length-1] which is black */
- color = color % (colors.length - 1);
- return colors[color];
- }
- /**
- * Render message as spannable string
- *
- * @return
- */
- public SpannableString render(Context context)
- {
- Settings settings = new Settings(context);
-
- if (canvas == null) {
- String prefix = icon != -1 && settings.showIcons() ? " " : "";
- String nick = sender != null ? "<" + sender + "> " : "";
- String timestamp = settings.showTimestamp() ? Message.generateTimestamp(this.timestamp, settings.use24hFormat()) : "";
-
- canvas = new SpannableString(prefix + timestamp + nick + text);
-
- if (sender != null) {
- int start = (prefix + timestamp).length() + 1;
- int end = start + sender.length();
- if (settings.showColorsNick()) {
- canvas.setSpan(new ForegroundColorSpan(getSenderColor()), start, end , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
- }
+ private int icon = -1;
+ private String text;
+ private String sender;
+ private SpannableString canvas;
+ private int color = -1;
+ private long timestamp;
+
+ /**
+ * Create a new message without an icon
+ *
+ * @param text
+ */
+ public Message(String text)
+ {
+ this(text, null);
+ }
+ /**
+ * Create a new message sent by a user without an icon
+ *
+ * @param text
+ * @param sender
+ */
+ public Message(String text, String sender)
+ {
+ this.text = text;
+ this.sender = sender;
+ this.timestamp = new Date().getTime();
+ }
+
+ /**
+ * Set the message's icon
+ */
+ public void setIcon(int icon)
+ {
+ this.icon = icon;
+ }
+
+ /**
+ * Get the message's icon
+ *
+ * @return
+ */
+ public int getIcon()
+ {
+ return icon;
+ }
+
+ /**
+ * Get the text of this message
+ *
+ * @return
+ */
+ public String getText()
+ {
+ return text;
+ }
+
+ /**
+ * Set the color of this message
+ */
+ public void setColor(int color)
+ {
+ this.color = color;
+ }
+ /**
+ * Associate a color with a sender name
+ *
+ * @return a color hexa
+ */
+ private int getSenderColor()
+ {
+ /* It might be worth to use some hash table here */
+ if (sender == null) return COLOR_DEFAULT;
+ int color = 0;
+ for(int i = 0; i < sender.length(); i++){
+ color += sender.charAt(i);
+ }
+ /* we dont want color[colors.length-1] which is black */
+ color = color % (colors.length - 1);
+ return colors[color];
+ }
+ /**
+ * Render message as spannable string
+ *
+ * @return
+ */
+ public SpannableString render(Context context)
+ {
+ Settings settings = new Settings(context);
+
+ if (canvas == null) {
+ String prefix = icon != -1 && settings.showIcons() ? " " : "";
+ String nick = sender != null ? "<" + sender + "> " : "";
+ String timestamp = settings.showTimestamp() ? Message.generateTimestamp(this.timestamp, settings.use24hFormat()) : "";
+
+ canvas = new SpannableString(prefix + timestamp + nick + text);
+
+ if (sender != null) {
+ int start = (prefix + timestamp).length() + 1;
+ int end = start + sender.length();
+ if (settings.showColorsNick()) {
+ canvas.setSpan(new ForegroundColorSpan(getSenderColor()), start, end , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+ }
- if (icon != -1 && settings.showIcons()) {
- Drawable drawable = context.getResources().getDrawable(icon);
- drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
- canvas.setSpan(new ImageSpan(drawable, ImageSpan.ALIGN_BOTTOM), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
- if (color != -1 && settings.showColors()) {
- canvas.setSpan(new ForegroundColorSpan(color), 0, canvas.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
- }
-
- return canvas;
- }
-
- /**
- * Render message as text view
- *
- * @param context
- * @return
- */
- public TextView renderTextView(Context context)
- {
- // XXX: We should not read settings here ALWAYS for EVERY textview
- Settings settings = new Settings(context);
-
- TextView canvas = new TextView(context);
-
- canvas.setText(this.render(context));
- canvas.setTextSize(settings.getFontSize());
- canvas.setTypeface(Typeface.MONOSPACE);
- canvas.setTextColor(COLOR_DEFAULT);
-
- return canvas;
- }
-
- /**
- * Generate a timestamp
- *
- * @param use24hFormat
- * @return
- */
- public static String generateTimestamp(long timestamp, boolean use24hFormat)
- {
- Date date = new Date(timestamp);
-
- int hours = date.getHours();
- int minutes = date.getMinutes();
+ if (icon != -1 && settings.showIcons()) {
+ Drawable drawable = context.getResources().getDrawable(icon);
+ drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+ canvas.setSpan(new ImageSpan(drawable, ImageSpan.ALIGN_BOTTOM), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+ if (color != -1 && settings.showColors()) {
+ canvas.setSpan(new ForegroundColorSpan(color), 0, canvas.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+ }
+
+ return canvas;
+ }
+
+ /**
+ * Render message as text view
+ *
+ * @param context
+ * @return
+ */
+ public TextView renderTextView(Context context)
+ {
+ // XXX: We should not read settings here ALWAYS for EVERY textview
+ Settings settings = new Settings(context);
+
+ TextView canvas = new TextView(context);
+
+ canvas.setText(this.render(context));
+ canvas.setTextSize(settings.getFontSize());
+ canvas.setTypeface(Typeface.MONOSPACE);
+ canvas.setTextColor(COLOR_DEFAULT);
+
+ return canvas;
+ }
+
+ /**
+ * Generate a timestamp
+ *
+ * @param use24hFormat
+ * @return
+ */
+ public static String generateTimestamp(long timestamp, boolean use24hFormat)
+ {
+ Date date = new Date(timestamp);
+
+ int hours = date.getHours();
+ int minutes = date.getMinutes();
- if (!use24hFormat) {
- hours = Math.abs(12 - hours);
- if (hours == 12) {
- hours = 0;
- }
- }
-
- return "[" + (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + "] ";
- }
+ if (!use24hFormat) {
+ hours = Math.abs(12 - hours);
+ if (hours == 12) {
+ hours = 0;
+ }
+ }
+
+ return "[" + (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + "] ";
+ }
}
diff --git a/application/src/org/yaaic/model/Query.java b/application/src/org/yaaic/model/Query.java
index 62ca69c..167a25a 100644
--- a/application/src/org/yaaic/model/Query.java
+++ b/application/src/org/yaaic/model/Query.java
@@ -27,21 +27,21 @@ package org.yaaic.model;
*/
public class Query extends Conversation
{
- /**
- * Create a new query
- *
- * @param name The user's nickname
- */
- public Query(String name)
- {
- super(name);
- }
-
- /**
- * Get the type of this conversation
- */
- public int getType()
- {
- return Conversation.TYPE_QUERY;
- }
+ /**
+ * Create a new query
+ *
+ * @param name The user's nickname
+ */
+ public Query(String name)
+ {
+ super(name);
+ }
+
+ /**
+ * Get the type of this conversation
+ */
+ public int getType()
+ {
+ return Conversation.TYPE_QUERY;
+ }
}
diff --git a/application/src/org/yaaic/model/Scrollback.java b/application/src/org/yaaic/model/Scrollback.java
index 56ce5c5..a4d5c8c 100644
--- a/application/src/org/yaaic/model/Scrollback.java
+++ b/application/src/org/yaaic/model/Scrollback.java
@@ -29,68 +29,68 @@ import java.util.LinkedList;
*/
public class Scrollback
{
- public static final int MAX_HISTORY = 10;
-
- private LinkedList messages;
- private int pointer;
-
- /**
- * Create a new scrollback object
- */
- public Scrollback()
- {
- messages = new LinkedList();
- }
-
- /**
- * Add a message to the history
- */
- public void addMessage(String message)
- {
- messages.addLast(message);
-
- if (messages.size() > MAX_HISTORY) {
- messages.removeFirst();
- }
-
- pointer = messages.size();
- }
-
- /**
- * Go back in history
- *
- * @return
- */
- public String goBack()
- {
- if (pointer > 0) {
- pointer--;
- }
-
- if (messages.size() > 0) {
- return messages.get(pointer);
- }
-
- return null;
- }
-
- /**
- * Go forward in history
- *
- * @return
- */
- public String goForward()
- {
- if (pointer < messages.size() - 1) {
- pointer++;
- } else {
- return "";
- }
-
- if (messages.size() > 0) {
- return messages.get(pointer);
- }
-
- return null;
- }
+ public static final int MAX_HISTORY = 10;
+
+ private LinkedList messages;
+ private int pointer;
+
+ /**
+ * Create a new scrollback object
+ */
+ public Scrollback()
+ {
+ messages = new LinkedList();
+ }
+
+ /**
+ * Add a message to the history
+ */
+ public void addMessage(String message)
+ {
+ messages.addLast(message);
+
+ if (messages.size() > MAX_HISTORY) {
+ messages.removeFirst();
+ }
+
+ pointer = messages.size();
+ }
+
+ /**
+ * Go back in history
+ *
+ * @return
+ */
+ public String goBack()
+ {
+ if (pointer > 0) {
+ pointer--;
+ }
+
+ if (messages.size() > 0) {
+ return messages.get(pointer);
+ }
+
+ return null;
+ }
+
+ /**
+ * Go forward in history
+ *
+ * @return
+ */
+ public String goForward()
+ {
+ if (pointer < messages.size() - 1) {
+ pointer++;
+ } else {
+ return "";
+ }
+
+ if (messages.size() > 0) {
+ return messages.get(pointer);
+ }
+
+ return null;
+ }
}
diff --git a/application/src/org/yaaic/model/Server.java b/application/src/org/yaaic/model/Server.java
index c6d3f41..c8ebe67 100644
--- a/application/src/org/yaaic/model/Server.java
+++ b/application/src/org/yaaic/model/Server.java
@@ -33,375 +33,375 @@ import org.yaaic.R;
*/
public class Server
{
- private int id;
- private String title;
- private String host;
- private int port;
- private String password;
- private String charset;
- private boolean useSSL = false;
- private Identity identity;
-
- private LinkedHashMap conversations = new LinkedHashMap