feat(incognito): add incognito mode for local sources (#903)
This commit is contained in:
parent
8a2b063cd9
commit
615c9fa259
5 changed files with 22 additions and 26 deletions
|
|
@ -2,7 +2,6 @@ package eu.kanade.presentation.browse.components
|
|||
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ViewList
|
||||
import androidx.compose.material.icons.automirrored.outlined.Help
|
||||
import androidx.compose.material.icons.filled.ViewModule
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
||||
|
|
@ -17,9 +16,7 @@ import eu.kanade.presentation.components.AppBarTitle
|
|||
import eu.kanade.presentation.components.DropdownMenu
|
||||
import eu.kanade.presentation.components.RadioMenuItem
|
||||
import eu.kanade.presentation.components.SearchToolbar
|
||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import exh.source.anyIs
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.i18n.MR
|
||||
|
|
@ -51,7 +48,6 @@ fun BrowseSourceToolbar(
|
|||
// Avoid capturing unstable source in actions lambda
|
||||
val title = source?.name
|
||||
val isLocalSource = source is LocalSource
|
||||
val isConfigurableSource = source?.anyIs<ConfigurableSource>() == true
|
||||
|
||||
var selectingDisplayMode by remember { mutableStateOf(false) }
|
||||
|
||||
|
|
@ -81,26 +77,6 @@ fun BrowseSourceToolbar(
|
|||
}
|
||||
// KMK -->
|
||||
add(bulkSelectionButton(isRunning, toggleSelectionMode))
|
||||
// KMK <--
|
||||
if (isLocalSource) {
|
||||
if (isConfigurableSource && displayMode != null) {
|
||||
add(
|
||||
AppBar.OverflowAction(
|
||||
title = stringResource(MR.strings.label_help),
|
||||
onClick = onHelpClick,
|
||||
),
|
||||
)
|
||||
} else {
|
||||
add(
|
||||
AppBar.Action(
|
||||
title = stringResource(MR.strings.label_help),
|
||||
icon = Icons.AutoMirrored.Outlined.Help,
|
||||
onClick = onHelpClick,
|
||||
),
|
||||
)
|
||||
}
|
||||
} else {
|
||||
// KMK -->
|
||||
add(
|
||||
AppBar.OverflowAction(
|
||||
title = stringResource(MR.strings.pref_incognito_mode),
|
||||
|
|
@ -108,6 +84,14 @@ fun BrowseSourceToolbar(
|
|||
),
|
||||
)
|
||||
// KMK <--
|
||||
if (isLocalSource) {
|
||||
add(
|
||||
AppBar.OverflowAction(
|
||||
title = stringResource(MR.strings.label_help),
|
||||
onClick = onHelpClick,
|
||||
),
|
||||
)
|
||||
} else {
|
||||
add(
|
||||
AppBar.OverflowAction(
|
||||
title = stringResource(MR.strings.action_web_view),
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.source
|
|||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||
import exh.source.EH_PACKAGE
|
||||
import exh.source.LOCAL_SOURCE_PACKAGE
|
||||
import exh.source.isEhBasedSource
|
||||
import tachiyomi.domain.source.model.StubSource
|
||||
import tachiyomi.presentation.core.icons.FlagEmoji
|
||||
|
|
@ -83,7 +84,11 @@ fun Source.isLocalOrStub(): Boolean = isLocal() || this is StubSource
|
|||
|
||||
// KMK -->
|
||||
fun Source.isIncognitoModeEnabled(incognitoExtensions: Set<String>? = null): Boolean {
|
||||
val extensionPackage = if (isEhBasedSource()) EH_PACKAGE else Injekt.get<ExtensionManager>().getExtensionPackage(id)
|
||||
val extensionPackage = when {
|
||||
isLocal() -> LOCAL_SOURCE_PACKAGE
|
||||
isEhBasedSource() -> EH_PACKAGE
|
||||
else -> Injekt.get<ExtensionManager>().getExtensionPackage(id)
|
||||
}
|
||||
return extensionPackage in (incognitoExtensions ?: Injekt.get<SourcePreferences>().incognitoExtensions().get())
|
||||
}
|
||||
// KMK <--
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import eu.kanade.tachiyomi.source.online.all.MangaDex
|
|||
import eu.kanade.tachiyomi.util.removeCovers
|
||||
import exh.metadata.metadata.RaisedSearchMetadata
|
||||
import exh.source.EH_PACKAGE
|
||||
import exh.source.LOCAL_SOURCE_PACKAGE
|
||||
import exh.source.getMainSource
|
||||
import exh.source.isEhBasedSource
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
|
@ -81,6 +82,7 @@ import tachiyomi.domain.source.model.StubSource
|
|||
import tachiyomi.domain.source.repository.SourcePagingSource
|
||||
import tachiyomi.domain.source.service.SourceManager
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.source.local.isLocal
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import xyz.nulldev.ts.api.http.serializer.FilterSerializer
|
||||
|
|
@ -215,6 +217,7 @@ open class BrowseSourceScreenModel(
|
|||
fun toggleIncognitoMode() {
|
||||
val packageName = when {
|
||||
source is StubSource -> null
|
||||
source.isLocal() -> LOCAL_SOURCE_PACKAGE
|
||||
source.isEhBasedSource() -> EH_PACKAGE
|
||||
else -> extensionManager.getExtensionPackage(sourceId)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import eu.kanade.tachiyomi.source.model.FilterList
|
|||
import eu.kanade.tachiyomi.source.online.all.MangaDex
|
||||
import eu.kanade.tachiyomi.ui.browse.feed.MaxFeedItems
|
||||
import exh.source.EH_PACKAGE
|
||||
import exh.source.LOCAL_SOURCE_PACKAGE
|
||||
import exh.source.getMainSource
|
||||
import exh.source.isEhBasedSource
|
||||
import exh.source.mangaDexSourceIds
|
||||
|
|
@ -60,6 +61,7 @@ import tachiyomi.domain.source.model.StubSource
|
|||
import tachiyomi.domain.source.service.SourceManager
|
||||
import tachiyomi.i18n.kmk.KMR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.source.local.isLocal
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import xyz.nulldev.ts.api.http.serializer.FilterSerializer
|
||||
|
|
@ -141,6 +143,7 @@ open class SourceFeedScreenModel(
|
|||
fun toggleIncognitoMode() {
|
||||
val packageName = when {
|
||||
source is StubSource -> null
|
||||
source.isLocal() -> LOCAL_SOURCE_PACKAGE
|
||||
source.isEhBasedSource() -> EH_PACKAGE
|
||||
else -> extensionManager.getExtensionPackage(sourceId)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ const val LEWD_SOURCE_SERIES = 6900L
|
|||
const val EH_SOURCE_ID = 1713178126840476467 // LEWD_SOURCE_SERIES + 1
|
||||
const val EXH_SOURCE_ID = 6225928719850211219 // LEWD_SOURCE_SERIES + 2
|
||||
const val EH_PACKAGE = "eu.kanade.tachiyomi.extension.all.ehentai"
|
||||
const val LOCAL_SOURCE_PACKAGE = "tachiyomi.source.local"
|
||||
// KMK <--
|
||||
|
||||
const val NHENTAI_SOURCE_ID = 7309872737163460316L
|
||||
|
|
|
|||
Loading…
Reference in a new issue