Convert source modules to Kotlin Multiplatform (#9172)

Use KMP in source modules 


Use KMP in source-api


Expect LocalSource
This commit is contained in:
Andreas
2023-03-05 16:16:19 +01:00
committed by GitHub
parent b41565f879
commit 1abf01c4a0
38 changed files with 91 additions and 49 deletions

View File

@ -1,7 +1,27 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
}
kotlin {
android()
sourceSets {
val commonMain by getting {
dependencies {
api(kotlinx.serialization.json)
api(libs.injekt.core)
api(libs.rxjava)
api(libs.jsoup)
}
}
val androidMain by getting {
dependencies {
implementation(project(":core"))
api(libs.preferencektx)
}
}
}
}
android {
@ -11,13 +31,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)
}

View File

@ -0,0 +1,3 @@
package eu.kanade.tachiyomi.source
actual typealias PreferenceScreen = androidx.preference.PreferenceScreen

View File

@ -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()

View File

@ -1,7 +1,5 @@
package eu.kanade.tachiyomi.source
import androidx.preference.PreferenceScreen
interface ConfigurableSource : Source {
fun setupPreferenceScreen(screen: PreferenceScreen)

View File

@ -0,0 +1,3 @@
package eu.kanade.tachiyomi.source
expect class PreferenceScreen

View File

@ -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...

View File

@ -0,0 +1,5 @@
package eu.kanade.tachiyomi.util
import rx.Observable
expect suspend fun <T> Observable<T>.awaitSingle(): T