Project type: work
AI tags: work, ais, android, network, wifi, tiles, map, offline, settings
Description
Реализовать функциональность подключения устройства к интернету через приложение с поддержкой двух режимов: 1) выбор точки доступа (AP) устройства или шеринг настроек Wi-Fi с телефона в зависимости от наличия сети на телефоне; 2) выбор альтернативного локального тайлового сервера для режимов без интернета. В контексте проекта это требуется для MapLibre и других компонентов, которые работают с тайлами карт (см. MapLibreMapImpl.java, где уже реализована fallback логика для addSeamarksLayer).
Приложение может автоматически определять наличие интернета на телефоне
При наличии интернета - приложение предлагает поделиться Wi-Fi настройками с устройством
При отсутствии интернета - приложение предлагает подключиться к AP самого устройства
В интерфейс настроек добавлена секция выбора тайлового сервера (интернет-сервер vs локальный)
MapLibre использует выбранный тайловый сервер вместо hardcoded URL
При переключении между сервис-провайдерами карта обновляет слой тайлов без перезагрузки
Логирование выбора сервера и статуса подключения для отладки
Code notes
MapLibreMapImpl.java, строки ~3030-3098: уже реализована fallback логика для addSeamarksLayer(), которую нужно обобщить и сделать конфигурируемой
SettingsManager.java: центральное место для хранения настроек, нужно добавить методы getTileServerUrl() и saveTileServerChoice()
activity_settings.xml: большой файл с множеством секций, нужно либо расширить, либо создать отдельный activity_network_settings.xml
AppCoordinator.java: главный координатор, через него должны проходить уведомления об изменении сервера
GPSLocationListener.java и комбинированный NMEA парсер - не требуют изменений, но могут использовать информацию о подключении для логирования
Нет явного класса для работы с Wi-Fi - вероятно, нужно создать WifiManager обертку или использовать встроенный Android WifiManager из context.getSystemService()
Какой способ предпочтителен для отправки Wi-Fi настроек на устройство - через BLE, HTTP API или другой канал?
Есть ли уже реализованный локальный тайловый сервер на устройстве или его нужно развернуть? Какой URL/IP:port?
Должно ли приложение автоматически переключаться на локальный сервер при потере интернета или только вручную через настройки?
Нужна ли история выбранных сервис-провайдеров или сохранение профилей подключения?
Linked Taiga story: #40
Suggested branch:
`feature/taiga-40-sopryazhenie-ustroystva-k-internetu-i-nastroyka-lokalnogo-ta`
Project type: `work`
AI tags: work, ais, android, network, wifi, tiles, map, offline, settings
## Description
Реализовать функциональность подключения устройства к интернету через приложение с поддержкой двух режимов: 1) выбор точки доступа (AP) устройства или шеринг настроек Wi-Fi с телефона в зависимости от наличия сети на телефоне; 2) выбор альтернативного локального тайлового сервера для режимов без интернета. В контексте проекта это требуется для MapLibre и других компонентов, которые работают с тайлами карт (см. MapLibreMapImpl.java, где уже реализована fallback логика для addSeamarksLayer).
Taiga: https://tasks.grigowashere.ru/project//us/40
## Acceptance criteria
- Приложение может автоматически определять наличие интернета на телефоне
- При наличии интернета - приложение предлагает поделиться Wi-Fi настройками с устройством
- При отсутствии интернета - приложение предлагает подключиться к AP самого устройства
- В интерфейс настроек добавлена секция выбора тайлового сервера (интернет-сервер vs локальный)
- MapLibre использует выбранный тайловый сервер вместо hardcoded URL
- При переключении между сервис-провайдерами карта обновляет слой тайлов без перезагрузки
- Логирование выбора сервера и статуса подключения для отладки
## Code notes
- MapLibreMapImpl.java, строки ~3030-3098: уже реализована fallback логика для addSeamarksLayer(), которую нужно обобщить и сделать конфигурируемой
- SettingsManager.java: центральное место для хранения настроек, нужно добавить методы getTileServerUrl() и saveTileServerChoice()
- activity_settings.xml: большой файл с множеством секций, нужно либо расширить, либо создать отдельный activity_network_settings.xml
- AppCoordinator.java: главный координатор, через него должны проходить уведомления об изменении сервера
- GPSLocationListener.java и комбинированный NMEA парсер - не требуют изменений, но могут использовать информацию о подключении для логирования
- Нет явного класса для работы с Wi-Fi - вероятно, нужно создать WifiManager обертку или использовать встроенный Android WifiManager из context.getSystemService()
- Разрешения: нужны CHANGE_NETWORK_STATE, ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE (проверить AndroidManifest.xml)
## Questions
- Какой способ предпочтителен для отправки Wi-Fi настроек на устройство - через BLE, HTTP API или другой канал?
- Есть ли уже реализованный локальный тайловый сервер на устройстве или его нужно развернуть? Какой URL/IP:port?
- Должно ли приложение автоматически переключаться на локальный сервер при потере интернета или только вручную через настройки?
- Нужна ли история выбранных сервис-провайдеров или сохранение профилей подключения?
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Linked Taiga story: #40
Suggested branch:
feature/taiga-40-sopryazhenie-ustroystva-k-internetu-i-nastroyka-lokalnogo-taProject type:
workAI tags: work, ais, android, network, wifi, tiles, map, offline, settings
Description
Реализовать функциональность подключения устройства к интернету через приложение с поддержкой двух режимов: 1) выбор точки доступа (AP) устройства или шеринг настроек Wi-Fi с телефона в зависимости от наличия сети на телефоне; 2) выбор альтернативного локального тайлового сервера для режимов без интернета. В контексте проекта это требуется для MapLibre и других компонентов, которые работают с тайлами карт (см. MapLibreMapImpl.java, где уже реализована fallback логика для addSeamarksLayer).
Taiga: https://tasks.grigowashere.ru/project//us/40
Acceptance criteria
Code notes
Questions