Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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<AddTargetAppUseCase> { AddTargetAppUseCaseImpl(get()) }
Expand All @@ -120,5 +122,6 @@ class App : Application() {
get()
)
}
factory<GetUserSettingsUseCase> { GetUserSettingsUseCaseImpl(get()) }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package me.nya_n.notificationnotifier.domain.usecase

import me.nya_n.notificationnotifier.model.UserSettings

interface GetUserSettingsUseCase {
operator fun invoke(): UserSettings
}
Original file line number Diff line number Diff line change
@@ -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()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<UiEvent>() {
Expand All @@ -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
)
}
}
}

Expand Down