72 lines
4.1 KiB
Markdown
72 lines
4.1 KiB
Markdown
# Настройки сервера в 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`
|
||
- Настройки сохраняются между запусками приложения
|
||
- При первом запуске используется сервер по умолчанию
|