diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/EntityMapping.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/EntityMapping.kt index 5960cb5e5..467fcab9a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/db/entity/EntityMapping.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/db/entity/EntityMapping.kt @@ -11,7 +11,7 @@ import org.koitharu.kotatsu.utils.ext.longHashCode fun TagEntity.toMangaTag() = MangaTag( key = this.key, title = this.title.toTitleCase(), - source = MangaSource(this.source) ?: MangaSource.DUMMY, + source = MangaSource(this.source), ) fun Collection.toMangaTags() = mapToSet(TagEntity::toMangaTag) @@ -28,7 +28,7 @@ fun MangaEntity.toManga(tags: Set) = Manga( coverUrl = this.coverUrl, largeCoverUrl = this.largeCoverUrl, author = this.author, - source = MangaSource(this.source) ?: MangaSource.DUMMY, + source = MangaSource(this.source), tags = tags, ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt index 22c2319bf..341796c1e 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt @@ -1,18 +1,17 @@ package org.koitharu.kotatsu.core.model -import java.util.* import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.util.toTitleCase +import java.util.Locale fun MangaSource.getLocaleTitle(): String? { val lc = Locale(locale ?: return null) return lc.getDisplayLanguage(lc).toTitleCase(lc) } -@Suppress("FunctionName") -fun MangaSource(name: String): MangaSource? { +fun MangaSource(name: String): MangaSource { MangaSource.values().forEach { if (it.name == name) return it } - return null -} \ No newline at end of file + return MangaSource.DUMMY +} diff --git a/app/src/debug/java/org/koitharu/kotatsu/core/parser/MangaParser.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/MangaParser.kt similarity index 100% rename from app/src/debug/java/org/koitharu/kotatsu/core/parser/MangaParser.kt rename to app/src/main/java/org/koitharu/kotatsu/core/parser/MangaParser.kt diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt index 957b1c846..ee052cfdd 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/favicon/FaviconFetcher.kt @@ -14,7 +14,6 @@ import coil.network.HttpException import coil.request.Options import coil.size.Size import coil.size.pxOrElse -import java.net.HttpURLConnection import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response @@ -27,6 +26,7 @@ import org.koitharu.kotatsu.core.parser.RemoteMangaRepository import org.koitharu.kotatsu.local.data.CacheDir import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.util.await +import java.net.HttpURLConnection private const val FALLBACK_SIZE = 9999 // largest icon @@ -150,7 +150,7 @@ class FaviconFetcher( override fun create(data: Uri, options: Options, imageLoader: ImageLoader): Fetcher? { return if (data.scheme == URI_SCHEME_FAVICON) { - val mangaSource = MangaSource(data.schemeSpecificPart) ?: return null + val mangaSource = MangaSource(data.schemeSpecificPart) FaviconFetcher(okHttpClient, diskCache, mangaSource, options, mangaRepositoryFactory) } else { null diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt index 1672657fd..82a7400b0 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt @@ -30,7 +30,7 @@ class OnboardViewModel @Inject constructor( init { if (settings.isSourcesSelected) { - selectedLocales.removeAll(settings.hiddenSources.mapNotNullToSet { x -> MangaSource(x)?.locale }) + selectedLocales.removeAll(settings.hiddenSources.mapNotNullToSet { x -> MangaSource(x).locale }) } else { val deviceLocales = LocaleListCompat.getDefault().mapToSet { x -> x.language diff --git a/app/src/release/java/org/koitharu/kotatsu/core/parser/DummyParser.kt b/app/src/release/java/org/koitharu/kotatsu/core/parser/DummyParser.kt new file mode 100644 index 000000000..10779ef79 --- /dev/null +++ b/app/src/release/java/org/koitharu/kotatsu/core/parser/DummyParser.kt @@ -0,0 +1,39 @@ +package org.koitharu.kotatsu.core.parser + +import org.koitharu.kotatsu.parsers.MangaLoaderContext +import org.koitharu.kotatsu.parsers.MangaParser +import org.koitharu.kotatsu.parsers.config.ConfigKey +import org.koitharu.kotatsu.parsers.exception.NotFoundException +import org.koitharu.kotatsu.parsers.model.Manga +import org.koitharu.kotatsu.parsers.model.MangaChapter +import org.koitharu.kotatsu.parsers.model.MangaPage +import org.koitharu.kotatsu.parsers.model.MangaSource +import org.koitharu.kotatsu.parsers.model.MangaTag +import org.koitharu.kotatsu.parsers.model.SortOrder +import java.util.EnumSet + +class DummyParser(override val context: MangaLoaderContext) : MangaParser(MangaSource.DUMMY) { + + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("localhost", null) + + override val sortOrders: Set + get() = EnumSet.allOf(SortOrder::class.java) + + override suspend fun getDetails(manga: Manga): Manga = stub() + + override suspend fun getList( + offset: Int, + query: String?, + tags: Set?, + sortOrder: SortOrder, + ): List = stub() + + override suspend fun getPages(chapter: MangaChapter): List = stub() + + override suspend fun getTags(): Set = stub() + + private fun stub(): Nothing { + throw NotFoundException("Usage of Dummy parser in release build", "") + } +} diff --git a/app/src/release/java/org/koitharu/kotatsu/core/parser/MangaParser.kt b/app/src/release/java/org/koitharu/kotatsu/core/parser/MangaParser.kt deleted file mode 100644 index a8f4377e5..000000000 --- a/app/src/release/java/org/koitharu/kotatsu/core/parser/MangaParser.kt +++ /dev/null @@ -1,10 +0,0 @@ -package org.koitharu.kotatsu.core.parser - -import org.koitharu.kotatsu.parsers.MangaLoaderContext -import org.koitharu.kotatsu.parsers.MangaParser -import org.koitharu.kotatsu.parsers.model.MangaSource -import org.koitharu.kotatsu.parsers.newParser - -fun MangaParser(source: MangaSource, loaderContext: MangaLoaderContext): MangaParser { - return source.newParser(loaderContext) -} \ No newline at end of file