diff --git a/AndroidApp/app/src/main/kotlin/me/nya_n/notificationnotifier/App.kt b/AndroidApp/app/src/main/kotlin/me/nya_n/notificationnotifier/App.kt index 428400f2..29b9f2de 100644 --- a/AndroidApp/app/src/main/kotlin/me/nya_n/notificationnotifier/App.kt +++ b/AndroidApp/app/src/main/kotlin/me/nya_n/notificationnotifier/App.kt @@ -15,6 +15,7 @@ import me.nya_n.notificationnotifier.domain.usecase.AddTargetAppUseCase import me.nya_n.notificationnotifier.domain.usecase.CheckPackageVisibilityUseCase import me.nya_n.notificationnotifier.domain.usecase.DeleteTargetAppUseCase import me.nya_n.notificationnotifier.domain.usecase.ExportDataUseCase +import me.nya_n.notificationnotifier.domain.usecase.GetUserSettingsUseCase import me.nya_n.notificationnotifier.domain.usecase.ImportDataUseCase import me.nya_n.notificationnotifier.domain.usecase.LoadAddressUseCase import me.nya_n.notificationnotifier.domain.usecase.LoadAppUseCase @@ -30,6 +31,7 @@ import me.nya_n.notificationnotifier.domain.usecase.impl.AddTargetAppUseCaseImpl import me.nya_n.notificationnotifier.domain.usecase.impl.CheckPackageVisibilityUseCaseImpl import me.nya_n.notificationnotifier.domain.usecase.impl.DeleteTargetAppUseCaseImpl import me.nya_n.notificationnotifier.domain.usecase.impl.ExportDataUseCaseImpl +import me.nya_n.notificationnotifier.domain.usecase.impl.GetUserSettingsUseCaseImpl import me.nya_n.notificationnotifier.domain.usecase.impl.ImportDataUseCaseImpl import me.nya_n.notificationnotifier.domain.usecase.impl.LoadAddressUseCaseImpl import me.nya_n.notificationnotifier.domain.usecase.impl.LoadAppUseCaseImpl @@ -96,7 +98,7 @@ class App : Application() { viewModel { SelectionViewModel(get(), get()) } viewModel { params -> DetailViewModel(get(), get(), get(), get(), params.get()) } viewModel { TargetViewModel(get()) } - viewModel { SettingsViewModel(get(), get(), get(), get(), get(), get(), get()) } + viewModel { SettingsViewModel(get(), get(), get(), get(), get(), get(), get(), get()) } // UseCase factory { AddTargetAppUseCaseImpl(get()) } @@ -120,5 +122,6 @@ class App : Application() { get() ) } + factory { GetUserSettingsUseCaseImpl(get()) } } } \ No newline at end of file diff --git a/AndroidApp/domain/src/main/kotlin/me/nya_n/notificationnotifier/domain/usecase/GetUserSettingsUseCase.kt b/AndroidApp/domain/src/main/kotlin/me/nya_n/notificationnotifier/domain/usecase/GetUserSettingsUseCase.kt new file mode 100644 index 00000000..21e2b904 --- /dev/null +++ b/AndroidApp/domain/src/main/kotlin/me/nya_n/notificationnotifier/domain/usecase/GetUserSettingsUseCase.kt @@ -0,0 +1,7 @@ +package me.nya_n.notificationnotifier.domain.usecase + +import me.nya_n.notificationnotifier.model.UserSettings + +interface GetUserSettingsUseCase { + operator fun invoke(): UserSettings +} \ No newline at end of file diff --git a/AndroidApp/domain/src/main/kotlin/me/nya_n/notificationnotifier/domain/usecase/impl/GetUserSettingsUseCaseImpl.kt b/AndroidApp/domain/src/main/kotlin/me/nya_n/notificationnotifier/domain/usecase/impl/GetUserSettingsUseCaseImpl.kt new file mode 100644 index 00000000..92067829 --- /dev/null +++ b/AndroidApp/domain/src/main/kotlin/me/nya_n/notificationnotifier/domain/usecase/impl/GetUserSettingsUseCaseImpl.kt @@ -0,0 +1,13 @@ +package me.nya_n.notificationnotifier.domain.usecase.impl + +import me.nya_n.notificationnotifier.data.repository.UserSettingsRepository +import me.nya_n.notificationnotifier.domain.usecase.GetUserSettingsUseCase +import me.nya_n.notificationnotifier.model.UserSettings + +class GetUserSettingsUseCaseImpl( + private val userSettingsRepository: UserSettingsRepository +) : GetUserSettingsUseCase { + override fun invoke(): UserSettings { + return userSettingsRepository.getUserSettings() + } +} \ No newline at end of file diff --git a/AndroidApp/ui/src/main/kotlin/me/nya_n/notificationnotifier/ui/screen/settings/SettingsViewModel.kt b/AndroidApp/ui/src/main/kotlin/me/nya_n/notificationnotifier/ui/screen/settings/SettingsViewModel.kt index a3639600..33a716ab 100644 --- a/AndroidApp/ui/src/main/kotlin/me/nya_n/notificationnotifier/ui/screen/settings/SettingsViewModel.kt +++ b/AndroidApp/ui/src/main/kotlin/me/nya_n/notificationnotifier/ui/screen/settings/SettingsViewModel.kt @@ -8,6 +8,7 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import me.nya_n.notificationnotifier.domain.usecase.ExportDataUseCase +import me.nya_n.notificationnotifier.domain.usecase.GetUserSettingsUseCase import me.nya_n.notificationnotifier.domain.usecase.ImportDataUseCase import me.nya_n.notificationnotifier.domain.usecase.LoadAddressUseCase import me.nya_n.notificationnotifier.domain.usecase.NotifyUseCase @@ -24,6 +25,7 @@ class SettingsViewModel( private val saveAddressUseCase: SaveAddressUseCase, private val notifyUseCase: NotifyUseCase, private val saveWifiOnlyNotificationSettingUseCase: SaveWifiOnlyNotificationSettingUseCase, + private val getUserSettingsUseCase: GetUserSettingsUseCase, private val exportDataUseCase: ExportDataUseCase, private val importDataUseCase: ImportDataUseCase ) : BaseViewModel() { @@ -34,7 +36,13 @@ class SettingsViewModel( init { viewModelScope.launch { - _uiState.update { it.copy(address = loadAddressUseCase()) } + val userSettings = getUserSettingsUseCase() + _uiState.update { + it.copy( + address = loadAddressUseCase(), + isWifiOnlyNotificationEnabled = userSettings.isWifiOnlyNotificationEnabled + ) + } } }