Add switch preference to enable feed

This commit is contained in:
MM20
2026-01-06 21:56:20 +01:00
parent 52c6ecc63f
commit a68ae78835
4 changed files with 35 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import de.mm20.launcher2.ui.component.LargeMessage
import de.mm20.launcher2.ui.component.preferences.Preference
import de.mm20.launcher2.ui.component.preferences.PreferenceCategory
import de.mm20.launcher2.ui.component.preferences.PreferenceScreen
import de.mm20.launcher2.ui.component.preferences.SwitchPreference
import kotlinx.serialization.Serializable
@Serializable
@@ -32,6 +33,7 @@ fun FeedIntegrationSettingsScreen() {
val viewModel: FeedIntegrationSettingsScreenVM = viewModel()
val selectedProvider by viewModel.providerPackage.collectAsState(null)
val feedEnabled by viewModel.feedEnabled.collectAsState(null)
val providers = remember { viewModel.getFeedProviders(context) }
PreferenceScreen(
@@ -58,6 +60,19 @@ fun FeedIntegrationSettingsScreen() {
} else {
item {
PreferenceCategory {
SwitchPreference(
icon = R.drawable.news_24px,
title = stringResource(R.string.preference_feed_integration),
summary = stringResource(R.string.preference_feed_enable_summary),
value = feedEnabled == true,
onValueChanged = {
viewModel.setFeedEnabled(it)
}
)
}
}
item {
PreferenceCategory(stringResource(R.string.preference_category_feed_provider)) {
for (prov in providers) {
Preference(
title = prov.label,

View File

@@ -23,6 +23,9 @@ class FeedIntegrationSettingsScreenVM : ViewModel(), KoinComponent {
val providerPackage = feedSettings.providerPackage
.shareIn(viewModelScope, SharingStarted.WhileSubscribed(0), 1)
val feedEnabled = feedSettings.enabled
.shareIn(viewModelScope, SharingStarted.WhileSubscribed(0), 1)
fun setProviderPackage(providerPackage: String?) {
feedSettings.setProviderPackage(providerPackage)
}
@@ -30,4 +33,8 @@ class FeedIntegrationSettingsScreenVM : ViewModel(), KoinComponent {
fun getFeedProviders(context: Context): List<FeedProvider> {
return feedService.getAvailableFeedProviders()
}
fun setFeedEnabled(enabled: Boolean) {
feedSettings.setEnabled(enabled)
}
}