From 64d1ef89a692c8da150ccb6c579c56967b1a58b0 Mon Sep 17 00:00:00 2001 From: "Cuong M. Tran" Date: Tue, 30 Jan 2024 18:33:26 +0700 Subject: [PATCH] Move SourceSettingsButton to Presentation domain --- .../presentation/browse/SourcesScreen.kt | 40 ++---------------- .../browse/components/SourceSettingsButton.kt | 41 +++++++++++++++++++ 2 files changed, 45 insertions(+), 36 deletions(-) create mode 100644 app/src/main/java/eu/kanade/presentation/browse/components/SourceSettingsButton.kt diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt index deb75eeb4..c0022f249 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt @@ -25,7 +25,6 @@ import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.PushPin import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.outlined.PushPin -import androidx.compose.material.icons.outlined.Settings import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -56,16 +55,11 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import cafe.adriel.voyager.navigator.LocalNavigator -import cafe.adriel.voyager.navigator.currentOrThrow -import eu.kanade.domain.source.model.installedExtension import eu.kanade.presentation.browse.components.BaseSourceItem -import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsScreen +import eu.kanade.presentation.browse.components.SourceSettingsButton import eu.kanade.tachiyomi.ui.browse.source.SourcesScreenModel import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel.Listing import eu.kanade.tachiyomi.util.system.LocaleHelper -import exh.source.EH_SOURCE_ID -import exh.source.EXH_SOURCE_ID import kotlinx.collections.immutable.ImmutableList import tachiyomi.domain.source.model.Pin import tachiyomi.domain.source.model.Source @@ -83,7 +77,6 @@ import tachiyomi.presentation.core.util.clearFocusOnSoftKeyboardHide import tachiyomi.presentation.core.util.plus import tachiyomi.presentation.core.util.runOnEnterKeyPressed import tachiyomi.presentation.core.util.secondaryItemAlpha -import tachiyomi.source.local.LocalSource import tachiyomi.source.local.isLocal @Composable @@ -389,13 +382,9 @@ private fun SourceItem( ) } // SY <-- - // AM (BROWSE) --> - if (source.id != LocalSource.ID) { - SourceSettingsButton( - source = source, - ) - } - // <-- AM (BROWSE) + // KMK --> + SourceSettingsButton(source = source) + // KMK <-- }, ) } @@ -423,27 +412,6 @@ private fun SourcePinButton( } } -// AM (BROWSE) --> -@Composable -private fun SourceSettingsButton( - source: Source, -) { - // Avoid E-Hentai & ExHentai which is built-in & not actually installed extensions - if (source.id == EH_SOURCE_ID || source.id == EXH_SOURCE_ID) return - val navigator = LocalNavigator.currentOrThrow - IconButton(onClick = { - if (source.installedExtension !== null) - navigator.push(ExtensionDetailsScreen(source.installedExtension!!.pkgName)) - }) { - Icon( - imageVector = Icons.Outlined.Settings, - tint = MaterialTheme.colorScheme.primary, - contentDescription = stringResource(MR.strings.label_settings), - ) - } -} -// <-- AM (BROWSE) - @Composable fun SourceOptionsDialog( source: Source, diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/SourceSettingsButton.kt b/app/src/main/java/eu/kanade/presentation/browse/components/SourceSettingsButton.kt new file mode 100644 index 000000000..ef00d4784 --- /dev/null +++ b/app/src/main/java/eu/kanade/presentation/browse/components/SourceSettingsButton.kt @@ -0,0 +1,41 @@ +package eu.kanade.presentation.browse.components + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Settings +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import cafe.adriel.voyager.navigator.LocalNavigator +import cafe.adriel.voyager.navigator.currentOrThrow +import eu.kanade.domain.source.model.installedExtension +import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsScreen +import exh.source.EH_SOURCE_ID +import exh.source.EXH_SOURCE_ID +import tachiyomi.domain.source.model.Source +import tachiyomi.i18n.MR +import tachiyomi.presentation.core.i18n.stringResource +import tachiyomi.source.local.LocalSource + +// KMK --> +@Composable +fun SourceSettingsButton( + source: Source, + @Suppress("UNUSED_PARAMETER") modifier: Modifier = Modifier +) { + // Avoid E-Hentai & ExHentai which is built-in & not actually installed extensions + if (source.id == LocalSource.ID || source.id == EH_SOURCE_ID || source.id == EXH_SOURCE_ID) return + val navigator = LocalNavigator.currentOrThrow + IconButton(onClick = { + if (source.installedExtension !== null) + navigator.push(ExtensionDetailsScreen(source.installedExtension!!.pkgName)) + }) { + Icon( + imageVector = Icons.Outlined.Settings, + tint = MaterialTheme.colorScheme.primary, + contentDescription = stringResource(MR.strings.label_settings), + ) + } +} +// KMK <--