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