/
belya-av
/
TaskNotifier
Обзор
Документация
Войти
/
belya-av
/
TaskNotifier
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/src/main/java/com/example/tasknotifier/domain/usecase/NotificationUseCases.kt
45 строк
2 KB
AlexXX97-l
fix problems
31 окт 2025, 03:22
31 окт 2025, 03:22
fb8a9e4
Код
Авторство
О чём код?
package com.example.tasknotifier.domain.usecase import com.example.tasknotifier.data.entities.NotificationSettings import com.example.tasknotifier.data.repository.NotificationSettingsRepository import com.example.tasknotifier.domain.model.DayConfiguration import com.example.tasknotifier.domain.model.defaultDayConfigurations import kotlinx.serialization.json.Json import javax.inject.Inject class NotificationUseCases @Inject constructor( private val repository: NotificationSettingsRepository ) { suspend fun getSettings(): NotificationSettings? = repository.getSettings() suspend fun saveSettings(settings: NotificationSettings) = repository.insertSettings(settings) suspend fun getDayConfigurations(): List<DayConfiguration> { val settings = repository.getSettings() return if (settings?.daysConfiguration?.isNotEmpty() == true && settings.daysConfiguration != "[]") { try { Json.decodeFromString(settings.daysConfiguration) } catch (e: Exception) { defaultDayConfigurations } } else { defaultDayConfigurations } } suspend fun saveDayConfigurations(configurations: List<DayConfiguration>) { val currentSettings = repository.getSettings() ?: NotificationSettings() val updatedSettings = currentSettings.copy( daysConfiguration = Json.encodeToString(configurations), useAdvancedSettings = true ) repository.insertSettings(updatedSettings) } suspend fun toggleAdvancedSettings(useAdvanced: Boolean) { val currentSettings = repository.getSettings() ?: NotificationSettings() val updatedSettings = currentSettings.copy(useAdvancedSettings = useAdvanced) repository.insertSettings(updatedSettings) } }