Skip to content

Commit ef12633

Browse files
authored
Merge pull request #309 from ptkNktq/fix/settings
Fix/settings
2 parents 3342327 + 085cced commit ef12633

4 files changed

Lines changed: 33 additions & 2 deletions

File tree

AndroidApp/app/src/main/kotlin/me/nya_n/notificationnotifier/App.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import me.nya_n.notificationnotifier.domain.usecase.AddTargetAppUseCase
1515
import me.nya_n.notificationnotifier.domain.usecase.CheckPackageVisibilityUseCase
1616
import me.nya_n.notificationnotifier.domain.usecase.DeleteTargetAppUseCase
1717
import me.nya_n.notificationnotifier.domain.usecase.ExportDataUseCase
18+
import me.nya_n.notificationnotifier.domain.usecase.GetUserSettingsUseCase
1819
import me.nya_n.notificationnotifier.domain.usecase.ImportDataUseCase
1920
import me.nya_n.notificationnotifier.domain.usecase.LoadAddressUseCase
2021
import me.nya_n.notificationnotifier.domain.usecase.LoadAppUseCase
@@ -30,6 +31,7 @@ import me.nya_n.notificationnotifier.domain.usecase.impl.AddTargetAppUseCaseImpl
3031
import me.nya_n.notificationnotifier.domain.usecase.impl.CheckPackageVisibilityUseCaseImpl
3132
import me.nya_n.notificationnotifier.domain.usecase.impl.DeleteTargetAppUseCaseImpl
3233
import me.nya_n.notificationnotifier.domain.usecase.impl.ExportDataUseCaseImpl
34+
import me.nya_n.notificationnotifier.domain.usecase.impl.GetUserSettingsUseCaseImpl
3335
import me.nya_n.notificationnotifier.domain.usecase.impl.ImportDataUseCaseImpl
3436
import me.nya_n.notificationnotifier.domain.usecase.impl.LoadAddressUseCaseImpl
3537
import me.nya_n.notificationnotifier.domain.usecase.impl.LoadAppUseCaseImpl
@@ -96,7 +98,7 @@ class App : Application() {
9698
viewModel { SelectionViewModel(get(), get()) }
9799
viewModel { params -> DetailViewModel(get(), get(), get(), get(), params.get()) }
98100
viewModel { TargetViewModel(get()) }
99-
viewModel { SettingsViewModel(get(), get(), get(), get(), get(), get(), get()) }
101+
viewModel { SettingsViewModel(get(), get(), get(), get(), get(), get(), get(), get()) }
100102

101103
// UseCase
102104
factory<AddTargetAppUseCase> { AddTargetAppUseCaseImpl(get()) }
@@ -120,5 +122,6 @@ class App : Application() {
120122
get()
121123
)
122124
}
125+
factory<GetUserSettingsUseCase> { GetUserSettingsUseCaseImpl(get()) }
123126
}
124127
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package me.nya_n.notificationnotifier.domain.usecase
2+
3+
import me.nya_n.notificationnotifier.model.UserSettings
4+
5+
interface GetUserSettingsUseCase {
6+
operator fun invoke(): UserSettings
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package me.nya_n.notificationnotifier.domain.usecase.impl
2+
3+
import me.nya_n.notificationnotifier.data.repository.UserSettingsRepository
4+
import me.nya_n.notificationnotifier.domain.usecase.GetUserSettingsUseCase
5+
import me.nya_n.notificationnotifier.model.UserSettings
6+
7+
class GetUserSettingsUseCaseImpl(
8+
private val userSettingsRepository: UserSettingsRepository
9+
) : GetUserSettingsUseCase {
10+
override fun invoke(): UserSettings {
11+
return userSettingsRepository.getUserSettings()
12+
}
13+
}

AndroidApp/ui/src/main/kotlin/me/nya_n/notificationnotifier/ui/screen/settings/SettingsViewModel.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import kotlinx.coroutines.flow.asStateFlow
88
import kotlinx.coroutines.flow.update
99
import kotlinx.coroutines.launch
1010
import me.nya_n.notificationnotifier.domain.usecase.ExportDataUseCase
11+
import me.nya_n.notificationnotifier.domain.usecase.GetUserSettingsUseCase
1112
import me.nya_n.notificationnotifier.domain.usecase.ImportDataUseCase
1213
import me.nya_n.notificationnotifier.domain.usecase.LoadAddressUseCase
1314
import me.nya_n.notificationnotifier.domain.usecase.NotifyUseCase
@@ -24,6 +25,7 @@ class SettingsViewModel(
2425
private val saveAddressUseCase: SaveAddressUseCase,
2526
private val notifyUseCase: NotifyUseCase,
2627
private val saveWifiOnlyNotificationSettingUseCase: SaveWifiOnlyNotificationSettingUseCase,
28+
private val getUserSettingsUseCase: GetUserSettingsUseCase,
2729
private val exportDataUseCase: ExportDataUseCase,
2830
private val importDataUseCase: ImportDataUseCase
2931
) : BaseViewModel<UiEvent>() {
@@ -34,7 +36,13 @@ class SettingsViewModel(
3436

3537
init {
3638
viewModelScope.launch {
37-
_uiState.update { it.copy(address = loadAddressUseCase()) }
39+
val userSettings = getUserSettingsUseCase()
40+
_uiState.update {
41+
it.copy(
42+
address = loadAddressUseCase(),
43+
isWifiOnlyNotificationEnabled = userSettings.isWifiOnlyNotificationEnabled
44+
)
45+
}
3846
}
3947
}
4048

0 commit comments

Comments
 (0)