docs: подробный README (разбор проекта при переносе в Gitea)
Старый README сохранён как README.upstream.md.
Этот коммит содержится в:
+51
-17
@@ -1,27 +1,61 @@
|
||||
# [Traccar Manager for Android](https://www.traccar.org/manager)
|
||||
# traccar-manager-android (форк)
|
||||
|
||||
[](https://play.google.com/store/apps/details?id=org.traccar.manager)
|
||||
Android-приложение Traccar Manager — тонкий клиент-обёртка над веб-интерфейсом сервера Traccar. Приложение спрашивает адрес сервера, проверяет его через `GET /api/server` и дальше показывает штатный веб-интерфейс в WebView, добавляя нативные возможности: push-уведомления через Firebase, вход по биометрии, скачивание отчётов, обработку внешних ссылок и передачу координат телефона в веб-приложение.
|
||||
|
||||
## Overview
|
||||
Форк сделан как резервная копия официального репозитория [traccar/traccar-manager-android](https://github.com/traccar/traccar-manager-android) (автор — Anton Tananaev) в самохостовом Gitea: приложение используется вместе со своим сервером Traccar, и независимая копия исходников позволяет пересобрать APK без доступа к GitHub.
|
||||
|
||||
Traccar Manager is a mobile application to manage GPS tracking devices. It requires a Traccar server instance to work.
|
||||
Документация оригинала (ссылка на Google Play, команда, лицензия Apache 2.0) сохранена в [README.upstream.md](README.upstream.md).
|
||||
|
||||
## Team
|
||||
## Отличия от оригинала
|
||||
|
||||
- Anton Tananaev ([anton@traccar.org](mailto:anton@traccar.org))
|
||||
Изменений нет. Все 106 коммитов принадлежат авторам оригинала (102 — Anton Tananaev, 4 — внешние контрибьюторы). Собственных правок владельца форка в истории нет. Форк взят как резервная копия.
|
||||
|
||||
## License
|
||||
## Стек
|
||||
|
||||
Apache License, Version 2.0
|
||||
- Kotlin 1.8.0, Android SDK (compileSdk/targetSdk 33, minSdk 19)
|
||||
- Gradle 7.6 + Android Gradle Plugin 7.4.1
|
||||
- AndroidX: `core-ktx` 1.9.0, `preference-ktx` 1.2.0, `lifecycle-viewmodel-ktx` 2.5.1, `localbroadcastmanager` 1.1.0, `biometric-ktx` 1.2.0-alpha05, `multidex` 2.0.1, Material Components 1.7.0
|
||||
- Flavor `google`: Firebase BOM 29.0.3 — Analytics, Crashlytics, Cloud Messaging (push-уведомления)
|
||||
- Android WebView + JavaScript-мост (`@JavascriptInterface`)
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
## Структура
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
| Путь | Назначение |
|
||||
|---|---|
|
||||
| `app/src/main/java/org/traccar/manager/MainActivity.kt` | Хост-активность: если адрес сервера ещё не сохранён — показывает `StartFragment`, иначе `MainFragment` |
|
||||
| `app/src/main/java/org/traccar/manager/StartFragment.kt` | Экран первого запуска: ввод адреса сервера и его проверка запросом `api/server` |
|
||||
| `app/src/main/java/org/traccar/manager/MainFragment.kt` | Основной экран: WebView с веб-интерфейсом Traccar, мост `postMessage` (события `login`/`authentication`/`logout`/`server`), скачивание отчётов через DownloadManager, открытие внешних ссылок, разрешения на геолокацию и уведомления |
|
||||
| `app/src/main/java/org/traccar/manager/SecurityManager.kt` | Хранение токена сессии и подтверждение входа через `BiometricPrompt` |
|
||||
| `app/src/google/java/org/traccar/manager/ManagerMessagingService.kt` | Приём push-уведомлений Firebase (в том числе payload с `eventId`) |
|
||||
| `app/src/google/java/org/traccar/manager/GoogleMainApplication.kt` | Инициализация Firebase для flavor `google` |
|
||||
| `app/src/main/res/layout/` | Всего два макета: `activity_main.xml` и `fragment_start.xml` |
|
||||
| `app/src/main/res/xml/network_security_config.xml` | Разрешён нешифрованный HTTP-трафик (для серверов без TLS) |
|
||||
| `.github/` | Только CONTRIBUTING, FUNDING и шаблоны issue. CI-workflow в репозитории нет |
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
Собственного UI управления устройствами в приложении нет — вся функциональность приходит с сервера в виде веб-страницы.
|
||||
|
||||
## Как собрать/запустить
|
||||
|
||||
```bash
|
||||
./gradlew assembleRegularDebug # сборка без сервисов Google
|
||||
./gradlew assembleRegularRelease
|
||||
./gradlew assembleGoogleRelease # вариант с Firebase (push-уведомления)
|
||||
```
|
||||
|
||||
Два product flavor'а: `regular` (по умолчанию) и `google`. Для `google`-сборки задача `copyJson` копирует `google-services.json` из внешнего каталога `../../environment/google-services/traccar-manager-android.json` — этого каталога в репозитории нет, потребуется собственный файл Firebase, иначе собирать flavor `regular`. Unit-тестов в проекте нет.
|
||||
|
||||
## Конфигурация
|
||||
|
||||
- `url` (SharedPreferences, `MainActivity.PREFERENCE_URL`) — адрес сервера Traccar. Вводится пользователем на первом экране, может быть переустановлен из веб-интерфейса сообщением `server` через JS-мост. С 2022 года по умолчанию подставляется схема HTTPS.
|
||||
- Токен сессии сохраняется `SecurityManager` и выдаётся веб-приложению только после подтверждения биометрией.
|
||||
- Сборочные параметры: `applicationId org.traccar.manager`, `versionCode 36`, `versionName 4.0`, `gradle.properties` содержит только `android.useAndroidX=true`.
|
||||
|
||||
Секретов в репозитории нет: ключи Firebase подставляются извне при сборке.
|
||||
|
||||
## Состояние
|
||||
|
||||
Рабочий, но копия устаревшая: 106 коммитов, последний — 10.02.2023 (Anton Tananaev, «Update project and version»), версия приложения 4.0 (versionCode 36). Оригинал с тех пор развивался дальше, форк не синхронизировали. Собственных коммитов владельца форка нет, поэтому дата последней своей правки отсутствует.
|
||||
|
||||
## Что не доделано
|
||||
|
||||
Меток TODO/FIXME и заглушек в коде нет — это релизная версия официального приложения. Замечания по коду: используются устаревшие API (`AsyncTask` в `StartFragment`, `android.app.Fragment`, файлы помечены `@file:Suppress("DEPRECATION")`), `biometric-ktx` подключён alpha-версией. Применительно к форку не хватает синхронизации с upstream: копия отстаёт от оригинала более чем на три года.
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# [Traccar Manager for Android](https://www.traccar.org/manager)
|
||||
|
||||
[](https://play.google.com/store/apps/details?id=org.traccar.manager)
|
||||
|
||||
## Overview
|
||||
|
||||
Traccar Manager is a mobile application to manage GPS tracking devices. It requires a Traccar server instance to work.
|
||||
|
||||
## Team
|
||||
|
||||
- Anton Tananaev ([anton@traccar.org](mailto:anton@traccar.org))
|
||||
|
||||
## License
|
||||
|
||||
Apache License, Version 2.0
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
Ссылка в новой задаче
Block a user