From 9c3cc1ca5f0011c4b3638d8f5272080d219bfb2e Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Thu, 23 Jul 2026 22:47:24 +0600 Subject: [PATCH] Convert :source-api and :source-local to android library module (#3636) - There's really no plan to support other platforms on this code base - The "KMP" modules only had android target which is rather pointless - `i18n` involves more work but given it has no actual code keeping it as is --- data/build.gradle.kts | 2 + source-api/build.gradle.kts | 56 ++++++----------- .../tachiyomi/source/PreferenceScreen.kt | 3 - .../tachiyomi/source/PreferenceScreen.kt | 3 - .../eu/kanade/tachiyomi/util/RxExtension.kt | 5 -- .../{androidMain => main}/AndroidManifest.xml | 0 .../tachiyomi/source/CatalogueSource.kt | 0 .../tachiyomi/source/ConfigurableSource.kt | 1 + .../eu/kanade/tachiyomi/source/Source.kt | 0 .../kanade/tachiyomi/source/SourceFactory.kt | 0 .../tachiyomi/source/UnmeteredSource.kt | 0 .../kanade/tachiyomi/source/model/Filter.kt | 0 .../tachiyomi/source/model/FilterList.kt | 0 .../tachiyomi/source/model/MangasPage.kt | 0 .../eu/kanade/tachiyomi/source/model/Page.kt | 0 .../kanade/tachiyomi/source/model/SChapter.kt | 0 .../tachiyomi/source/model/SChapterImpl.kt | 0 .../kanade/tachiyomi/source/model/SManga.kt | 0 .../tachiyomi/source/model/SMangaImpl.kt | 0 .../tachiyomi/source/model/SMangaUpdate.kt | 0 .../tachiyomi/source/model/UpdateStrategy.kt | 0 .../tachiyomi/source/online/HttpSource.kt | 0 .../source/online/ParsedHttpSource.kt | 0 .../source/online/ResolvableSource.kt | 0 .../kanade/tachiyomi/util/JsoupExtensions.kt | 0 .../eu/kanade/tachiyomi/util/RxExtension.kt | 2 +- source-local/build.gradle.kts | 60 +++++++------------ .../tachiyomi/source/local/LocalSource.kt | 6 -- .../source/local/image/LocalCoverManager.kt | 12 ---- .../source/local/io/LocalSourceFileSystem.kt | 14 ----- .../{androidMain => main}/AndroidManifest.xml | 0 .../tachiyomi/source/local/LocalSource.kt | 2 +- .../tachiyomi/source/local/filter/OrderBy.kt | 0 .../source/local/image/LocalCoverManager.kt | 6 +- .../tachiyomi/source/local/io/Archive.kt | 0 .../tachiyomi/source/local/io/Format.kt | 0 .../source/local/io/LocalSourceFileSystem.kt | 10 ++-- .../local/metadata/EpubReaderExtensions.kt | 0 38 files changed, 54 insertions(+), 128 deletions(-) delete mode 100644 source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt delete mode 100644 source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt delete mode 100644 source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt rename source-api/src/{androidMain => main}/AndroidManifest.xml (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt (95%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/Source.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/Page.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/SMangaUpdate.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt (100%) rename source-api/src/{commonMain => main}/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt (100%) rename source-api/src/{androidMain => main}/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt (60%) delete mode 100644 source-local/src/commonMain/kotlin/tachiyomi/source/local/LocalSource.kt delete mode 100644 source-local/src/commonMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt delete mode 100644 source-local/src/commonMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt rename source-local/src/{androidMain => main}/AndroidManifest.xml (100%) rename source-local/src/{androidMain => main}/kotlin/tachiyomi/source/local/LocalSource.kt (99%) rename source-local/src/{androidMain => main}/kotlin/tachiyomi/source/local/filter/OrderBy.kt (100%) rename source-local/src/{androidMain => main}/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt (93%) rename source-local/src/{commonMain => main}/kotlin/tachiyomi/source/local/io/Archive.kt (100%) rename source-local/src/{commonMain => main}/kotlin/tachiyomi/source/local/io/Format.kt (100%) rename source-local/src/{androidMain => main}/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt (65%) rename source-local/src/{androidMain => main}/kotlin/tachiyomi/source/local/metadata/EpubReaderExtensions.kt (100%) diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 88afea425..3612653b7 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -36,5 +36,7 @@ dependencies { implementation(libs.kotlinx.serialization.jsonOkio) implementation(libs.kotlinx.serialization.protobuf) + implementation(libs.injekt) + api(libs.bundles.sqldelight) } diff --git a/source-api/build.gradle.kts b/source-api/build.gradle.kts index 5c06d6513..b65d91e68 100644 --- a/source-api/build.gradle.kts +++ b/source-api/build.gradle.kts @@ -1,46 +1,28 @@ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi - plugins { - alias(mihonx.plugins.kotlin.multiplatform) + alias(mihonx.plugins.android.library) alias(mihonx.plugins.spotless) alias(libs.plugins.kotlin.serialization) } -kotlin { - @Suppress("UnstableApiUsage") - android { - namespace = "eu.kanade.tachiyomi.source" - optimization { - consumerKeepRules.file("consumer-proguard.pro") - } +android { + namespace = "eu.kanade.tachiyomi.source" - // TODO(antsy): Remove when https://youtrack.jetbrains.com/issue/KT-83319 is resolved - withHostTest { } - } - - @OptIn(ExperimentalKotlinGradlePluginApi::class) - dependencies { - api(libs.kotlinx.serialization.json) - api(libs.injekt) - api(libs.rxJava) - api(libs.jsoup) - - implementation(platform(libs.androidx.compose.bom)) - implementation(libs.androidx.compose.runtime) - } - - sourceSets { - androidMain { - dependencies { - implementation(projects.core.common) - api(libs.androidx.preference) - } - } - } - - @OptIn(ExperimentalKotlinGradlePluginApi::class) - compilerOptions { - freeCompilerArgs.add("-Xexpect-actual-classes") + defaultConfig { + consumerProguardFiles("consumer-proguard.pro") } } + +dependencies { + implementation(projects.core.common) + + implementation(libs.kotlinx.serialization.json) + implementation(libs.injekt) + implementation(libs.rxJava) + implementation(libs.jsoup) + + implementation(libs.androidx.preference) + + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.runtime) +} diff --git a/source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt b/source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt deleted file mode 100644 index 58a247ce3..000000000 --- a/source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt +++ /dev/null @@ -1,3 +0,0 @@ -package eu.kanade.tachiyomi.source - -actual typealias PreferenceScreen = androidx.preference.PreferenceScreen diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt deleted file mode 100644 index 860591e29..000000000 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/PreferenceScreen.kt +++ /dev/null @@ -1,3 +0,0 @@ -package eu.kanade.tachiyomi.source - -expect class PreferenceScreen diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt deleted file mode 100644 index 5b8420d41..000000000 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt +++ /dev/null @@ -1,5 +0,0 @@ -package eu.kanade.tachiyomi.util - -import rx.Observable - -expect suspend fun Observable.awaitSingle(): T diff --git a/source-api/src/androidMain/AndroidManifest.xml b/source-api/src/main/AndroidManifest.xml similarity index 100% rename from source-api/src/androidMain/AndroidManifest.xml rename to source-api/src/main/AndroidManifest.xml diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt similarity index 95% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt index db9a98520..0a4043897 100644 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt +++ b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.source import android.app.Application import android.content.Context import android.content.SharedPreferences +import androidx.preference.PreferenceScreen import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/Source.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/Source.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/Page.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/Page.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaUpdate.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaUpdate.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaUpdate.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaUpdate.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt similarity index 100% rename from source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt diff --git a/source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt b/source-api/src/main/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt similarity index 60% rename from source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt rename to source-api/src/main/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt index 43fe01d83..511fc93ce 100644 --- a/source-api/src/androidMain/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt +++ b/source-api/src/main/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt @@ -3,4 +3,4 @@ package eu.kanade.tachiyomi.util import rx.Observable import tachiyomi.core.common.util.lang.awaitSingle -actual suspend fun Observable.awaitSingle(): T = awaitSingle() +suspend fun Observable.awaitSingle(): T = awaitSingle() diff --git a/source-local/build.gradle.kts b/source-local/build.gradle.kts index 65b10d014..b3117fe8a 100644 --- a/source-local/build.gradle.kts +++ b/source-local/build.gradle.kts @@ -1,46 +1,30 @@ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi - plugins { - alias(mihonx.plugins.kotlin.multiplatform) + alias(mihonx.plugins.android.library) alias(mihonx.plugins.spotless) } +android { + namespace = "tachiyomi.source.local" +} + kotlin { - android { - namespace = "tachiyomi.source.local" - - // TODO(antsy): Remove when https://youtrack.jetbrains.com/issue/KT-83319 is resolved - withHostTest { } - } - - @OptIn(ExperimentalKotlinGradlePluginApi::class) - dependencies { - implementation(projects.sourceApi) - api(projects.i18n) - - implementation(libs.unifile) - } - - sourceSets { - androidMain { - dependencies { - implementation(projects.core.archive) - implementation(projects.core.common) - implementation(projects.coreMetadata) - - // Move ChapterRecognition to separate module? - implementation(projects.domain) - - implementation(libs.bundles.serialization) - } - } - } - - @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { - freeCompilerArgs.addAll( - "-Xexpect-actual-classes", - "-opt-in=kotlinx.serialization.ExperimentalSerializationApi", - ) + optIn.add("kotlinx.serialization.ExperimentalSerializationApi") } } + +dependencies { + implementation(projects.sourceApi) + implementation(projects.i18n) + + implementation(projects.core.archive) + implementation(projects.core.common) + implementation(projects.coreMetadata) + implementation(projects.domain) + + implementation(libs.unifile) + implementation(libs.bundles.serialization) + + implementation(libs.injekt) + implementation(libs.jsoup) +} diff --git a/source-local/src/commonMain/kotlin/tachiyomi/source/local/LocalSource.kt b/source-local/src/commonMain/kotlin/tachiyomi/source/local/LocalSource.kt deleted file mode 100644 index 522139ba9..000000000 --- a/source-local/src/commonMain/kotlin/tachiyomi/source/local/LocalSource.kt +++ /dev/null @@ -1,6 +0,0 @@ -package tachiyomi.source.local - -import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.UnmeteredSource - -expect class LocalSource : Source, UnmeteredSource diff --git a/source-local/src/commonMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt b/source-local/src/commonMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt deleted file mode 100644 index 037d9f1dc..000000000 --- a/source-local/src/commonMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt +++ /dev/null @@ -1,12 +0,0 @@ -package tachiyomi.source.local.image - -import com.hippo.unifile.UniFile -import eu.kanade.tachiyomi.source.model.SManga -import java.io.InputStream - -expect class LocalCoverManager { - - fun find(mangaUrl: String): UniFile? - - fun update(manga: SManga, inputStream: InputStream): UniFile? -} diff --git a/source-local/src/commonMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt b/source-local/src/commonMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt deleted file mode 100644 index 5aa74d851..000000000 --- a/source-local/src/commonMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt +++ /dev/null @@ -1,14 +0,0 @@ -package tachiyomi.source.local.io - -import com.hippo.unifile.UniFile - -expect class LocalSourceFileSystem { - - fun getBaseDirectory(): UniFile? - - fun getFilesInBaseDirectory(): List - - fun getMangaDirectory(name: String): UniFile? - - fun getFilesInMangaDirectory(name: String): List -} diff --git a/source-local/src/androidMain/AndroidManifest.xml b/source-local/src/main/AndroidManifest.xml similarity index 100% rename from source-local/src/androidMain/AndroidManifest.xml rename to source-local/src/main/AndroidManifest.xml diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt b/source-local/src/main/kotlin/tachiyomi/source/local/LocalSource.kt similarity index 99% rename from source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt rename to source-local/src/main/kotlin/tachiyomi/source/local/LocalSource.kt index d2e925ca6..e5a307f37 100644 --- a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt +++ b/source-local/src/main/kotlin/tachiyomi/source/local/LocalSource.kt @@ -47,7 +47,7 @@ import java.nio.charset.StandardCharsets import kotlin.time.Duration.Companion.days import tachiyomi.domain.source.model.Source as DomainSource -actual class LocalSource( +class LocalSource( private val context: Context, private val fileSystem: LocalSourceFileSystem, private val coverManager: LocalCoverManager, diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/filter/OrderBy.kt b/source-local/src/main/kotlin/tachiyomi/source/local/filter/OrderBy.kt similarity index 100% rename from source-local/src/androidMain/kotlin/tachiyomi/source/local/filter/OrderBy.kt rename to source-local/src/main/kotlin/tachiyomi/source/local/filter/OrderBy.kt diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt b/source-local/src/main/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt similarity index 93% rename from source-local/src/androidMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt rename to source-local/src/main/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt index a54e3e7e4..ce0c8b44e 100644 --- a/source-local/src/androidMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt +++ b/source-local/src/main/kotlin/tachiyomi/source/local/image/LocalCoverManager.kt @@ -11,12 +11,12 @@ import java.io.InputStream private const val DEFAULT_COVER_NAME = "cover.jpg" -actual class LocalCoverManager( +class LocalCoverManager( private val context: Context, private val fileSystem: LocalSourceFileSystem, ) { - actual fun find(mangaUrl: String): UniFile? { + fun find(mangaUrl: String): UniFile? { return fileSystem.getFilesInMangaDirectory(mangaUrl) // Get all file whose names start with "cover" .filter { it.isFile && it.nameWithoutExtension.equals("cover", ignoreCase = true) } @@ -24,7 +24,7 @@ actual class LocalCoverManager( .firstOrNull { ImageUtil.isImage(it.name) { it.openInputStream() } } } - actual fun update( + fun update( manga: SManga, inputStream: InputStream, ): UniFile? { diff --git a/source-local/src/commonMain/kotlin/tachiyomi/source/local/io/Archive.kt b/source-local/src/main/kotlin/tachiyomi/source/local/io/Archive.kt similarity index 100% rename from source-local/src/commonMain/kotlin/tachiyomi/source/local/io/Archive.kt rename to source-local/src/main/kotlin/tachiyomi/source/local/io/Archive.kt diff --git a/source-local/src/commonMain/kotlin/tachiyomi/source/local/io/Format.kt b/source-local/src/main/kotlin/tachiyomi/source/local/io/Format.kt similarity index 100% rename from source-local/src/commonMain/kotlin/tachiyomi/source/local/io/Format.kt rename to source-local/src/main/kotlin/tachiyomi/source/local/io/Format.kt diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt b/source-local/src/main/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt similarity index 65% rename from source-local/src/androidMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt rename to source-local/src/main/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt index 69faaa2b7..ea071ec5f 100644 --- a/source-local/src/androidMain/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt +++ b/source-local/src/main/kotlin/tachiyomi/source/local/io/LocalSourceFileSystem.kt @@ -3,25 +3,25 @@ package tachiyomi.source.local.io import com.hippo.unifile.UniFile import tachiyomi.domain.storage.service.StorageManager -actual class LocalSourceFileSystem( +class LocalSourceFileSystem( private val storageManager: StorageManager, ) { - actual fun getBaseDirectory(): UniFile? { + fun getBaseDirectory(): UniFile? { return storageManager.getLocalSourceDirectory() } - actual fun getFilesInBaseDirectory(): List { + fun getFilesInBaseDirectory(): List { return getBaseDirectory()?.listFiles().orEmpty().toList() } - actual fun getMangaDirectory(name: String): UniFile? { + fun getMangaDirectory(name: String): UniFile? { return getBaseDirectory() ?.findFile(name) ?.takeIf { it.isDirectory } } - actual fun getFilesInMangaDirectory(name: String): List { + fun getFilesInMangaDirectory(name: String): List { return getMangaDirectory(name)?.listFiles().orEmpty().toList() } } diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/metadata/EpubReaderExtensions.kt b/source-local/src/main/kotlin/tachiyomi/source/local/metadata/EpubReaderExtensions.kt similarity index 100% rename from source-local/src/androidMain/kotlin/tachiyomi/source/local/metadata/EpubReaderExtensions.kt rename to source-local/src/main/kotlin/tachiyomi/source/local/metadata/EpubReaderExtensions.kt