Giter VIP home page Giter VIP logo

yaaic's Introduction

Build Status

Yaaic - Yet Another Android IRC Client

Yaaic is as the full name already says an Internet Relay Chat (IRC) client for Android devices.

This is the source code distribution of Yaaic. If you are looking for a compiled 'ready to use' version (APK), get the official build at the Google Play Store:

If you are a developer and want to contribute to Yaaic, checkout our repository at GitHub:

The project is using Gradle to build the application. Importing it into Android Studio should be enough to get it building.

Drop me a line for questions regarding Yaaic or use one of the following resources:

Third party libraries & resources

Yaaic includes the PircBot IRC API written by Paul Mutton available
under the GNU General Public License (GPL). http://www.jibble.org

The Yaaic icon was designed by http://www.androidicons.com

Some icons are part of the Silk icon set designed by Mark James
available under the Creative Commons Licence Attribution 3.0
Licence. http://www.famfamfam.com

Copyright (GPL)

Copyright 2009-2015 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.

You should have received a copy of the GNU General Public License
along with Yaaic. If not, see http://www.gnu.org/licenses/

yaaic's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yaaic's Issues

Make Yaaic notification ongoing and no clear

The current Yaaic notification is clear when clicking "Clear notifications".
The following, untested, patch should make the notification a "Ongoing" task.
I will update this issue once I've tested it.

diff --git a/application/src/org/yaaic/irc/IRCService.java b/application/src/org/yaaic/irc/IRCService.java
index 5725f7c..054d2db 100644
--- a/application/src/org/yaaic/irc/IRCService.java
+++ b/application/src/org/yaaic/irc/IRCService.java
@@ -173,6 +173,7 @@ public class IRCService extends Service
 
             // Set the info for the views that show in the notification panel.
             notification.setLatestEventInfo(this, getText(R.string.app_name), "", contentIntent);
+            notification.flags |= (Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT);
 
             startForegroundCompat(R.string.app_name, notification);
         } else if (ACTION_BACKGROUND.equals(intent.getAction()) && !foreground) {
@@ -203,6 +204,7 @@ public class IRCService extends Service
             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);
