Convert source modules to Kotlin Multiplatform (#9172)
Use KMP in source modules Use KMP in source-api Expect LocalSource (cherry picked from commit 1abf01c4a030b089e6300cb284cc93f7ed323a22) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/AppModule.kt # source-api/build.gradle.kts # source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/PagePreviewSource.kt # source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/FollowsSource.kt # source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/LoginSource.kt # source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/MetadataSource.kt # source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/NamespaceSource.kt # source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/RandomMangaSource.kt # source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt
This commit is contained in:
+26
-17
@@ -1,10 +1,34 @@
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
kotlin("android")
|
||||
kotlin("multiplatform")
|
||||
kotlin("plugin.serialization")
|
||||
id("com.android.library")
|
||||
id("com.github.ben-manes.versions")
|
||||
}
|
||||
|
||||
kotlin {
|
||||
android()
|
||||
sourceSets {
|
||||
val commonMain by getting {
|
||||
dependencies {
|
||||
api(kotlinx.serialization.json)
|
||||
api(libs.injekt.core)
|
||||
api(libs.rxjava)
|
||||
api(libs.jsoup)
|
||||
// SY -->
|
||||
api(project(":i18n"))
|
||||
api(kotlinx.reflect)
|
||||
// SY <--
|
||||
}
|
||||
}
|
||||
val androidMain by getting {
|
||||
dependencies {
|
||||
implementation(project(":core"))
|
||||
api(libs.preferencektx)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "eu.kanade.tachiyomi.source"
|
||||
|
||||
@@ -12,18 +36,3 @@ android {
|
||||
consumerProguardFile("consumer-proguard.pro")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":core"))
|
||||
|
||||
api(kotlinx.serialization.json)
|
||||
api(libs.injekt.core)
|
||||
api(libs.rxjava)
|
||||
api(libs.preferencektx)
|
||||
api(libs.jsoup)
|
||||
|
||||
// SY -->
|
||||
implementation(project(":i18n"))
|
||||
implementation(kotlinx.reflect)
|
||||
// SY <--
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
package eu.kanade.tachiyomi.source
|
||||
|
||||
actual typealias PreferenceScreen = androidx.preference.PreferenceScreen
|
||||
@@ -0,0 +1,6 @@
|
||||
package eu.kanade.tachiyomi.util
|
||||
|
||||
import rx.Observable
|
||||
import tachiyomi.core.util.lang.awaitSingle
|
||||
|
||||
actual suspend fun <T> Observable<T>.awaitSingle(): T = awaitSingle()
|
||||
-2
@@ -1,7 +1,5 @@
|
||||
package eu.kanade.tachiyomi.source
|
||||
|
||||
import androidx.preference.PreferenceScreen
|
||||
|
||||
interface ConfigurableSource : Source {
|
||||
|
||||
fun setupPreferenceScreen(screen: PreferenceScreen)
|
||||
@@ -0,0 +1,3 @@
|
||||
package eu.kanade.tachiyomi.source
|
||||
|
||||
expect class PreferenceScreen
|
||||
+1
-1
@@ -3,8 +3,8 @@ package eu.kanade.tachiyomi.source
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.util.awaitSingle
|
||||
import rx.Observable
|
||||
import tachiyomi.core.util.lang.awaitSingle
|
||||
|
||||
/**
|
||||
* A basic interface for creating a source. It could be an online source, a local source, etc...
|
||||
@@ -0,0 +1,5 @@
|
||||
package eu.kanade.tachiyomi.util
|
||||
|
||||
import rx.Observable
|
||||
|
||||
expect suspend fun <T> Observable<T>.awaitSingle(): T
|
||||
Reference in New Issue
Block a user