Files
WellShe/docs/server_settings.md
2025-11-06 07:11:15 +09:00

4.1 KiB
Raw Blame History

Настройки сервера в WellShe

Новая функциональность

На экране авторизации в верхнем левом углу теперь есть иконка шестеренки (настроек), которая открывает диалог настройки сервера. Также на экране отображается текущий сервер, к которому подключается приложение.

Основные возможности

  • ⚙️ Иконка настроек в верхнем левом углу экрана авторизации
  • 🔧 Диалог для изменения URL сервера с валидацией
  • 📍 Отображение текущего сервера на экране авторизации
  • 💾 Автоматическое сохранение настроек в SharedPreferences
  • 🔄 Динамическое обновление Retrofit при изменении настроек
  • Toast уведомление при сохранении

Компоненты

  1. ServerSettingsDialog.kt - Диалог для ввода URL сервера
  2. ServerPreferences.kt - Класс для сохранения настроек сервера в SharedPreferences
  3. ServerSettingsViewModel.kt - ViewModel для управления состоянием настроек
  4. RetrofitProvider.kt - Провайдер для динамического создания Retrofit
  5. RetrofitFactory.kt - Фабрика для создания Retrofit с нужным baseUrl
  6. ApiClient.kt - Обновлен для использования динамических настроек сервера
  7. LoginScreen.kt - Добавлена иконка настроек, диалог и отображение сервера
  8. ic_settings_24.xml - Иконка настроек

Использование

  1. На экране авторизации нажмите на иконку шестеренки в верхнем левом углу
  2. Введите полный URL сервера (включая протокол http:// или https:// и порт)
  3. Нажмите "Сохранить"
  4. Появится Toast уведомление об успешном сохранении
  5. Настройки применяются мгновенно для всех API-запросов

Валидация

  • URL должен начинаться с http:// или https://
  • Поле не может быть пустым
  • Кнопка "Сохранить" активна только при корректном URL
  • Отображается подсказка о формате URL

Отображение текущего сервера

На экране авторизации под кнопками отображается карточка с информацией о текущем сервере:

  • Показывает текущий URL сервера
  • Обновляется автоматически при изменении настроек
  • Помогает пользователю понимать, к какому серверу он подключается

Технические детали

  • Использует Jetpack Compose для UI
  • Hilt для внедрения зависимостей
  • SharedPreferences для хранения настроек
  • RetrofitProvider для динамического обновления базового URL
  • ExperimentalMaterial3Api для TopAppBar
  • Toast уведомления для обратной связи

Архитектура

ServerPreferences -> ServerSettingsViewModel -> ServerSettingsDialog
                 |
                 v
            RetrofitProvider -> RetrofitFactory -> Retrofit -> AuthService

По умолчанию

  • Сервер по умолчанию: http://192.168.0.112:8000
  • Настройки сохраняются между запусками приложения
  • При первом запуске используется сервер по умолчанию