+            notification.flags |= (Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT);
 
             if (vibrate) {
                 long[] pattern = {0,100,200,300};

Patch to generate sorted list of users

Currently, the list of channel users is not sorted in any way making it difficult to browse and select a user. In my opinion, this list should be sorted alphabetically.

Here is a tiny patch for this fix:

diff --git a/src/org/yaaic/activity/UsersActivity.java b/src/org/yaaic/activity/UsersActivity.java
index 4a527df..5d7aed1 100644
--- a/src/org/yaaic/activity/UsersActivity.java
+++ b/src/org/yaaic/activity/UsersActivity.java
@@ -32,6 +32,8 @@ import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
 import android.widget.AdapterView.OnItemClickListener;
 
+import java.util.Arrays;
+
 /**
  * User Activity - Shows a list of users in the current channel
  * 
@@ -51,6 +53,7 @@ public class UsersActivity extends ListActivity implements OnItemClickListener
        setContentView(R.layout.users);
        
        String[] users = getIntent().getExtras().getStringArray(Extra.USERS);
+       Arrays.sort(users, String.CASE_INSENSITIVE_ORDER);
        getListView().setAdapter(new ArrayAdapter(this, R.layout.useritem, users));
        getListView().setOnItemClickListener(this);
    }

Display user modes

Own user modes should be displayed.

E.g. when the user is invisible (/mode mynick +i) it should be displayed somewhere.

IllegalFormatConversionException in org.yaaic

I get too much of them through the market error reporting.

Users report force close on connect. I saw it myself on the Galaxy Tab. Can't reproduce it in the emulator yet.

Stacktrace:
java.util.IllegalFormatConversionException: d is incompatible with java.lang.String
at java.util.Formatter$Transformer.badArgumentType(Formatter.java:1452)
at java.util.Formatter$Transformer.transformFromInteger(Formatter.java:1683)
at java.util.Formatter$Transformer.transform(Formatter.java:1410)
at java.util.Formatter.doFormat(Formatter.java:1082)
at java.util.Formatter.format(Formatter.java:994)
at java.lang.String.format(String.java:2254)
at android.content.res.Resources.getString(Resources.java:283)
at android.content.Context.getString(Context.java:195)
at org.yaaic.irc.IRCService$1.run(IRCService.java:289)

ANR keyDispatchingTimedOut (Market)

Version: 0.4.1
User Message: FC on a /list

Stack trace not available
This report was sent in by a pre-Froyo client, which did not include an ANR stack trace.

2 commands

Please add an /msg command to message nickserv, other people, etc.

Also please add a /mode command so we can set +a, +h, etc.

Enter to send

On my motorola Milestone I can send with the virtual keyboard but I can't send it with my hardware keyboard. I type with hardware keyboard though.

Reopen last opened chan/activity when resuming app

If you have a channel open and switch to another application or the home screen the expected behavior is that the same channel will be show when you resume Yaaic. Currently the start activity is shown whenever the app is started or resumed.

NullPointerException in ConversationActivity.onStatusUpdate()

From the market error reports:

java.lang.RuntimeException: Error receiving broadcast Intent { act=org.yaaic.server.status } in org.yaaic.receiver.ServerReceiver@471fc960
at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:981)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5068)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.NullPointerException
at org.yaaic.activity.ConversationActivity.onStatusUpdate(ConversationActivity.java:471)
at org.yaaic.receiver.ServerReceiver.onReceive(ServerReceiver.java:54)
at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:964)
... 9 more

java.lang.IllegalArgumentException

Source Method: ActivityThread$PackageInfo.forgetServiceDispatcher()

java.lang.RuntimeException: Unable to pause activity {org.yaaic/org.yaaic.activity.ConversationActivity}:

java.lang.IllegalArgumentException: Service not registered: org.yaaic.activity.ConversationActivity@44884160
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3162)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3119)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3102)
at android.app.ActivityThread.access$2400(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1870)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

Caused by: java.lang.IllegalArgumentException: Service not registered: org.yaaic.activity.ConversationActivity@44884160

at android.app.ActivityThread$PackageInfo.forgetServiceDispatcher(ActivityThread.java:930)
at android.app.ApplicationContext.unbindService(ApplicationContext.java:819)
at android.content.ContextWrapper.unbindService(ContextWrapper.java:342)
at org.yaaic.activity.ConversationActivity.onPause(ConversationActivity.java:222)
at android.app.Activity.performPause(Activity.java:3782)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1190)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3149)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3119)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3102)
at android.app.ActivityThread.access$2400(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1870)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

notify for nondefault nickname

If the nickname is not available and another one is used, when you say the default nickname is unavailable also say what is being used instead. :)

Irssi proxy and join command.

There appears to be an issue in parsing the join reply sent from irssi proxy, the channels are not displayed. Yaaic seems to require a ':' to precede the channel name however I didn't see this in the RFC. The responses from freenode and through the proxy are:
:apraxhren!ap@proxy JOIN #test
:apraxhren!ap@host JOIN :#test

Everything else is the same and Yaaic shows the latest messages in the notification just doesn't create a channel.

Disconnect on call

When receiving a call Yaaic doesn't seem to recognize a disconnect. This needs some more debugging.

NullPointerException - IRCService.handleCommand() (Market)

java.lang.RuntimeException: Unable to start service org.yaaic.irc.IRCService@4494c7e8 with null:

java.lang.NullPointerException
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2882)
at android.app.ActivityThread.access$3500(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

Caused by: java.lang.NullPointerException:

at org.yaaic.irc.IRCService.handleCommand(IRCService.java:160)
at org.yaaic.irc.IRCService.onStartCommand(IRCService.java:144)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2873)
at android.app.ActivityThread.access$3500(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

No logging capabilities

Currently, there are no facilities to log IRC channels in Yaaic. It would be quite a nice thing to have, since some of us really like record-keeping.

Users list order

Putting the user list in alphabetical order would make life a whole lot easier. Related - also show users with ops, in which case they should be at the top.

Channel windows not created (irssi-proxy)

In a number of scenarios, channel windows don't seem to get created when I connect through irssi-proxy. Irssi-proxy acts as a plugin to irssi (an irc client), that presents the state of the irssi session as an IRC Server (sort of like a bouncer, but built into my "everyday" irc client).

  1. On connect, channel windows for the channels I am already joined to are not created.
  2. If I do a join from yaaic, a channel window is not created.
  3. If I do a join from irssi, while yaaic is connected, a channel window is not created.

I tried connecting to irssi-proxy with telnet, to see what a client would see. The transcript is below (scrubbed). You'll notice that the nick gets changed (to whatever the nick is in irssi, regardless what the connecting client requests), and the server sends joins for a channel (or more).

$ telnet localhost 7779
Trying ::1...
escape character is '^T'.
Connected to localhost.
Escape character is '^T'.
PASS password
NICK somenick
USER jonas jonas jonas :jonas jonas
:somenick!proxy NICK :nickname
:IrcNetwork.proxy 001 nickname :Welcome to the Internet Relay Network nickname!rasher@proxy
:IrcNetwork.proxy 002 nickname :Your host is irssi-proxy, running version 0.8.15
:IrcNetwork.proxy 003 nickname :This server was created ...
:IrcNetwork.proxy 004 nickname IrcNetwork.proxy 0.8.15 oirw abiklmnopqstv
:IrcNetwork.proxy 005 nickname MODES=6 MAXBANS=45 WALLVOICES SILENCE=15 CHANTYPES=#& CASEMAPPING=rfc1459 CHANMODES=b,k,l,imnpstrDducCNMT MAXCHANNELLEN=200 PREFIX=(ov)@+ USERIP WHOX NETWORK=IrcNetwork CNOTICE CPRIVMSG NICKLEN=15 :are supported by this server
:IrcNetwork.proxy 005 nickname MAXNICKLEN=15 MAXCHANNELS=20 WALLCHOPS TOPICLEN=250 AWAYLEN=160 KICKLEN=250 CHANNELLEN=200 STATUSMSG=@+ :are supported by this server
:IrcNetwork.proxy 251 nickname :There are 0 users and 0 invisible on 1 servers
:IrcNetwork.proxy 255 nickname :I have 0 clients, 0 services and 0 servers
:IrcNetwork.proxy 422 nickname :MOTD File is missing
:nickname!rasher@proxy MODE nickname :+i
:nickname!rasher@proxy JOIN #channel
:IrcNetwork.proxy 353 nickname @ #channel :@nickname
:IrcNetwork.proxy 366 nickname #channel :End of /NAMES list.
:IrcNetwork.proxy 332 nickname #channel :topic
:IrcNetwork.proxy 333 nickname #channel nick!~ident@hostname 1297116799
QUIT moo
Connection closed by foreign host.

NullPointerException - ConversationActivity.onConversationMessage() (Market)

NullPointerException
in ConversationActivity.onConversationMessage()

Device: Droid
Yaaic: 0.4.1

Stacktrace:
java.lang.RuntimeException: Error receiving broadcast Intent{ act=org.yaaic.conversation.message (has extras) } in org.yaaic.receiver.ConversationReceiver@448143d8
at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:765)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

Caused by: java.lang.NullPointerException:

at org.yaaic.activity.ConversationActivity.onConversationMessage(ConversationActivity.java:343)
at org.yaaic.receiver.ConversationReceiver.onReceive(ConversationReceiver.java:70)
at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:754)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

Wait for authentication before automatic channel joins

There may be other cases where waiting before auto-joining channels would be desirable. But in particular freenode requires me to authenticate with channel services before joining. For this purpose I add to my freenode server config on yaaic:

/msg NickServ identify ********

However there is a delay between sending this message and freenode deciding I am authenticated that prevents me successfully auto-joining channels.

A small delay before auto-joining channels would probably resolve this, but a more robust way would be to wait for a response from chanserv or more service agnostically to continously retry failed channel joins until some expiry or success. The latter approach seems to be what chatzilla does.

Also since this is the inaugural bug, well done on yaaic, it does a lot right and it's nice to see a new project being run so well from the start with github, the site, and the nice logo.

Messages are sometimes displayed in the wrong channel/query

This happens due to a bug /wrong assumptions in the code updating the DeckView elements. To get the corresponding ListAdapter, first we need to get the ListView from the deck. This is archived by calling getChildAt() with the position provided by the DeckAdapter.

Problem: "The children of the ViewGroup do not correspond 1-to-1 with the items in the list, for a ListView. Instead, the ViewGroup's children correspond to only those views that are visible right now. So getChildAt operates on an index that's internal to the ViewGroup and doesn't necessarily have anything to do with the position in the list that the ListView uses."

Nickname issue

When adding a server I want to add it with the nickname ChaosKiller-Mobile. This is blocked due to it being an invalid nickname. This is, however, possible on unrealIRCD servers.

missing channel list when connecting to bip

Hi,

Thanks a lot for adding SSL support, it's really cool to have an open source IRC client.

I'm connecting to a bip proxy using SSL, the connection and auth goes ok but I can't see the channels I'm joined, fwiw the bip instance works ok with irssi and other irc clients like x-chat.

I can try to reproduce this with a local bip in case you need logs from the "server" end.
and debug it using the emulator, probably on monday as I don't have an android SDK installed here.

Regards,

Move server notices to the server window.

I'm an IRCop on a few servers and I get a lot of server notices. The problem with this client is it displays server notices in the currently focused window, making it almost impossible to chat without turning off my snomasks.
I request that all server notices be displayed in the server window, instead of the currently focused window.

Unable to connect to shroudBNC

Hello,

i'm trying to connect with Yaaic 0.4.1 to my shroudBNC 1.2.

But after successful connection and authentication (with ident and password) i got folloging message:

Could not log into the IRC server xxx.xxx.xxx.xxx:port

The log from shroudBNC:

<-sBNC> User logged on (from xxxx..dynamic.dsl.provider.tld[xxx.xxx.xxx.xxx]).
<-sBNC> User logged off. 1 remaining client for this user. (Connection reset by peer)

Settings in Yaaic:

  • Host: ip address of sBNC
  • Port:port of sBNC
  • Password: password for sBNC user
  • SSL: off
  • Nick: my nick name
  • Ident: my sBNC user id
  • Realname: my sBNC user id
    -Channels/Commands: none
  • Charset: UTF-8

Thanks for your help.

enter key dosnt "send" in milestone

I have a motorola milestone with android 2.1 oficcial of my carrier

Yaaic works great, except the hardware enter key dosnt "send". You have to use de screen keyboard.

sort the channel list

by default, channels are sorted by join order (and since I use a bnc, I can never remember that order). Please sort the channel names alphabetically to make it easier to find channels when running yaaic.

Tests tests tests

We need much mooooore tests for Yaaic :)

Unit tests and scenario tests via robotium.

Everyone who writes a tests gets a free beer..... :)

Conversations order changes

When resuming the ConversationActivity the conversations are restored by calling values() on the conversations HashMap. This is a bad idea as the order of the Collection returned by values() may change causing the conversations to be shown up in a different order as before.

NullPointerException in ConversationActivity.onCreate()

From the market error reports:

java.lang.RuntimeException: Unable to start activity ComponentInfo{org.yaaic/org.yaaic.activity.ConversationActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2833)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2854)
at android.app.ActivityThread.access$2300(ActivityThread.java:136)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5068)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.NullPointerException
at org.yaaic.activity.ConversationActivity.onCreate(ConversationActivity.java:135)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2797)
... 11 more

Channels aren't shown when connecting using an alternative nick

In my setup I use nick myst with the alternative mystiod.

If I have active connection for myst somewhere else and connect from Yaaic I can see on the other client that Yaaic connects and joins channels as mystoid, but in Yaaic I don't see channels except the server channel.

If I have no connections as myst Yaaic connects and displays channels.

HTC Desire, Android 2.2, Yaaic 0.7.

Yaaic 0.6.1 worked OK.

NullPointerException - ConversationActivity.onStatusUpdate()

java.lang.RuntimeException: Error receiving broadcast Intent { act=org.yaaic.server.status } in org.yaaic.receiver.ServerReceiver@448aa378
at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:765)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

Caused by: java.lang.NullPointerException:

at org.yaaic.activity.ConversationActivity.onStatusUpdate(ConversationActivity.java:401)
at org.yaaic.receiver.ServerReceiver.onReceive(ServerReceiver.java:54)
at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:754)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Method.java:-2)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(NativeStart.java:-2)

Hide join/part messages

Feature request via the contact form on yaaic.org:
would be nice to be able to hide join/leave messages, they are really anoiing on such a small display that we have with mobile phones

Auto-reconnect

When connection to the IRC server is lost, it would be quite useful to have Yaaic automatically attempt to reconnect. There are many times where I would like Yaaic to stay connected as I travel between locations, and my phone will switch between Wifi, 3G, and Edge connections.

Escaping problem / SQL injection

Oops. From the market error reports:

android.database.sqlite.SQLiteException: near "s": syntax error: , while compiling: SELECT _id, title, host, port, password, autoConnect, useSSL, charset, identity FROM servers WHERE title = 'MegaJoy's BNC on Geekshed'
at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1229)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1184)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1264)
at org.yaaic.db.Database.isTitleUsed(Database.java:377)
at org.yaaic.activity.AddServerActivity.validateServer(AddServerActivity.java:377)
at org.yaaic.activity.AddServerActivity.onClick(AddServerActivity.java:186)
at android.view.View.performClick(View.java:2561)
at android.view.View$PerformClick.run(View.java:8989)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)

NullPointerException in DeckAdapter.renderConversation() / DeckAdapter.getView()

From the market error reports (2 reports / week):

java.lang.NullPointerException
at org.yaaic.adapter.DeckAdapter.renderConversation(DeckAdapter.java:205)
at org.yaaic.adapter.DeckAdapter.getView(DeckAdapter.java:190)
at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:192)
at android.view.View.measure(View.java:8224)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
at android.view.View.measure(View.java:8224)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
at android.view.View.measure(View.java:8224)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
at android.view.View.measure(View.java:8224)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
at android.view.View.measure(View.java:8224)
at android.view.ViewRoot.performTraversals(ViewRoot.java:812)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1752)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.