4.1 KiB
4.1 KiB
Настройки сервера в WellShe
Новая функциональность
На экране авторизации в верхнем левом углу теперь есть иконка шестеренки (настроек), которая открывает диалог настройки сервера. Также на экране отображается текущий сервер, к которому подключается приложение.
Основные возможности
- ⚙️ Иконка настроек в верхнем левом углу экрана авторизации
- 🔧 Диалог для изменения URL сервера с валидацией
- 📍 Отображение текущего сервера на экране авторизации
- 💾 Автоматическое сохранение настроек в SharedPreferences
- 🔄 Динамическое обновление Retrofit при изменении настроек
- ✅ Toast уведомление при сохранении
Компоненты
- ServerSettingsDialog.kt - Диалог для ввода URL сервера
- ServerPreferences.kt - Класс для сохранения настроек сервера в SharedPreferences
- ServerSettingsViewModel.kt - ViewModel для управления состоянием настроек
- RetrofitProvider.kt - Провайдер для динамического создания Retrofit
- RetrofitFactory.kt - Фабрика для создания Retrofit с нужным baseUrl
- ApiClient.kt - Обновлен для использования динамических настроек сервера
- LoginScreen.kt - Добавлена иконка настроек, диалог и отображение сервера
- ic_settings_24.xml - Иконка настроек
Использование
- На экране авторизации нажмите на иконку шестеренки в верхнем левом углу
- Введите полный URL сервера (включая протокол http:// или https:// и порт)
- Нажмите "Сохранить"
- Появится Toast уведомление об успешном сохранении
- Настройки применяются мгновенно для всех 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 - Настройки сохраняются между запусками приложения
- При первом запуске используется сервер по умолчанию