Репозиторий содержит исходный код модифицированного клиента TeamTalk 5 для ОС Android. Данная модификация расширяет возможности официального приложения, добавляя новые инструменты администрирования, улучшенные алгоритмы защиты и переработанные интерфейсы.
- Автоматическая отписка: клиент отслеживает входящие сообщения и автоматически отключает подписки на пользователей, превышающих лимит сообщений.
- Гибкая настройка: в настройках приложения можно задать лимит сообщений, включить/выключить защитный режим и настроить полную блокировку подписок на конкретных пользователей.
- Событийный звук: возможность настроить индивидуальный звуковой файл (из памяти устройства) на любое системное событие (вход/выход пользователя, включение/выключение передачи голоса, текстовые сообщения и т.д.).
- Режим тишины: встроенная системная тема беззвучной работы.
- Управление как на ПК:
- Создание, редактирование и удаление учётных записей пользователей.
- Управление бан-листом сервера.
- Изменение ключевых свойств и конфигурации сервера "на лету".
- Просмотр детальной статистики сервера (аптайм, трафик RX/TX по типам данных).
- Удобный контроль: полностью переработан локальный плеер медиафайлов. Вы можете приостанавливать, останавливать и перезапускать воспроизведение аудио- и видеофайлов на своем устройстве.
- Интерфейс плеера: добавлен удобный блок локального проигрывания с возможностью управления воспроизведением, шкалой прогресса и индикацией времени.
Архитектура приложения разделена на логические пакеты в директории src/main/java/org/nekit/ttproplus/:
- 📂
backend/— фоновые службы и работа с ядром SDK TeamTalk.TeamTalkService.java— главная служба приложения. Управляет жизненным циклом соединения, инициализацией звуковой подсистемы, обработкой аудио-блоков и вещанием.
- 📂
data/— модели данных и хранилище настроек.Preferences.java— содержит константы ключей настроек приложения.ServerEntry.java— модель конфигурации сервера (IP, порты, логин, пароль, тип сервера).
- 📂
gui/— визуальные компоненты, фрагменты и активности.MainActivity.java— главный экран (вкладки каналов, сообщений, файлов, медиа).StreamMediaActivity.java— экран воспроизведения медиафайлов и локального плеера.PreferencesActivity.java— экраны настроек приложения.WelcomeActivity.java— приветственный экран настройки при первом запуске.
- 📂
utils/— утилиты и хелперы.PrefsHelper.java— обёртка для работы с настройками SharedPreferences.
🎨 Ресурсы (src/main/res/):
layout/— XML разметка экранов. Например,activity_stream_media.xml(интерфейс локального плеера),activity_welcome.xml(экран приветствия).xml/— файлы конфигурации экранов настроек (например,pref_display.xmlдля настроек отображения).values-ru/strings.xml— русская локализация всех строк приложения.
Проект собирается с помощью системы автоматизации сборки Gradle.
- Android SDK (API 21+)
- JDK 17 (рекомендуется для текущей версии Gradle)
- Перейдите в корневую директорию проекта:
cd путь/к/проекту/ttpro+ - Запустите сборку отладочного (Debug) APK:
./gradlew assembleDebug
- Откройте командную строку (cmd) или PowerShell.
- Перейдите в корневую директорию проекта:
cd путь\к\проекту\ttpro+ - Запустите сборку отладочного (Debug) APK:
gradlew.bat assembleDebug
После успешного завершения файл будет сохранен по пути:
app/build/outputs/apk/debug/app-debug.apk
- Зарегистрируйте строковую константу для ключа настройки в
org.nekit.ttproplus.data.Preferences.java. - Добавьте элемент интерфейса (например,
CheckBoxPreference) в соответствующий XML файл в папкеsrc/main/res/xml/(например, вpref_general.xml). - Для чтения настройки в коде используйте:
boolean mySetting = prefs.get(Preferences.MY_PREF_KEY, false);
- Локализация интерфейса лежит в соответствующих директориях
values-<язык>/strings.xml. - При добавлении новой строки в основной файл
values/strings.xml, обязательно продублируйте её перевод вvalues-ru/strings.xmlдля поддержки русского языка.
- Вся работа по перенаправлению аудиопотоков, получению разрешений
MediaProjectionи захвату системного звука/микрофона сосредоточена вTeamTalkService.javaв методахstartInternalAudioCapture()andstopInternalAudioCapture().
Разработчик модификации: @nt_6769 (Telegram) Если у вас есть предложения по коду или вы обнаружили баг, пишите напрямую или отправляйте пулл-реквесты.