server selection
This commit is contained in:
71
docs/server_settings.md
Normal file
71
docs/server_settings.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Настройки сервера в 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`
|
||||
- Настройки сохраняются между запусками приложения
|
||||
- При первом запуске используется сервер по умолчанию
|
||||
Reference in New Issue
Block a user