Tachiyomi-Extensions/multisrc/overrides/madtheme/mangabuddy/src/MangaBuddy.kt

56 lines
2.2 KiB
Kotlin
Raw Normal View History

package eu.kanade.tachiyomi.extension.en.mangabuddy
import android.app.Application
import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.multisrc.madtheme.MadTheme
import eu.kanade.tachiyomi.source.ConfigurableSource
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class MangaBuddy :
MadTheme(
"MangaBuddy",
"https://mangabuddy.com",
"en"
),
ConfigurableSource {
private val preferences: SharedPreferences by lazy {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun setupPreferenceScreen(screen: PreferenceScreen) {
val imageServerPref = ListPreference(screen.context).apply {
key = "${IMAGE_SERVER_PREF_KEY}_$lang"
title = IMAGE_SERVER_PREF_TITLE
entries = IMAGE_SERVER_PREF_ENTRIES
entryValues = IMAGE_SERVER_PREF_ENTRY_VALUES
setDefaultValue(IMAGE_SERVER_PREF_DEFAULT_VALUE)
summary = "%s"
setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String
val index = findIndexOfValue(selected)
val entry = entryValues[index] as String
preferences.edit().putString("${IMAGE_SERVER_PREF_KEY}_$lang", entry).commit()
}
}
screen.addPreference(imageServerPref)
}
override var CDN_URL: String? = IMAGE_SERVER_PREF_DEFAULT_VALUE
get() = preferences.getString("${IMAGE_SERVER_PREF_KEY}_$lang", IMAGE_SERVER_PREF_DEFAULT_VALUE)
companion object {
/*
* On the site Server 1 load balances between 5 hosts, and Server 2 uses the last host.
*/
private const val IMAGE_SERVER_PREF_KEY = "IMAGE_SERVER"
private const val IMAGE_SERVER_PREF_TITLE = "Image server"
private val IMAGE_SERVER_PREF_ENTRIES = arrayOf("Server 1", "Server 2")
private val IMAGE_SERVER_PREF_ENTRY_VALUES = arrayOf("https://s1.mbcdnv1.xyz", "https://s1.mbcdnv5.xyz")
private val IMAGE_SERVER_PREF_DEFAULT_VALUE = IMAGE_SERVER_PREF_ENTRY_VALUES[0]
}
}