Протестирована возможность вывода данных из сокета в отдельном Activity
Сперва покажу сам процесс подключения к серверу.
1. После нажатия кнопки подключения (в данном случае кнопка служит иконкой бумажного самолётика в профиле) создаётся диалог с ожиданием установки соединения.
2. Если же основной никнейм уже был занят в результате его использования другим клиентом, то обёртка IRCSocketWrapper будет задействовать следующие никнеймы до тех пор, пока не закончится весь список добавленных вами никнеймов.
3. В случае успешной идентификации приложение переходит к другому Activity (конкретно ChatActivity) и с этой обертки попытается прочитать файл, где хранятся сырые данные из этого сокета.
Поскольку сокет непрерывный и если мы попытаемся отключить BroadcastReceiver и отсединить Activity от службы, то будут пропущены часть входящих пакетов, необходимые для обработки и вывода на экран, поэтому запись сырых данных непосредственно в файл является своего рода спасательным кругом.
Заодно удалось проверить работу стандартных кодировок текста, поддерживаемые Java, начиная с Java 5, и откорректировать парсинг некоторых строк.