Android Open Source - ShareToIRC Send Text And Finish Listener






From Project

Back to project page ShareToIRC.

License

The source code is released under:

MIT License

If you think the Android project ShareToIRC listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.rrs_apps.android.share_to_irc;
//from ww  w  . j  a  va2  s. com
import android.content.Context;
import android.util.Log;

import com.rrs_apps.java.jirclib.IRCConnection;
import com.rrs_apps.java.jirclib.IRCEventListener;
import com.rrs_apps.java.jirclib.IRCModeParser;
import com.rrs_apps.java.jirclib.IRCUser;

/**
 * This IRCEventListener sends shared text to all configured IRC channels, then disconnects and finishes the context.
 */
class SendTextAndFinishListener implements IRCEventListener {
    private final String TAG = getClass().getName();
    private final String[] channels;
    private final IRCConnection conn;
    private final String[] texts;
    private String quitMessage;
    private boolean errored;
    private ICallback callback;
    private boolean quitting;

    /**
     * Constructs the text sender
     *
     * @param text The text to send. Embedding newline characters will cause the text to be sent as multiple messages.
     * @param channels
     * @param conn
     * @param quitMessage
     */
    SendTextAndFinishListener(String text, String[] channels, IRCConnection conn, String quitMessage) {
        this.channels = channels;
        this.conn = conn;
        this.texts = text.replace("\r", "").split("\n");
        this.quitMessage = quitMessage;
    }

    @Override
    public void onDisconnected() {
        if (callback != null) {
            if (errored && !quitting) {
                callback.onError();
            } else {
                callback.onSuccess();
            }
        }
    }

    @Override
    public void onError(String msg) {
        Log.e(TAG, msg);

        errored = true;
    }

    @Override
    public void onError(int errorNum, String msg) {
        onError(msg);
    }

    @Override
    public void onInvite(String arg0, IRCUser arg1, String arg2) {
    }

    @Override
    public void onJoin(String arg0, IRCUser arg1) {
    }

    @Override
    public void onKick(String arg0, IRCUser arg1, String arg2, String arg3) {
    }

    @Override
    public void onMode(String arg0, IRCUser arg1, IRCModeParser arg2) {
    }

    @Override
    public void onMode(IRCUser arg0, String arg1, String arg2) {
    }

    @Override
    public void onNick(IRCUser arg0, String arg1) {
    }

    @Override
    public void onNotice(String arg0, IRCUser arg1, String arg2) {
    }

    @Override
    public void onPart(String arg0, IRCUser arg1, String arg2) {
    }

    @Override
    public void onPing(String arg0) {
    }

    @Override
    public void onPrivmsg(String arg0, IRCUser arg1, String arg2) {
    }

    @Override
    public void onQuit(IRCUser arg0, String arg1) {
    }

    @Override
    public void onRegistered() {
        // Send text to all channels and disconnect
        for (String chan : channels) {
            Log.d(TAG, "Sending to " + chan);

            conn.doJoin(chan);

            for (String text : texts) {
                conn.doPrivmsg(chan, text);
            }
        }

        quitting = true;
        conn.doQuit(quitMessage);
    }

    @Override
    public void onReply(int arg0, String arg1, String arg2) {
    }

    @Override
    public void onTopic(String arg0, IRCUser arg1, String arg2) {
    }

    @Override
    public void unknown(String prefix, String command, String middle, String trailing) {
        onError(trailing);
    }

    public void setCallback(ICallback callback) {
        this.callback = callback;
    }

    public interface ICallback {
        /**
         * Called if text is successfully sent to the IRC server
         */
        public void onSuccess();

        /**
         * Called if there is an error sending text to the IRC server
         */
        public void onError();
    }
}




Java Source Code List

com.rrs_apps.android.auth.AccountAuthenticatorFragmentActivity.java
com.rrs_apps.android.share_to_irc.IRCMessage.java
com.rrs_apps.android.share_to_irc.SendTextAndFinishListener.java
com.rrs_apps.android.share_to_irc.ShareTextActivity.java
com.rrs_apps.android.share_to_irc.ShareTextService.java
com.rrs_apps.android.share_to_irc.account.CreateIrcAccountActivity.java
com.rrs_apps.android.share_to_irc.account.EditIrcAccountActivity.java
com.rrs_apps.android.share_to_irc.account.IrcAccountEditorFragment.java
com.rrs_apps.android.share_to_irc.account.IrcAccountHandlerService.java
com.rrs_apps.android.share_to_irc.account.IrcAccountHandler.java
com.rrs_apps.android.share_to_irc.account.IrcAccountListFragment.java
com.rrs_apps.android.share_to_irc.account.IrcAccountPickerActivity.java
com.rrs_apps.android.share_to_irc.account.ListIrcAccountsActivity.java