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

72 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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