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
|
package org.koitharu.kotatsu.core.parser.site
|
||||||
|
|
||||||
import org.koitharu.kotatsu.core.model.MangaSource
|
import org.koitharu.kotatsu.core.model.MangaSource
|
||||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
|
||||||
|
|
||||||
class HenChanRepository(loaderContext: MangaLoaderContext) :
|
class HenChanRepository : ChanRepository() {
|
||||||
ChanRepository(MangaSource.HENCHAN, loaderContext) {
|
|
||||||
|
|
||||||
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
|
package org.koitharu.kotatsu.core.parser.site
|
||||||
|
|
||||||
import org.koitharu.kotatsu.core.model.MangaSource
|
import org.koitharu.kotatsu.core.model.MangaSource
|
||||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
|
||||||
|
|
||||||
class MangaChanRepository(loaderContext: MangaLoaderContext) :
|
class MangaChanRepository : ChanRepository() {
|
||||||
ChanRepository(MangaSource.MANGACHAN, loaderContext) {
|
|
||||||
|
|
||||||
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
|
package org.koitharu.kotatsu.core.parser.site
|
||||||
|
|
||||||
import org.koitharu.kotatsu.core.model.MangaSource
|
import org.koitharu.kotatsu.core.model.MangaSource
|
||||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
|
||||||
|
|
||||||
class MintMangaRepository(loaderContext: MangaLoaderContext) :
|
class MintMangaRepository : GroupleRepository() {
|
||||||
GroupleRepository(MangaSource.MINTMANGA, loaderContext) {
|
|
||||||
|
|
||||||
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
|
package org.koitharu.kotatsu.core.parser.site
|
||||||
|
|
||||||
import org.koitharu.kotatsu.core.model.MangaSource
|
import org.koitharu.kotatsu.core.model.MangaSource
|
||||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
|
||||||
|
|
||||||
class ReadmangaRepository(loaderContext: MangaLoaderContext) :
|
class ReadmangaRepository : GroupleRepository() {
|
||||||
GroupleRepository(MangaSource.READMANGA_RU, loaderContext) {
|
|
||||||
|
|
||||||
override val domain = "readmanga.me"
|
|
||||||
|
|
||||||
|
override val defaultDomain = "readmanga.me"
|
||||||
|
override val source = MangaSource.READMANGA_RU
|
||||||
}
|
}
|
||||||
@ -1,10 +1,9 @@
|
|||||||
package org.koitharu.kotatsu.core.parser.site
|
package org.koitharu.kotatsu.core.parser.site
|
||||||
|
|
||||||
import org.koitharu.kotatsu.core.model.MangaSource
|
import org.koitharu.kotatsu.core.model.MangaSource
|
||||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
|
||||||
|
|
||||||
class SelfMangaRepository(loaderContext: MangaLoaderContext) :
|
class SelfMangaRepository : GroupleRepository() {
|
||||||
GroupleRepository(MangaSource.SELFMANGA, loaderContext) {
|
|
||||||
|
|
||||||
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
|
package org.koitharu.kotatsu.core.parser.site
|
||||||
|
|
||||||
import org.koitharu.kotatsu.core.model.MangaSource
|
import org.koitharu.kotatsu.core.model.MangaSource
|
||||||
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
|
||||||
|
|
||||||
class YaoiChanRepository(loaderContext: MangaLoaderContext) :
|
class YaoiChanRepository : ChanRepository() {
|
||||||
ChanRepository(MangaSource.YAOICHAN, loaderContext) {
|
|
||||||
|
|
||||||
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