Sources settings
parent
68b196de52
commit
3c4e29149f
@ -1,16 +0,0 @@
|
||||
package org.koitharu.kotatsu.core.parser
|
||||
|
||||
import org.koitharu.kotatsu.core.model.MangaPage
|
||||
import org.koitharu.kotatsu.core.model.MangaTag
|
||||
import org.koitharu.kotatsu.core.model.SortOrder
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
abstract class BaseMangaRepository(protected val loaderContext: MangaLoaderContext) :
|
||||
MangaRepository {
|
||||
|
||||
override val sortOrders: Set<SortOrder> get() = emptySet()
|
||||
|
||||
override suspend fun getPageFullUrl(page: MangaPage) : String = page.url
|
||||
|
||||
override suspend fun getTags(): Set<MangaTag> = emptySet()
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package org.koitharu.kotatsu.core.parser
|
||||
|
||||
import org.koin.core.KoinComponent
|
||||
import org.koin.core.inject
|
||||
import org.koitharu.kotatsu.core.model.MangaPage
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.core.model.MangaTag
|
||||
import org.koitharu.kotatsu.core.model.SortOrder
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
abstract class RemoteMangaRepository : MangaRepository, KoinComponent {
|
||||
|
||||
protected abstract val source: MangaSource
|
||||
|
||||
protected val loaderContext by inject<MangaLoaderContext>()
|
||||
protected val conf by lazy(LazyThreadSafetyMode.NONE) {
|
||||
loaderContext.getSettings(source)
|
||||
}
|
||||
|
||||
override val sortOrders: Set<SortOrder> get() = emptySet()
|
||||
|
||||
override suspend fun getPageFullUrl(page: MangaPage): String = page.url
|
||||
|
||||
override suspend fun getTags(): Set<MangaTag> = emptySet()
|
||||
|
||||
abstract fun onCreatePreferences(): Set<Int>
|
||||
}
|
||||
@ -1,10 +1,9 @@
|
||||
package org.koitharu.kotatsu.core.parser.site
|
||||
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
class HenChanRepository(loaderContext: MangaLoaderContext) :
|
||||
ChanRepository(MangaSource.HENCHAN, loaderContext) {
|
||||
class HenChanRepository : ChanRepository() {
|
||||
|
||||
override val domain: String = "h-chan.me"
|
||||
override val defaultDomain = "h-chan.me"
|
||||
override val source = MangaSource.HENCHAN
|
||||
}
|
||||
@ -1,10 +1,9 @@
|
||||
package org.koitharu.kotatsu.core.parser.site
|
||||
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
class MangaChanRepository(loaderContext: MangaLoaderContext) :
|
||||
ChanRepository(MangaSource.MANGACHAN, loaderContext) {
|
||||
class MangaChanRepository : ChanRepository() {
|
||||
|
||||
override val domain: String = "manga-chan.me"
|
||||
override val defaultDomain = "manga-chan.me"
|
||||
override val source = MangaSource.MANGACHAN
|
||||
}
|
||||
@ -1,10 +1,9 @@
|
||||
package org.koitharu.kotatsu.core.parser.site
|
||||
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
class MintMangaRepository(loaderContext: MangaLoaderContext) :
|
||||
GroupleRepository(MangaSource.MINTMANGA, loaderContext) {
|
||||
class MintMangaRepository : GroupleRepository() {
|
||||
|
||||
override val domain: String = "mintmanga.live"
|
||||
override val source = MangaSource.MINTMANGA
|
||||
override val defaultDomain: String = "mintmanga.live"
|
||||
}
|
||||
@ -1,11 +1,9 @@
|
||||
package org.koitharu.kotatsu.core.parser.site
|
||||
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
class ReadmangaRepository(loaderContext: MangaLoaderContext) :
|
||||
GroupleRepository(MangaSource.READMANGA_RU, loaderContext) {
|
||||
|
||||
override val domain = "readmanga.me"
|
||||
class ReadmangaRepository : GroupleRepository() {
|
||||
|
||||
override val defaultDomain = "readmanga.me"
|
||||
override val source = MangaSource.READMANGA_RU
|
||||
}
|
||||
@ -1,10 +1,9 @@
|
||||
package org.koitharu.kotatsu.core.parser.site
|
||||
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
class SelfMangaRepository(loaderContext: MangaLoaderContext) :
|
||||
GroupleRepository(MangaSource.SELFMANGA, loaderContext) {
|
||||
class SelfMangaRepository : GroupleRepository() {
|
||||
|
||||
override val domain: String = "selfmanga.ru"
|
||||
override val defaultDomain = "selfmanga.ru"
|
||||
override val source = MangaSource.SELFMANGA
|
||||
}
|
||||
@ -1,10 +1,9 @@
|
||||
package org.koitharu.kotatsu.core.parser.site
|
||||
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
||||
|
||||
class YaoiChanRepository(loaderContext: MangaLoaderContext) :
|
||||
ChanRepository(MangaSource.YAOICHAN, loaderContext) {
|
||||
class YaoiChanRepository : ChanRepository() {
|
||||
|
||||
override val domain: String = "yaoi-chan.me"
|
||||
override val source = MangaSource.YAOICHAN
|
||||
override val defaultDomain = "yaoi-chan.me"
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.koitharu.kotatsu.core.prefs
|
||||
|
||||
import android.content.Context
|
||||
import org.koitharu.kotatsu.R
|
||||
import org.koitharu.kotatsu.core.model.MangaSource
|
||||
|
||||
class SourceConfig(context: Context, source: MangaSource) {
|
||||
|
||||
private val prefs = context.getSharedPreferences(source.name, Context.MODE_PRIVATE)
|
||||
|
||||
private val keyDomain = context.getString(R.string.key_parser_domain)
|
||||
|
||||
fun getDomain(defaultValue: String) = prefs.getString(keyDomain, defaultValue) ?: defaultValue
|
||||
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package org.koitharu.kotatsu.ui.settings.utils
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.Preference
|
||||
|
||||
class EditTextSummaryProvider(@StringRes private val emptySummaryId: Int) :
|
||||
Preference.SummaryProvider<EditTextPreference> {
|
||||
|
||||
override fun provideSummary(preference: EditTextPreference): CharSequence {
|
||||
return if (preference.text.isNullOrEmpty()) {
|
||||
preference.context.getString(emptySummaryId)
|
||||
} else {
|
||||
preference.text
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<EditTextPreference
|
||||
android:key="@string/key_parser_domain"
|
||||
android:title="@string/domain"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
</PreferenceScreen>
|
||||
Loading…
Reference in New Issue