From 0892909b0cc31781cc2e92cf010077107816eaf4 Mon Sep 17 00:00:00 2001 From: Ida Delphine Date: Wed, 1 Jul 2026 19:28:58 +0100 Subject: [PATCH] address review feedback --- shared/build.gradle.kts | 3 ++- .../newpipe/app/screen/settings/SettingsHomeScreen.kt | 11 ++--------- .../app/screen/settings/model/SettingsCategory.kt | 11 +++++++++++ .../settings/{ => model}/SettingsCategoryType.kt | 7 +------ .../app/viewmodel/settings/SettingsViewModel.kt | 8 ++++---- .../kotlin/net/newpipe/app/platform/IOSBuildInfo.kt | 2 +- .../kotlin/net/newpipe/app/platform/JVMBuildInfo.kt | 2 +- 7 files changed, 22 insertions(+), 22 deletions(-) create mode 100644 shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/model/SettingsCategory.kt rename shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/{ => model}/SettingsCategoryType.kt (93%) diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index fe5524336..59f348ab1 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -37,7 +37,8 @@ kotlin { compilerOptions { freeCompilerArgs.addAll( - "-Xexpect-actual-classes" + "-Xexpect-actual-classes", + "-Xexplicit-backing-fields" ) optIn.addAll( "androidx.compose.material3.ExperimentalMaterial3Api", diff --git a/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/SettingsHomeScreen.kt b/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/SettingsHomeScreen.kt index bc644b89a..1eea3c149 100644 --- a/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/SettingsHomeScreen.kt +++ b/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/SettingsHomeScreen.kt @@ -25,25 +25,18 @@ import net.newpipe.app.composable.PreferenceRow import net.newpipe.app.composable.TopAppBar import net.newpipe.app.navigation.Navigator import net.newpipe.app.preview.ThemePreviewProvider +import net.newpipe.app.screen.settings.model.SettingsCategory +import net.newpipe.app.screen.settings.model.SettingsCategoryType import net.newpipe.app.viewmodel.settings.SettingsViewModel import newpipe.shared.generated.resources.Res import newpipe.shared.generated.resources.ic_search import newpipe.shared.generated.resources.search import newpipe.shared.generated.resources.settings -import org.jetbrains.compose.resources.DrawableResource -import org.jetbrains.compose.resources.StringResource import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource import org.koin.compose.koinInject import org.koin.compose.viewmodel.koinViewModel -data class SettingsCategory( - val title: StringResource, - val icon: DrawableResource, - // TODO: Replace with a Destination once sub-screens are migrated - val onClick: () -> Unit = {} -) - @Composable fun SettingsHomeScreen( navigator: Navigator = koinInject(), diff --git a/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/model/SettingsCategory.kt b/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/model/SettingsCategory.kt new file mode 100644 index 000000000..f10f1a724 --- /dev/null +++ b/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/model/SettingsCategory.kt @@ -0,0 +1,11 @@ +package net.newpipe.app.screen.settings.model + +import org.jetbrains.compose.resources.DrawableResource +import org.jetbrains.compose.resources.StringResource + +data class SettingsCategory( + val title: StringResource, + val icon: DrawableResource, + // TODO: Replace with a Destination once sub-screens are migrated + val onClick: () -> Unit = {} +) \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/SettingsCategoryType.kt b/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/model/SettingsCategoryType.kt similarity index 93% rename from shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/SettingsCategoryType.kt rename to shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/model/SettingsCategoryType.kt index f23e9210f..d6197dc14 100644 --- a/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/SettingsCategoryType.kt +++ b/shared/src/commonMain/kotlin/net/newpipe/app/screen/settings/model/SettingsCategoryType.kt @@ -1,9 +1,4 @@ -/* -* SPDX-FileCopyrightText: 2026 NewPipe e.V. -* SPDX-License-Identifier: GPL-3.0-or-later -*/ - -package net.newpipe.app.screen.settings +package net.newpipe.app.screen.settings.model import newpipe.shared.generated.resources.Res import newpipe.shared.generated.resources.content diff --git a/shared/src/commonMain/kotlin/net/newpipe/app/viewmodel/settings/SettingsViewModel.kt b/shared/src/commonMain/kotlin/net/newpipe/app/viewmodel/settings/SettingsViewModel.kt index e07fc583f..20d4f3056 100644 --- a/shared/src/commonMain/kotlin/net/newpipe/app/viewmodel/settings/SettingsViewModel.kt +++ b/shared/src/commonMain/kotlin/net/newpipe/app/viewmodel/settings/SettingsViewModel.kt @@ -7,16 +7,16 @@ package net.newpipe.app.viewmodel.settings import androidx.lifecycle.ViewModel import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.StateFlow import net.newpipe.app.platform.BuildInfo -import net.newpipe.app.screen.settings.SettingsCategoryType +import net.newpipe.app.screen.settings.model.SettingsCategoryType import org.koin.core.annotation.KoinViewModel @KoinViewModel class SettingsViewModel(buildInfo: BuildInfo) : ViewModel() { - private val _categories = MutableStateFlow(computeVisible(buildInfo)) - val categories = _categories.asStateFlow() + val categories: StateFlow> + field = MutableStateFlow(computeVisible(buildInfo)) private fun computeVisible(buildInfo: BuildInfo): List = SettingsCategoryType.entries.filter { type -> diff --git a/shared/src/iosMain/kotlin/net/newpipe/app/platform/IOSBuildInfo.kt b/shared/src/iosMain/kotlin/net/newpipe/app/platform/IOSBuildInfo.kt index bbf570a38..34818bcbc 100644 --- a/shared/src/iosMain/kotlin/net/newpipe/app/platform/IOSBuildInfo.kt +++ b/shared/src/iosMain/kotlin/net/newpipe/app/platform/IOSBuildInfo.kt @@ -6,4 +6,4 @@ import org.koin.core.annotation.Singleton class IOSBuildInfo : BuildInfo { override val isReleaseApk: Boolean = false override val isDebug: Boolean = false -} \ No newline at end of file +} diff --git a/shared/src/jvmMain/kotlin/net/newpipe/app/platform/JVMBuildInfo.kt b/shared/src/jvmMain/kotlin/net/newpipe/app/platform/JVMBuildInfo.kt index a202c5d97..952067c5f 100644 --- a/shared/src/jvmMain/kotlin/net/newpipe/app/platform/JVMBuildInfo.kt +++ b/shared/src/jvmMain/kotlin/net/newpipe/app/platform/JVMBuildInfo.kt @@ -6,4 +6,4 @@ import org.koin.core.annotation.Singleton class JVMBuildInfo : BuildInfo { override val isReleaseApk: Boolean = false override val isDebug: Boolean = false -} \ No newline at end of file +}