Skip to content

About

TeamTalk 5 Android Client source code & build workflow

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

TeamTalk Pro+ Client для Android (Модификация)

Репозиторий содержит исходный код модифицированного клиента 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.

Требования

  1. Android SDK (API 21+)
  2. JDK 17 (рекомендуется для текущей версии Gradle)

Шаги для сборки в Linux / macOS:

  1. Перейдите в корневую директорию проекта:
    cd путь/к/проекту/ttpro+
  2. Запустите сборку отладочного (Debug) APK:
    ./gradlew assembleDebug

Шаги для сборки в Windows:

  1. Откройте командную строку (cmd) или PowerShell.
  2. Перейдите в корневую директорию проекта:
    cd путь\к\проекту\ttpro+
  3. Запустите сборку отладочного (Debug) APK:
    gradlew.bat assembleDebug

После успешного завершения файл будет сохранен по пути: app/build/outputs/apk/debug/app-debug.apk


✍️ Руководство разработчика: как вносить изменения

Как добавить новую настройку (Preference):

  1. Зарегистрируйте строковую константу для ключа настройки в org.nekit.ttproplus.data.Preferences.java.
  2. Добавьте элемент интерфейса (например, CheckBoxPreference) в соответствующий XML файл в папке src/main/res/xml/ (например, в pref_general.xml).
  3. Для чтения настройки в коде используйте:
    boolean mySetting = prefs.get(Preferences.MY_PREF_KEY, false);

Как добавить перевод:

  • Локализация интерфейса лежит в соответствующих директориях values-<язык>/strings.xml.
  • При добавлении новой строки в основной файл values/strings.xml, обязательно продублируйте её перевод в values-ru/strings.xml для поддержки русского языка.

Как изменить поведение аудиосистемы:

  • Вся работа по перенаправлению аудиопотоков, получению разрешений MediaProjection и захвату системного звука/микрофона сосредоточена в TeamTalkService.java в методах startInternalAudioCapture() and stopInternalAudioCapture().

📬 Контакты и поддержка

Разработчик модификации: @nt_6769 (Telegram) Если у вас есть предложения по коду или вы обнаружили баг, пишите напрямую или отправляйте пулл-реквесты.

About

TeamTalk 5 Android Client source code & build workflow

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages