From cbd6451ee0743a6017f0113fe857b437b98dba57 Mon Sep 17 00:00:00 2001 From: nk Date: Mon, 8 Jun 2026 14:05:11 +0300 Subject: [PATCH] =?UTF-8?q?refactor(settings):=20=D1=83=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BE=D1=81=D0=B8=D1=80=D0=BE=D1=82=D0=B5=D0=B2?= =?UTF-8?q?=D1=88=D0=B8=D0=B9=20=D1=82=D1=83=D0=BC=D0=B1=D0=BB=D0=B5=D1=80?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8;=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D1=80=20=D0=BF=D0=BE=D0=B4=20SHOW=5FDEV=5FTOOLS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/repository/SettingsRepositoryImpl.kt | 4 -- .../domain/repository/SettingsRepository.kt | 2 - .../com/radiola/ui/settings/SettingsScreen.kt | 48 +------------------ .../radiola/ui/settings/SettingsViewModel.kt | 7 --- 4 files changed, 2 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/com/radiola/data/repository/SettingsRepositoryImpl.kt b/app/src/main/java/com/radiola/data/repository/SettingsRepositoryImpl.kt index 88616cf..92161b3 100644 --- a/app/src/main/java/com/radiola/data/repository/SettingsRepositoryImpl.kt +++ b/app/src/main/java/com/radiola/data/repository/SettingsRepositoryImpl.kt @@ -28,7 +28,6 @@ class SettingsRepositoryImpl @Inject constructor( private val SLEEP_TIMER = intPreferencesKey("sleep_timer_minutes") private val ENABLED_SERVICES = stringSetPreferencesKey("enabled_deeplink_services") private val EQUALIZER_PRESET = stringPreferencesKey("equalizer_preset") - private val RECORDING_ENABLED = booleanPreferencesKey("recording_enabled") private val PREFERRED_BITRATE = intPreferencesKey("preferred_bitrate") private val COUNTRY_CODE = stringPreferencesKey("country_code") private val VISUALIZER_STYLE = stringPreferencesKey("visualizer_style") @@ -57,9 +56,6 @@ class SettingsRepositoryImpl @Inject constructor( override fun getEqualizerPreset(): Flow = dataStore.data.map { it[EQUALIZER_PRESET] ?: "Flat" } override suspend fun setEqualizerPreset(preset: String) { dataStore.edit { it[EQUALIZER_PRESET] = preset } } - override fun isRecordingEnabled(): Flow = dataStore.data.map { it[RECORDING_ENABLED] ?: false } - override suspend fun setRecordingEnabled(enabled: Boolean) { dataStore.edit { it[RECORDING_ENABLED] = enabled } } - override fun getPreferredBitrate(): Flow = dataStore.data.map { it[PREFERRED_BITRATE] ?: 0 } override suspend fun setPreferredBitrate(bitrate: Int) { dataStore.edit { it[PREFERRED_BITRATE] = bitrate } } diff --git a/app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt b/app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt index 0faaa67..a0c980f 100644 --- a/app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt +++ b/app/src/main/java/com/radiola/domain/repository/SettingsRepository.kt @@ -12,8 +12,6 @@ interface SettingsRepository { suspend fun setEnabledDeeplinkServices(serviceIds: Set) fun getEqualizerPreset(): Flow suspend fun setEqualizerPreset(preset: String) - fun isRecordingEnabled(): Flow - suspend fun setRecordingEnabled(enabled: Boolean) // Предпочитаемый битрейт (kbps). 0 = авто (брать качество по умолчанию станции). fun getPreferredBitrate(): Flow suspend fun setPreferredBitrate(bitrate: Int) diff --git a/app/src/main/java/com/radiola/ui/settings/SettingsScreen.kt b/app/src/main/java/com/radiola/ui/settings/SettingsScreen.kt index f8eb1ec..9061142 100644 --- a/app/src/main/java/com/radiola/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/com/radiola/ui/settings/SettingsScreen.kt @@ -50,7 +50,6 @@ fun SettingsScreen( val enabledServices by viewModel.enabledServices.collectAsState() val visualizerStyle by viewModel.visualizerStyle.collectAsState() val themePalette by viewModel.themePalette.collectAsState() - val isRecordingEnabled by viewModel.isRecordingEnabled.collectAsState() val preferredBitrate by viewModel.preferredBitrate.collectAsState() val isTesting by viewModel.isTesting.collectAsState() val testProgress by viewModel.testProgress.collectAsState() @@ -449,51 +448,8 @@ fun SettingsScreen( } } - // --- Запись эфира --- - item { - Column( - modifier = Modifier - .fillMaxWidth() - .clip(RoundedCornerShape(16.dp)) - .background(colors.surface) - .border(1.dp, colors.border, RoundedCornerShape(16.dp)) - ) { - Row( - modifier = Modifier - .fillMaxWidth() - .clickable { viewModel.setRecordingEnabled(!isRecordingEnabled) } - .padding(horizontal = 16.dp, vertical = 14.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - Column { - Text( - text = "Запись эфира", - style = MaterialTheme.typography.titleMedium, - color = colors.textPrimary - ) - Text( - text = "Сохранять в файл при воспроизведении", - style = MaterialTheme.typography.labelMedium, - color = colors.textSecondary - ) - } - Switch( - checked = isRecordingEnabled, - onCheckedChange = { viewModel.setRecordingEnabled(it) }, - colors = SwitchDefaults.colors( - checkedThumbColor = colors.bgBase, - checkedTrackColor = colors.accent, - uncheckedThumbColor = colors.textMuted, - uncheckedTrackColor = colors.surface2 - ) - ) - } - } - } - - // --- Тестирование станций --- - item { + // --- Тестирование станций (dev-инструмент, только в sideload) --- + if (com.radiola.BuildConfig.SHOW_DEV_TOOLS) item { SectionLabel("ТЕСТИРОВАНИЕ СТАНЦИЙ") Spacer(Modifier.height(8.dp)) Column( diff --git a/app/src/main/java/com/radiola/ui/settings/SettingsViewModel.kt b/app/src/main/java/com/radiola/ui/settings/SettingsViewModel.kt index 3e64ee5..a8b5bb6 100644 --- a/app/src/main/java/com/radiola/ui/settings/SettingsViewModel.kt +++ b/app/src/main/java/com/radiola/ui/settings/SettingsViewModel.kt @@ -38,9 +38,6 @@ class SettingsViewModel @Inject constructor( val themePalette: StateFlow = settingsRepository.getThemePalette() .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), "forest") - val isRecordingEnabled: StateFlow = settingsRepository.isRecordingEnabled() - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), false) - // Предпочитаемый битрейт по умолчанию (0 = авто/станция сама выбирает). val preferredBitrate: StateFlow = settingsRepository.getPreferredBitrate() .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), 0) @@ -91,10 +88,6 @@ class SettingsViewModel @Inject constructor( viewModelScope.launch { settingsRepository.setThemePalette(id) } } - fun setRecordingEnabled(enabled: Boolean) { - viewModelScope.launch { settingsRepository.setRecordingEnabled(enabled) } - } - fun startTesting() { viewModelScope.launch { _isTesting.value = true