diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/NamespaceSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/NamespaceSource.kt new file mode 100644 index 000000000..58f47bf54 --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/NamespaceSource.kt @@ -0,0 +1,3 @@ +package eu.kanade.tachiyomi.source.online + +interface NamespaceSource diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt index b6d0d4746..378e6f8c0 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt @@ -26,6 +26,7 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.MetadataSource +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.asJsoup @@ -79,7 +80,10 @@ class EHentai( override val id: Long, val exh: Boolean, val context: Context -) : HttpSource(), MetadataSource, UrlImportableSource { +) : HttpSource(), + MetadataSource, + UrlImportableSource, + NamespaceSource { override val metaClass = EHentaiSearchMetadata::class private val domain: String diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt index 34072addb..bf2cb7acc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt @@ -9,6 +9,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.MetadataSource +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.asJsoup @@ -26,7 +27,8 @@ import java.util.Locale class Hitomi(delegate: HttpSource, val context: Context) : DelegatedHttpSource(delegate), MetadataSource, - UrlImportableSource { + UrlImportableSource, + NamespaceSource { override val metaClass = HitomiSearchMetadata::class override val lang = if (id == otherId) "all" else delegate.lang diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt index 882d5a126..40a1e8bb9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt @@ -14,6 +14,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.MetadataSource +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import exh.metadata.metadata.NHentaiSearchMetadata @@ -28,7 +29,8 @@ import rx.Observable class NHentai(delegate: HttpSource, val context: Context) : DelegatedHttpSource(delegate), MetadataSource, - UrlImportableSource { + UrlImportableSource, + NamespaceSource { override val metaClass = NHentaiSearchMetadata::class override val lang = if (id == otherId) "all" else delegate.lang diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/EightMuses.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/EightMuses.kt index c823b0ad2..05e32b9e2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/EightMuses.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/EightMuses.kt @@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.MetadataSource +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.asJsoup @@ -23,7 +24,8 @@ import rx.Observable class EightMuses(delegate: HttpSource, val context: Context) : DelegatedHttpSource(delegate), MetadataSource, - UrlImportableSource { + UrlImportableSource, + NamespaceSource { override val metaClass = EightMusesSearchMetadata::class override val lang = "en" diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt index 02eb86eb0..3240fcfcc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt @@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.MetadataSource +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.asJsoup @@ -23,7 +24,8 @@ import rx.Observable class HBrowse(delegate: HttpSource, val context: Context) : DelegatedHttpSource(delegate), MetadataSource, - UrlImportableSource { + UrlImportableSource, + NamespaceSource { override val metaClass = HBrowseSearchMetadata::class override val lang = "en" diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt index 47cc482fc..9b0b6aeb6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt @@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.MetadataSource +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.asJsoup @@ -25,7 +26,8 @@ import rx.Observable class Pururin(delegate: HttpSource, val context: Context) : DelegatedHttpSource(delegate), MetadataSource, - UrlImportableSource { + UrlImportableSource, + NamespaceSource { /** * An ISO 639-1 compliant language code (two letters in lower case). */ diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt index 5ad29caa6..10c23000b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt @@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.MetadataSource +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.asJsoup @@ -28,7 +29,8 @@ import java.util.Locale class Tsumino(delegate: HttpSource, val context: Context) : DelegatedHttpSource(delegate), MetadataSource, - UrlImportableSource { + UrlImportableSource, + NamespaceSource { override val metaClass = TsuminoSearchMetadata::class override val lang = "en" diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt index 35498797b..56823d6da 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt @@ -18,9 +18,10 @@ import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.preference.PreferenceValues.DisplayMode import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.source.SourceManager +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.widget.AutofitRecyclerView -import exh.isNamespaceSource import exh.metadata.metadata.base.RaisedTag +import exh.source.EnhancedHttpSource.Companion.getMainSource import exh.util.SourceTagsUtil.Companion.TAG_TYPE_EXCLUDE import exh.util.SourceTagsUtil.Companion.getRaisedTags import exh.util.SourceTagsUtil.Companion.parseTag @@ -134,7 +135,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe private fun ehContainsGenre(constraint: String): Boolean { val genres = manga.getGenres() - val raisedTags = if (source?.isNamespaceSource() == true) { + val raisedTags = if (source?.getMainSource() is NamespaceSource) { manga.getRaisedTags(genres) } else null return if (constraint.contains(" ") || constraint.contains("\"")) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt index f564b7aa1..fda384abe 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt @@ -14,12 +14,13 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.databinding.MangaInfoItemBinding import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.system.copyToClipboard import exh.isEhBasedSource -import exh.isNamespaceSource import exh.metadata.metadata.base.RaisedSearchMetadata import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL +import exh.source.EnhancedHttpSource.Companion.getMainSource import exh.util.SourceTagsUtil.Companion.getRaisedTags import exh.util.makeSearchChip import exh.util.setChipsExtended @@ -135,7 +136,7 @@ class MangaInfoItemAdapter( // Update genres list if (!manga.genre.isNullOrBlank()) { // SY --> - if (source != null && source.isNamespaceSource()) { + if (source != null && source.getMainSource() is NamespaceSource) { val metaTags = meta?.tags?.filterNot { it.type == TAG_TYPE_VIRTUAL }?.groupBy { it.namespace } var namespaceTags: List = emptyList() if (source.isEhBasedSource() && metaTags != null && metaTags.all { it.key != null }) { @@ -201,7 +202,7 @@ class MangaInfoItemAdapter( binding.mangaGenresTagsCompact.isVisible = isCurrentlyExpanded // SY --> - if (!source.isNamespaceSource()) { + if (source.getMainSource() !is NamespaceSource) { binding.mangaGenresTagsFullChips.isVisible = !isCurrentlyExpanded } else { binding.genreGroups.isVisible = !isCurrentlyExpanded diff --git a/app/src/main/java/exh/EHSourceHelpers.kt b/app/src/main/java/exh/EHSourceHelpers.kt index eb563ce2b..cd8b6c8d7 100755 --- a/app/src/main/java/exh/EHSourceHelpers.kt +++ b/app/src/main/java/exh/EHSourceHelpers.kt @@ -86,5 +86,3 @@ val LIBRARY_UPDATE_EXCLUDED_SOURCES by lazy { } fun Source.isEhBasedSource() = id == EH_SOURCE_ID || id == EXH_SOURCE_ID - -fun Source.isNamespaceSource() = id == EH_SOURCE_ID || id == EXH_SOURCE_ID || id in nHentaiSourceIds || id in hitomiSourceIds || id == PURURIN_SOURCE_ID || id == TSUMINO_SOURCE_ID || id == EIGHTMUSES_SOURCE_ID || id == HBROWSE_SOURCE_ID