use Preferences functions from utils (#7757)

* import all temporarily

* use `getPreferencesLazy()`

regex: lazy\s*\{\s*Injekt\.get<Application>\(\)\.getSharedPreferences\(\"source_\$id\"\, 0x0000\)(!!)?\s*\}

* use `getPreferences()`

regex: Injekt\.get<Application>\(\)\.getSharedPreferences\(\"source_\$id\"\, 0x0000\)(!!)?

* `getPreferences` and `getPreferencesLazy` with migration

regex to find: getPreferences\(\)\s*\.

* preferences edge cases

* run lint

* why kotlinter not add newline

* bruh

* bump

* unused import not caught by kotlinter

* review suggestions on all files

* bump after merge main

* review

* reduce usage of
This commit is contained in:
AwkwardPeak7 2025-03-08 15:43:22 +05:00 committed by Draff
parent 5aa7f1627c
commit 060473aedf
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
320 changed files with 567 additions and 1043 deletions

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 6 baseVersionCode = 7

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.bakkin package eu.kanade.tachiyomi.multisrc.bakkin
import android.app.Application
import android.os.Build import android.os.Build
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -14,6 +13,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromJsonElement import kotlinx.serialization.json.decodeFromJsonElement
import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonObject
@ -33,9 +33,7 @@ abstract class BakkinReaderX(
"Android ${Build.VERSION.RELEASE}; Mobile) " + "Android ${Build.VERSION.RELEASE}; Mobile) " +
"Tachiyomi/${AppInfo.getVersionName()}" "Tachiyomi/${AppInfo.getVersionName()}"
protected val preferences by lazy { protected val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)!!
}
private val json by lazy { Injekt.get<Json>() } private val json by lazy { Injekt.get<Json>() }

View File

@ -2,7 +2,7 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 7 baseVersionCode = 8
dependencies { dependencies {
api(project(":lib:synchrony")) api(project(":lib:synchrony"))

View File

@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonObject
@ -46,9 +47,7 @@ abstract class ColaManga(
private val intl = ColaMangaIntl(lang) private val intl = ColaMangaIntl(lang)
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override val client = network.cloudflareClient.newBuilder() override val client = network.cloudflareClient.newBuilder()
.rateLimitHost( .rateLimitHost(

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 3 baseVersionCode = 4

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.foolslide package eu.kanade.tachiyomi.multisrc.foolslide
import android.app.Application
import androidx.preference.CheckBoxPreference import androidx.preference.CheckBoxPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
@ -12,6 +11,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonArray
import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonObject
@ -273,9 +273,7 @@ abstract class FoolSlide(
override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() override fun imageUrlParse(document: Document) = throw UnsupportedOperationException()
protected val preferences by lazy { protected val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)!!
}
override fun setupPreferenceScreen(screen: PreferenceScreen) { override fun setupPreferenceScreen(screen: PreferenceScreen) {
CheckBoxPreference(screen.context).apply { CheckBoxPreference(screen.context).apply {

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 4 baseVersionCode = 5

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.galleryadults package eu.kanade.tachiyomi.multisrc.galleryadults
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.util.Log import android.util.Log
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -18,6 +17,7 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@ -36,8 +36,6 @@ import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -56,9 +54,7 @@ abstract class GalleryAdults(
.build() .build()
/* Preferences */ /* Preferences */
protected val preferences: SharedPreferences by lazy { protected val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
protected open val useShortTitlePreference = true protected open val useShortTitlePreference = true

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 30 baseVersionCode = 31

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.grouple package eu.kanade.tachiyomi.multisrc.grouple
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.widget.Toast import android.widget.Toast
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
@ -14,6 +13,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import okhttp3.Headers import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -22,8 +22,6 @@ import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.io.IOException import java.io.IOException
import java.text.DecimalFormat import java.text.DecimalFormat
import java.text.ParseException import java.text.ParseException
@ -37,9 +35,7 @@ abstract class GroupLe(
final override val lang: String, final override val lang: String,
) : ConfigurableSource, ParsedHttpSource() { ) : ConfigurableSource, ParsedHttpSource() {
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override val supportsLatest = true override val supportsLatest = true

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 5 baseVersionCode = 6

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.guya package eu.kanade.tachiyomi.multisrc.guya
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Build import android.os.Build
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -16,6 +15,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import okhttp3.Headers import okhttp3.Headers
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
@ -25,8 +25,6 @@ import org.jsoup.Jsoup
import org.jsoup.select.Evaluator import org.jsoup.select.Evaluator
import rx.Observable import rx.Observable
import rx.schedulers.Schedulers import rx.schedulers.Schedulers
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
abstract class Guya( abstract class Guya(
override val name: String, override val name: String,
@ -48,9 +46,7 @@ abstract class Guya(
private val scanlators: ScanlatorStore = ScanlatorStore() private val scanlators: ScanlatorStore = ScanlatorStore()
// Preferences configuration // Preferences configuration
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
// Request builder for the "browse" page of the manga // Request builder for the "browse" page of the manga
override fun popularMangaRequest(page: Int): Request { override fun popularMangaRequest(page: Int): Request {

View File

@ -2,7 +2,7 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 28 baseVersionCode = 29
dependencies { dependencies {
api(project(":lib:i18n")) api(project(":lib:i18n"))

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.heancms package eu.kanade.tachiyomi.multisrc.heancms
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.EditTextPreference import androidx.preference.EditTextPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -16,6 +15,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
@ -26,8 +26,6 @@ import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
import kotlin.concurrent.thread import kotlin.concurrent.thread
@ -39,9 +37,7 @@ abstract class HeanCms(
protected val apiUrl: String = baseUrl.replace("://", "://api."), protected val apiUrl: String = baseUrl.replace("://", "://api."),
) : ConfigurableSource, HttpSource() { ) : ConfigurableSource, HttpSource() {
protected val preferences: SharedPreferences by lazy { protected val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override val supportsLatest = true override val supportsLatest = true

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 2 baseVersionCode = 3

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.hentaihand package eu.kanade.tachiyomi.multisrc.hentaihand
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.text.InputType import android.text.InputType
import android.widget.Toast import android.widget.Toast
@ -16,6 +15,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.buildJsonObject
@ -32,8 +32,6 @@ import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import rx.schedulers.Schedulers import rx.schedulers.Schedulers
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.io.IOException import java.io.IOException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -318,9 +316,7 @@ abstract class HentaiHand(
// Preferences // Preferences
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun setupPreferenceScreen(screen: PreferenceScreen) { override fun setupPreferenceScreen(screen: PreferenceScreen) {
screen.addPreference(screen.editTextPreference(USERNAME_TITLE, USERNAME_DEFAULT, username)) screen.addPreference(screen.editTextPreference(USERNAME_TITLE, USERNAME_DEFAULT, username))

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 18 baseVersionCode = 19

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.kemono package eu.kanade.tachiyomi.multisrc.kemono
import android.app.Application
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -15,13 +14,12 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferences
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream import kotlinx.serialization.json.decodeFromStream
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.lang.Thread.sleep import java.lang.Thread.sleep
import java.util.TimeZone import java.util.TimeZone
@ -41,8 +39,7 @@ open class Kemono(
private val json: Json by injectLazy() private val json: Json by injectLazy()
private val preferences = private val preferences = getPreferences()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
private val apiPath = "api/v1" private val apiPath = "api/v1"

View File

@ -2,7 +2,7 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 13 baseVersionCode = 14
dependencies { dependencies {
api(project(":lib:i18n")) api(project(":lib:i18n"))

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.keyoapp package eu.kanade.tachiyomi.multisrc.keyoapp
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -15,6 +14,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
@ -23,8 +23,6 @@ import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -37,9 +35,7 @@ abstract class Keyoapp(
final override val lang: String, final override val lang: String,
) : ParsedHttpSource(), ConfigurableSource { ) : ParsedHttpSource(), ConfigurableSource {
protected val preferences: SharedPreferences by lazy { protected val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override val supportsLatest = true override val supportsLatest = true

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 35 baseVersionCode = 36

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.multisrc.libgroup
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Application import android.app.Application
import android.content.SharedPreferences
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.util.Log import android.util.Log
@ -24,6 +23,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -57,9 +57,10 @@ abstract class LibGroup(
encodeDefaults = true encodeDefaults = true
} }
private val preferences: SharedPreferences by lazy { private val preferences by getPreferencesLazy {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) if (getString(SERVER_PREF, "main") == "fourth") {
.migrateOldImageServer() edit().putString(SERVER_PREF, "secondary").apply()
}
} }
override val supportsLatest = true override val supportsLatest = true
@ -685,11 +686,4 @@ abstract class LibGroup(
} }
} }
} }
// api changed id of servers, remap SERVER_PREF old("fourth") to new("secondary")
private fun SharedPreferences.migrateOldImageServer(): SharedPreferences {
if (getString(SERVER_PREF, "main") != "fourth") return this
edit().putString(SERVER_PREF, "secondary").apply()
return this
}
} }

View File

@ -2,7 +2,7 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 4 baseVersionCode = 5
dependencies { dependencies {
api(project(":lib:i18n")) api(project(":lib:i18n"))

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.machinetranslations package eu.kanade.tachiyomi.multisrc.machinetranslations
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Build import android.os.Build
import android.widget.Toast import android.widget.Toast
@ -20,6 +19,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
@ -30,8 +30,6 @@ import okhttp3.Request
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Calendar import java.util.Calendar
@ -51,9 +49,7 @@ abstract class MachineTranslations(
override val lang = language.lang override val lang = language.lang
protected val preferences: SharedPreferences by lazy { protected val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
/** /**
* A flag that tracks whether the settings have been changed. It is used to indicate if * A flag that tracks whether the settings have been changed. It is used to indicate if

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.multisrc.mangathemesia package eu.kanade.tachiyomi.multisrc.mangathemesia
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -9,6 +8,7 @@ import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock
@ -16,8 +16,6 @@ import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.lang.ref.SoftReference import java.lang.ref.SoftReference
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -34,14 +32,12 @@ abstract class MangaThemesiaAlt(
protected open val listUrl = "$mangaUrlDirectory/list-mode/" protected open val listUrl = "$mangaUrlDirectory/list-mode/"
protected open val listSelector = "div#content div.soralist ul li a.series" protected open val listSelector = "div#content div.soralist ul li a.series"
protected val preferences: SharedPreferences by lazy { protected val preferences by getPreferencesLazy {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000).also { if (contains("__random_part_cache")) {
if (it.contains("__random_part_cache")) { edit().remove("__random_part_cache").apply()
it.edit().remove("__random_part_cache").apply() }
} if (contains("titles_without_random_part")) {
if (it.contains("titles_without_random_part")) { edit().remove("titles_without_random_part").apply()
it.edit().remove("titles_without_random_part").apply()
}
} }
} }

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Akuma' extName = 'Akuma'
extClass = '.AkumaFactory' extClass = '.AkumaFactory'
extVersionCode = 5 extVersionCode = 6
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.akuma package eu.kanade.tachiyomi.extension.all.akuma
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -16,6 +15,7 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import okhttp3.FormBody import okhttp3.FormBody
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.Interceptor import okhttp3.Interceptor
@ -25,8 +25,6 @@ import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.io.IOException import java.io.IOException
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -112,9 +110,7 @@ class Akuma(
return storedToken!! return storedToken!!
} }
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val displayFullTitle: Boolean get() = preferences.getBoolean(PREF_TITLE, false) private val displayFullTitle: Boolean get() = preferences.getBoolean(PREF_TITLE, false)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Bato.to' extName = 'Bato.to'
extClass = '.BatoToFactory' extClass = '.BatoToFactory'
extVersionCode = 48 extVersionCode = 49
isNsfw = true isNsfw = true
} }

View File

@ -20,6 +20,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
@ -48,10 +49,7 @@ open class BatoTo(
private val siteLang: String, private val siteLang: String,
) : ConfigurableSource, ParsedHttpSource() { ) : ConfigurableSource, ParsedHttpSource() {
private val preferences: SharedPreferences by lazy { private val preferences by getPreferencesLazy { migrateMirrorPref() }
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
.migrateMirrorPref()
}
override val name: String = "Bato.to" override val name: String = "Bato.to"
override val baseUrl: String get() = mirror override val baseUrl: String get() = mirror
@ -125,14 +123,12 @@ open class BatoTo(
return preferences.getBoolean("${REMOVE_TITLE_VERSION_PREF}_$lang", false) return preferences.getBoolean("${REMOVE_TITLE_VERSION_PREF}_$lang", false)
} }
private fun SharedPreferences.migrateMirrorPref(): SharedPreferences { private fun SharedPreferences.migrateMirrorPref() {
val selectedMirror = getString("${MIRROR_PREF_KEY}_$lang", MIRROR_PREF_DEFAULT_VALUE)!! val selectedMirror = getString("${MIRROR_PREF_KEY}_$lang", MIRROR_PREF_DEFAULT_VALUE)!!
if (selectedMirror in DEPRECATED_MIRRORS) { if (selectedMirror in DEPRECATED_MIRRORS) {
edit().putString("${MIRROR_PREF_KEY}_$lang", MIRROR_PREF_DEFAULT_VALUE).commit() edit().putString("${MIRROR_PREF_KEY}_$lang", MIRROR_PREF_DEFAULT_VALUE).commit()
} }
return this
} }
override val supportsLatest = true override val supportsLatest = true

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Comic Fury' extName = 'Comic Fury'
extClass = '.ComicFuryFactory' extClass = '.ComicFuryFactory'
extVersionCode = 3 extVersionCode = 4
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.comicfury package eu.kanade.tachiyomi.extension.all.comicfury
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -16,13 +15,12 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -205,9 +203,7 @@ class ComicFury(
private fun Boolean.toInt(): Int = if (this) { 0 } else { 1 } private fun Boolean.toInt(): Int = if (this) { 0 } else { 1 }
// START OF AUTHOR NOTES // // START OF AUTHOR NOTES //
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
companion object { companion object {
private const val SHOW_AUTHORS_NOTES_KEY = "showAuthorsNotes" private const val SHOW_AUTHORS_NOTES_KEY = "showAuthorsNotes"
} }

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Comick' extName = 'Comick'
extClass = '.ComickFactory' extClass = '.ComickFactory'
extVersionCode = 52 extVersionCode = 53
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.comickfun package eu.kanade.tachiyomi.extension.all.comickfun
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.EditTextPreference import androidx.preference.EditTextPreference
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -17,6 +16,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Headers import okhttp3.Headers
@ -25,8 +25,6 @@ import okhttp3.Interceptor
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -65,10 +63,7 @@ abstract class Comick(
) )
} }
private val preferences by lazy { private val preferences by getPreferencesLazy { newLineIgnoredGroups() }
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
.newLineIgnoredGroups()
}
override fun setupPreferenceScreen(screen: PreferenceScreen) { override fun setupPreferenceScreen(screen: PreferenceScreen) {
EditTextPreference(screen.context).apply { EditTextPreference(screen.context).apply {
@ -507,8 +502,9 @@ abstract class Comick(
override fun getFilterList() = getFilters() override fun getFilterList() = getFilters()
private fun SharedPreferences.newLineIgnoredGroups(): SharedPreferences { private fun SharedPreferences.newLineIgnoredGroups() {
if (getBoolean(MIGRATED_IGNORED_GROUPS, false)) return this if (getBoolean(MIGRATED_IGNORED_GROUPS, false)) return
val ignoredGroups = getString(IGNORED_GROUPS_PREF, "").orEmpty() val ignoredGroups = getString(IGNORED_GROUPS_PREF, "").orEmpty()
edit() edit()
@ -522,8 +518,6 @@ abstract class Comick(
) )
.putBoolean(MIGRATED_IGNORED_GROUPS, true) .putBoolean(MIGRATED_IGNORED_GROUPS, true)
.apply() .apply()
return this
} }
companion object { companion object {

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'ComicsKingdom' extName = 'ComicsKingdom'
extClass = '.ComicsKingdomFactory' extClass = '.ComicsKingdomFactory'
extVersionCode = 1 extVersionCode = 2
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.comicskingdom package eu.kanade.tachiyomi.extension.all.comicskingdom
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
@ -12,6 +11,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.HttpUrl import okhttp3.HttpUrl
@ -19,8 +19,6 @@ import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.Jsoup import org.jsoup.Jsoup
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -301,9 +299,7 @@ class ComicsKingdom(override val lang: String) : ConfigurableSource, HttpSource(
screen.addPreference(compactpref) screen.addPreference(compactpref)
} }
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private fun shouldCompact() = preferences.getBoolean("compactPref", true) private fun shouldCompact() = preferences.getBoolean("compactPref", true)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = "Comikey" extName = "Comikey"
extClass = ".ComikeyFactory" extClass = ".ComikeyFactory"
extVersionCode = 2 extVersionCode = 3
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -24,6 +24,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.HttpUrl import okhttp3.HttpUrl
@ -75,9 +76,7 @@ open class Comikey(
classLoader = this::class.java.classLoader!!, classLoader = this::class.java.classLoader!!,
) )
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun popularMangaRequest(page: Int) = GET("$baseUrl/comics/?order=-views&page=$page", headers) override fun popularMangaRequest(page: Int) = GET("$baseUrl/comics/?order=-views&page=$page", headers)

View File

@ -1,4 +1,5 @@
package eu.kanade.tachiyomi.extension.all.danbooru package eu.kanade.tachiyomi.extension.all.danbooru
import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter
internal class FilterTags : Filter.Text("Tags") internal class FilterTags : Filter.Text("Tags")

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'DeviantArt' extName = 'DeviantArt'
extClass = '.DeviantArt' extClass = '.DeviantArt'
extVersionCode = 6 extVersionCode = 7
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.deviantart package eu.kanade.tachiyomi.extension.all.deviantart
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -13,6 +12,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import okhttp3.Headers import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request import okhttp3.Request
@ -20,8 +20,6 @@ import okhttp3.Response
import org.jsoup.Jsoup import org.jsoup.Jsoup
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.parser.Parser import org.jsoup.parser.Parser
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -32,9 +30,7 @@ class DeviantArt : HttpSource(), ConfigurableSource {
override val lang = "all" override val lang = "all"
override val supportsLatest = false override val supportsLatest = false
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun headersBuilder() = Headers.Builder().apply { override fun headersBuilder() = Headers.Builder().apply {
add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0") add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0")

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'E-Hentai' extName = 'E-Hentai'
extClass = '.EHFactory' extClass = '.EHFactory'
extVersionCode = 24 extVersionCode = 25
isNsfw = true isNsfw = true
} }

View File

@ -1,7 +1,6 @@
package eu.kanade.tachiyomi.extension.all.ehentai package eu.kanade.tachiyomi.extension.all.ehentai
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.net.Uri import android.net.Uri
import android.webkit.CookieManager import android.webkit.CookieManager
@ -23,6 +22,7 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import okhttp3.CacheControl import okhttp3.CacheControl
import okhttp3.CookieJar import okhttp3.CookieJar
import okhttp3.Headers import okhttp3.Headers
@ -30,8 +30,6 @@ import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.net.URLEncoder import java.net.URLEncoder
abstract class EHentai( abstract class EHentai(
@ -41,9 +39,7 @@ abstract class EHentai(
override val name = "E-Hentai" override val name = "E-Hentai"
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val webViewCookieManager: CookieManager by lazy { CookieManager.getInstance() } private val webViewCookieManager: CookieManager by lazy { CookieManager.getInstance() }
private val memberId: String by lazy { getMemberIdPref() } private val memberId: String by lazy { getMemberIdPref() }

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Galaxy' extName = 'Galaxy'
extClass = '.GalaxyFactory' extClass = '.GalaxyFactory'
extVersionCode = 4 extVersionCode = 5
isNsfw = false isNsfw = false
} }

View File

@ -1,13 +1,11 @@
package eu.kanade.tachiyomi.extension.all.galaxy package eu.kanade.tachiyomi.extension.all.galaxy
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.widget.Toast import android.widget.Toast
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.SourceFactory import eu.kanade.tachiyomi.source.SourceFactory
import uy.kohesive.injekt.Injekt import keiyoushi.utils.getPreferencesLazy
import uy.kohesive.injekt.api.get
class GalaxyFactory : SourceFactory { class GalaxyFactory : SourceFactory {
@ -22,9 +20,7 @@ class GalaxyFactory : SourceFactory {
override val baseUrl by lazy { getPrefBaseUrl() } override val baseUrl by lazy { getPrefBaseUrl() }
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
companion object { companion object {
private const val RESTART_APP = ".لتطبيق الإعدادات الجديدة أعد تشغيل التطبيق" private const val RESTART_APP = ".لتطبيق الإعدادات الجديدة أعد تشغيل التطبيق"

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Hitomi' extName = 'Hitomi'
extClass = '.HitomiFactory' extClass = '.HitomiFactory'
extVersionCode = 36 extVersionCode = 37
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.hitomi package eu.kanade.tachiyomi.extension.all.hitomi
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.util.Log import android.util.Log
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -15,6 +14,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.coroutines.async import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.coroutineScope
@ -32,8 +32,6 @@ import okhttp3.Response
import okhttp3.ResponseBody.Companion.toResponseBody import okhttp3.ResponseBody.Companion.toResponseBody
import okhttp3.internal.http2.StreamResetException import okhttp3.internal.http2.StreamResetException
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.nio.ByteBuffer import java.nio.ByteBuffer
import java.nio.ByteOrder import java.nio.ByteOrder
@ -74,9 +72,7 @@ class Hitomi(
} }
.build() .build()
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private fun imageType() = preferences.getString(PREF_IMAGETYPE, "webp")!! private fun imageType() = preferences.getString(PREF_IMAGETYPE, "webp")!!
override fun headersBuilder() = super.headersBuilder() override fun headersBuilder() = super.headersBuilder()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'izneo (webtoons)' extName = 'izneo (webtoons)'
extClass = '.IzneoFactory' extClass = '.IzneoFactory'
extVersionCode = 5 extVersionCode = 6
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.izneo package eu.kanade.tachiyomi.extension.all.izneo
import android.app.Application
import android.text.InputType.TYPE_CLASS_TEXT import android.text.InputType.TYPE_CLASS_TEXT
import android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD import android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD
import android.util.Base64 import android.util.Base64
@ -14,6 +13,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromJsonElement import kotlinx.serialization.json.decodeFromJsonElement
import kotlinx.serialization.json.int import kotlinx.serialization.json.int
@ -43,9 +43,7 @@ class Izneo(override val lang: String) : ConfigurableSource, HttpSource() {
private val json by lazy { Injekt.get<Json>() } private val json by lazy { Injekt.get<Json>() }
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)!!
}
private inline val username: String private inline val username: String
get() = preferences.getString("username", "")!! get() = preferences.getString("username", "")!!

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'SchaleNetwork' extName = 'SchaleNetwork'
extClass = '.KoharuFactory' extClass = '.KoharuFactory'
extVersionCode = 11 extVersionCode = 12
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.koharu package eu.kanade.tachiyomi.extension.all.koharu
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -15,6 +14,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
@ -23,8 +23,6 @@ import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -55,9 +53,7 @@ class Koharu(
private val shortenTitleRegex = Regex("""(\[[^]]*]|[({][^)}]*[)}])""") private val shortenTitleRegex = Regex("""(\[[^]]*]|[({][^)}]*[)}])""")
private fun String.shortenTitle() = replace(shortenTitleRegex, "").trim() private fun String.shortenTitle() = replace(shortenTitleRegex, "").trim()
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private fun quality() = preferences.getString(PREF_IMAGERES, "1280")!! private fun quality() = preferences.getString(PREF_IMAGERES, "1280")!!

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Komga' extName = 'Komga'
extClass = '.KomgaFactory' extClass = '.KomgaFactory'
extVersionCode = 59 extVersionCode = 60
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.komga package eu.kanade.tachiyomi.extension.all.komga
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.text.InputType import android.text.InputType
import android.util.Log import android.util.Log
@ -28,6 +27,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -41,17 +41,13 @@ import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.apache.commons.text.StringSubstitutor import org.apache.commons.text.StringSubstitutor
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.security.MessageDigest import java.security.MessageDigest
import java.util.Locale import java.util.Locale
open class Komga(private val suffix: String = "") : ConfigurableSource, UnmeteredSource, HttpSource() { open class Komga(private val suffix: String = "") : ConfigurableSource, UnmeteredSource, HttpSource() {
internal val preferences: SharedPreferences by lazy { internal val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val displayName by lazy { preferences.getString(PREF_DISPLAY_NAME, "")!! } private val displayName by lazy { preferences.getString(PREF_DISPLAY_NAME, "")!! }

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'LANraragi' extName = 'LANraragi'
extClass = '.LANraragiFactory' extClass = '.LANraragiFactory'
extVersionCode = 18 extVersionCode = 19
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.lanraragi package eu.kanade.tachiyomi.extension.all.lanraragi
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.net.Uri import android.net.Uri
import android.text.InputType import android.text.InputType
@ -18,6 +17,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonArray
@ -284,9 +284,7 @@ open class LANraragi(private val suffix: String = "") : ConfigurableSource, Unme
(0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) }.reduce(Long::or) and Long.MAX_VALUE (0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) }.reduce(Long::or) and Long.MAX_VALUE
} }
internal val preferences: SharedPreferences by lazy { internal val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private fun getPrefBaseUrl(): String = preferences.getString(HOSTNAME_KEY, HOSTNAME_DEFAULT)!! private fun getPrefBaseUrl(): String = preferences.getString(HOSTNAME_KEY, HOSTNAME_DEFAULT)!!
private fun getPrefAPIKey(): String = preferences.getString(APIKEY_KEY, "")!! private fun getPrefAPIKey(): String = preferences.getString(APIKEY_KEY, "")!!

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Luscious' extName = 'Luscious'
extClass = '.LusciousFactory' extClass = '.LusciousFactory'
extVersionCode = 19 extVersionCode = 20
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.luscious package eu.kanade.tachiyomi.extension.all.luscious
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.CheckBoxPreference import androidx.preference.CheckBoxPreference
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -15,6 +14,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
@ -37,8 +37,6 @@ import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import okhttp3.ResponseBody.Companion.toResponseBody import okhttp3.ResponseBody.Companion.toResponseBody
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.util.Calendar import java.util.Calendar
@ -49,9 +47,7 @@ abstract class Luscious(
override val supportsLatest: Boolean = true override val supportsLatest: Boolean = true
override val name: String = "Luscious" override val name: String = "Luscious"
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override val baseUrl: String = getMirrorPref()!! override val baseUrl: String = getMirrorPref()!!

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'MangaDex' extName = 'MangaDex'
extClass = '.MangaDexFactory' extClass = '.MangaDexFactory'
extVersionCode = 199 extVersionCode = 200
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.mangadex package eu.kanade.tachiyomi.extension.all.mangadex
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Build import android.os.Build
import androidx.preference.EditTextPreference import androidx.preference.EditTextPreference
@ -32,6 +31,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import okhttp3.CacheControl import okhttp3.CacheControl
import okhttp3.Headers import okhttp3.Headers
@ -40,8 +40,6 @@ import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.util.Date import java.util.Date
abstract class MangaDex(final override val lang: String, private val dexLang: String = lang) : abstract class MangaDex(final override val lang: String, private val dexLang: String = lang) :
@ -53,10 +51,7 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
override val supportsLatest = true override val supportsLatest = true
private val preferences: SharedPreferences by lazy { private val preferences by getPreferencesLazy { sanitizeExistingUuidPrefs() }
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
.sanitizeExistingUuidPrefs()
}
private val helper = MangaDexHelper(lang) private val helper = MangaDexHelper(lang)
@ -885,9 +880,9 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
* preferences. This method clear invalid UUIDs in case the user have updated from * preferences. This method clear invalid UUIDs in case the user have updated from
* a previous version with that behaviour. * a previous version with that behaviour.
*/ */
private fun SharedPreferences.sanitizeExistingUuidPrefs(): SharedPreferences { private fun SharedPreferences.sanitizeExistingUuidPrefs() {
if (getBoolean(MDConstants.getHasSanitizedUuidsPrefKey(dexLang), false)) { if (getBoolean(MDConstants.getHasSanitizedUuidsPrefKey(dexLang), false)) {
return this return
} }
val blockedGroups = getString(MDConstants.getBlockedGroupsPrefKey(dexLang), "")!! val blockedGroups = getString(MDConstants.getBlockedGroupsPrefKey(dexLang), "")!!
@ -907,7 +902,5 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
.putString(MDConstants.getBlockedUploaderPrefKey(dexLang), blockedUploaders) .putString(MDConstants.getBlockedUploaderPrefKey(dexLang), blockedUploaders)
.putBoolean(MDConstants.getHasSanitizedUuidsPrefKey(dexLang), true) .putBoolean(MDConstants.getHasSanitizedUuidsPrefKey(dexLang), true)
.apply() .apply()
return this
} }
} }

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'MangaFire' extName = 'MangaFire'
extClass = '.MangaFireFactory' extClass = '.MangaFireFactory'
extVersionCode = 10 extVersionCode = 11
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.mangafire package eu.kanade.tachiyomi.extension.all.mangafire
import android.app.Application
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
@ -12,6 +11,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
@ -24,8 +24,6 @@ import org.jsoup.Jsoup
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -43,9 +41,7 @@ class MangaFire(
private val json: Json by injectLazy() private val json: Json by injectLazy()
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)!!
}
override val client = network.cloudflareClient.newBuilder().addInterceptor(ImageInterceptor).build() override val client = network.cloudflareClient.newBuilder().addInterceptor(ImageInterceptor).build()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'MangaPark' extName = 'MangaPark'
extClass = '.MangaParkFactory' extClass = '.MangaParkFactory'
extVersionCode = 20 extVersionCode = 21
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.mangapark package eu.kanade.tachiyomi.extension.all.mangapark
import android.app.Application
import android.widget.Toast import android.widget.Toast
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -18,6 +17,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferences
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -30,8 +30,6 @@ import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.Request import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response import okhttp3.Response
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.util.concurrent.CountDownLatch import java.util.concurrent.CountDownLatch
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
@ -47,8 +45,7 @@ class MangaPark(
override val versionId = 2 override val versionId = 2
private val preference = private val preference = getPreferences()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
private val domain = private val domain =
preference.getString(MIRROR_PREF_KEY, MIRROR_PREF_DEFAULT) ?: MIRROR_PREF_DEFAULT preference.getString(MIRROR_PREF_KEY, MIRROR_PREF_DEFAULT) ?: MIRROR_PREF_DEFAULT

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.mangaplus package eu.kanade.tachiyomi.extension.all.mangaplus
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.text.Editable import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
@ -21,6 +20,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Headers import okhttp3.Headers
@ -32,8 +32,6 @@ import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import okhttp3.ResponseBody.Companion.toResponseBody import okhttp3.ResponseBody.Companion.toResponseBody
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.util.UUID import java.util.UUID
@ -73,9 +71,7 @@ class MangaPlus(
) )
} }
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
/** /**
* Private cache to find the newest thumbnail URL in case the existing one * Private cache to find the newest thumbnail URL in case the existing one

View File

@ -3,7 +3,7 @@ ext {
extClass = '.MangaReaderFactory' extClass = '.MangaReaderFactory'
themePkg = 'mangareader' themePkg = 'mangareader'
baseUrl = 'https://mangareader.to' baseUrl = 'https://mangareader.to'
overrideVersionCode = 5 overrideVersionCode = 6
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.mangareaderto package eu.kanade.tachiyomi.extension.all.mangareaderto
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -13,11 +12,11 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferences
import keiyoushi.utils.getPreferencesLazy
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class MangaReader( class MangaReader(
language: Language, language: Language,
@ -32,9 +31,7 @@ class MangaReader(
.addInterceptor(ImageInterceptor) .addInterceptor(ImageInterceptor)
.build() .build()
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
// =============================== Search =============================== // =============================== Search ===============================

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Mango' extName = 'Mango'
extClass = '.Mango' extClass = '.Mango'
extVersionCode = 9 extVersionCode = 10
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.mango package eu.kanade.tachiyomi.extension.all.mango
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.text.InputType import android.text.InputType
import android.widget.Toast import android.widget.Toast
@ -18,6 +17,7 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import info.debatty.java.stringsimilarity.JaroWinkler import info.debatty.java.stringsimilarity.JaroWinkler
import info.debatty.java.stringsimilarity.Levenshtein import info.debatty.java.stringsimilarity.Levenshtein
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
@ -34,8 +34,6 @@ import okhttp3.Request
import okhttp3.RequestBody import okhttp3.RequestBody
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.io.IOException import java.io.IOException
@ -214,9 +212,7 @@ class Mango : ConfigurableSource, UnmeteredSource, HttpSource() {
Headers.Builder() Headers.Builder()
.add("User-Agent", "Tachiyomi Mango v${AppInfo.getVersionName()}") .add("User-Agent", "Tachiyomi Mango v${AppInfo.getVersionName()}")
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override val client: OkHttpClient = override val client: OkHttpClient =
network.client.newBuilder() network.client.newBuilder()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'NamiComi' extName = 'NamiComi'
extClass = '.NamiComiFactory' extClass = '.NamiComiFactory'
extVersionCode = 2 extVersionCode = 3
isNsfw = false isNsfw = false
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.namicomi package eu.kanade.tachiyomi.extension.all.namicomi
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -22,6 +21,7 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import okhttp3.CacheControl import okhttp3.CacheControl
@ -31,8 +31,6 @@ import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response import okhttp3.Response
import okio.IOException import okio.IOException
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
abstract class NamiComi(final override val lang: String, private val extLang: String = lang) : abstract class NamiComi(final override val lang: String, private val extLang: String = lang) :
ConfigurableSource, HttpSource() { ConfigurableSource, HttpSource() {
@ -41,9 +39,7 @@ abstract class NamiComi(final override val lang: String, private val extLang: St
override val baseUrl = NamiComiConstants.webUrl override val baseUrl = NamiComiConstants.webUrl
override val supportsLatest = true override val supportsLatest = true
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val helper = NamiComiHelper(lang) private val helper = NamiComiHelper(lang)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'NHentai' extName = 'NHentai'
extClass = '.NHFactory' extClass = '.NHFactory'
extVersionCode = 50 extVersionCode = 51
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.nhentai package eu.kanade.tachiyomi.extension.all.nhentai
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -25,6 +24,7 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
@ -34,8 +34,6 @@ import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
open class NHentai( open class NHentai(
@ -53,9 +51,7 @@ open class NHentai(
private val json: Json by injectLazy() private val json: Json by injectLazy()
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override val client: OkHttpClient by lazy { override val client: OkHttpClient by lazy {
network.cloudflareClient.newBuilder() network.cloudflareClient.newBuilder()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'NovelCool' extName = 'NovelCool'
extClass = '.NovelCoolFactory' extClass = '.NovelCoolFactory'
extVersionCode = 3 extVersionCode = 4
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.novelcool package eu.kanade.tachiyomi.extension.all.novelcool
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -17,6 +16,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
@ -32,8 +32,6 @@ import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import org.jsoup.select.Elements import org.jsoup.select.Elements
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -62,9 +60,7 @@ open class NovelCool(
private val json: Json by injectLazy() private val json: Json by injectLazy()
private val preference by lazy { private val preference by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun fetchPopularManga(page: Int): Observable<MangasPage> { override fun fetchPopularManga(page: Int): Observable<MangasPage> {
return when (preference.useAppApi) { return when (preference.useAppApi) {

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Pepper&Carrot' extName = 'Pepper&Carrot'
extClass = '.PepperCarrot' extClass = '.PepperCarrot'
extVersionCode = 2 extVersionCode = 3
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.peppercarrot package eu.kanade.tachiyomi.extension.all.peppercarrot
import android.app.Application
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
@ -11,6 +10,8 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferences
import keiyoushi.utils.getPreferencesLazy
import okhttp3.CacheControl import okhttp3.CacheControl
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
@ -18,8 +19,6 @@ import org.jsoup.nodes.TextNode
import org.jsoup.select.Evaluator import org.jsoup.select.Evaluator
import rx.Observable import rx.Observable
import rx.Single import rx.Single
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
@ -31,9 +30,7 @@ class PepperCarrot : HttpSource(), ConfigurableSource {
override val baseUrl = BASE_URL override val baseUrl = BASE_URL
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)!!
}
override fun fetchPopularManga(page: Int): Observable<MangasPage> = Single.create<MangasPage> { override fun fetchPopularManga(page: Int): Observable<MangasPage> = Single.create<MangasPage> {
updateLangData(client, headers, preferences) updateLangData(client, headers, preferences)

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Photos18' extName = 'Photos18'
extClass = '.Photos18' extClass = '.Photos18'
extVersionCode = 5 extVersionCode = 6
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.photos18 package eu.kanade.tachiyomi.extension.all.photos18
import android.app.Application
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
@ -13,6 +12,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import okhttp3.Headers import okhttp3.Headers
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
@ -21,8 +21,6 @@ import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.select.Evaluator import org.jsoup.select.Evaluator
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class Photos18 : HttpSource(), ConfigurableSource { class Photos18 : HttpSource(), ConfigurableSource {
override val name = "Photos18" override val name = "Photos18"
@ -156,9 +154,7 @@ class Photos18 : HttpSource(), ConfigurableSource {
} }
} }
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)!!
}
private val useTrad get() = preferences.getBoolean("ZH_HANT", false) private val useTrad get() = preferences.getBoolean("ZH_HANT", false)

View File

@ -1,4 +1,5 @@
package eu.kanade.tachiyomi.extension.all.pixiv package eu.kanade.tachiyomi.extension.all.pixiv
import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter
private val TYPE_VALUES = arrayOf("All", "Illustrations", "Manga") private val TYPE_VALUES = arrayOf("All", "Illustrations", "Manga")

View File

@ -1,4 +1,5 @@
package eu.kanade.tachiyomi.extension.all.pixiv package eu.kanade.tachiyomi.extension.all.pixiv
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.JsonPrimitive

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Project Suki' extName = 'Project Suki'
extClass = '.ProjectSuki' extClass = '.ProjectSuki'
extVersionCode = 4 extVersionCode = 5
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -22,6 +22,7 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.model.UpdateStrategy
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferences
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
@ -188,7 +189,7 @@ class ProjectSuki : HttpSource(), ConfigurableSource {
override val id: Long = 8965918600406781666L override val id: Long = 8965918600406781666L
/** Handles extension preferences found in Extensions &gt; Project Suki &gt; Gear icon */ /** Handles extension preferences found in Extensions &gt; Project Suki &gt; Gear icon */
private val preferences = ProjectSukiPreferences(id) private val preferences = ProjectSukiPreferences(getPreferences())
/** See [Kotlinx-Serialization](https://github.com/Kotlin/kotlinx.serialization). */ /** See [Kotlinx-Serialization](https://github.com/Kotlin/kotlinx.serialization). */
private val json: Json = Json { private val json: Json = Json {

View File

@ -1,14 +1,11 @@
package eu.kanade.tachiyomi.extension.all.projectsuki package eu.kanade.tachiyomi.extension.all.projectsuki
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.EditTextPreference import androidx.preference.EditTextPreference
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.lib.randomua.addRandomUAPreferenceToScreen import eu.kanade.tachiyomi.lib.randomua.addRandomUAPreferenceToScreen
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.util.Locale import java.util.Locale
/** /**
@ -20,9 +17,7 @@ private inline val INFO: Nothing get() = error("INFO")
/** /**
* @author Federico d'Alonzo &lt;me@npgx.dev&gt; * @author Federico d'Alonzo &lt;me@npgx.dev&gt;
*/ */
class ProjectSukiPreferences(id: Long) { class ProjectSukiPreferences(internal val shared: SharedPreferences) {
internal val shared by lazy { Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) }
abstract inner class PSPreference<Raw : Any, T : Any>(val preferenceIdentifier: String, val default: Raw) { abstract inner class PSPreference<Raw : Any, T : Any>(val preferenceIdentifier: String, val default: Raw) {

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Simply Cosplay' extName = 'Simply Cosplay'
extClass = '.SimplyCosplay' extClass = '.SimplyCosplay'
extVersionCode = 1 extVersionCode = 2
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.simplycosplay package eu.kanade.tachiyomi.extension.all.simplycosplay
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.util.Log import android.util.Log
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -16,6 +15,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.HttpUrl import okhttp3.HttpUrl
@ -24,8 +24,6 @@ import okhttp3.Interceptor
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.io.IOException import java.io.IOException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -53,9 +51,7 @@ class SimplyCosplay : HttpSource(), ConfigurableSource {
private val json: Json by injectLazy() private val json: Json by injectLazy()
private val preference by lazy { private val preference by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private fun tokenIntercept(chain: Interceptor.Chain): Response { private fun tokenIntercept(chain: Interceptor.Chain): Response {
val request = chain.request() val request = chain.request()

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Simply Hentai' extName = 'Simply Hentai'
extClass = '.SimplyHentaiFactory' extClass = '.SimplyHentaiFactory'
extVersionCode = 7 extVersionCode = 8
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.simplyhentai package eu.kanade.tachiyomi.extension.all.simplyhentai
import android.app.Application
import android.net.Uri import android.net.Uri
import androidx.preference.EditTextPreference import androidx.preference.EditTextPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -12,11 +11,10 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream import kotlinx.serialization.json.decodeFromStream
import okhttp3.Response import okhttp3.Response
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -40,9 +38,7 @@ open class SimplyHentai(
private val json: Json by injectLazy() private val json: Json by injectLazy()
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)!!
}
override fun popularMangaRequest(page: Int) = override fun popularMangaRequest(page: Int) =
Uri.parse("$apiUrl/tag/$langName").buildUpon().run { Uri.parse("$apiUrl/tag/$langName").buildUpon().run {

View File

@ -3,7 +3,7 @@ ext {
extClass = '.ThunderScansFactory' extClass = '.ThunderScansFactory'
themePkg = 'mangathemesia' themePkg = 'mangathemesia'
baseUrl = 'https://en-thunderscans.com' baseUrl = 'https://en-thunderscans.com'
overrideVersionCode = 9 overrideVersionCode = 10
isNsfw = false isNsfw = false
} }

View File

@ -3,7 +3,7 @@ ext {
extClass = '.WebtoonsFactory' extClass = '.WebtoonsFactory'
themePkg = 'webtoons' themePkg = 'webtoons'
baseUrl = 'https://www.webtoons.com' baseUrl = 'https://www.webtoons.com'
overrideVersionCode = 39 overrideVersionCode = 40
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.all.webtoons package eu.kanade.tachiyomi.extension.all.webtoons
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
@ -10,12 +9,11 @@ import eu.kanade.tachiyomi.multisrc.webtoons.Webtoons
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive import kotlinx.serialization.json.jsonPrimitive
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -32,9 +30,7 @@ open class WebtoonsSrc(
.addInterceptor(TextInterceptor()) .addInterceptor(TextInterceptor())
.build() .build()
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun setupPreferenceScreen(screen: PreferenceScreen) { override fun setupPreferenceScreen(screen: PreferenceScreen) {
val authorsNotesPref = SwitchPreferenceCompat(screen.context).apply { val authorsNotesPref = SwitchPreferenceCompat(screen.context).apply {

View File

@ -2,7 +2,7 @@ ext {
extName = 'Dilar' extName = 'Dilar'
extClass = '.Dilar' extClass = '.Dilar'
themePkg = 'gmanga' themePkg = 'gmanga'
overrideVersionCode = 2 overrideVersionCode = 3
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.ar.dilar package eu.kanade.tachiyomi.extension.ar.dilar
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.widget.Toast import android.widget.Toast
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -10,10 +9,9 @@ import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import keiyoushi.utils.getPreferencesLazy
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
private const val MIRROR_PREF_KEY = "MIRROR" private const val MIRROR_PREF_KEY = "MIRROR"
private const val MIRROR_PREF_TITLE = "Dilar : Mirror Urls" private const val MIRROR_PREF_TITLE = "Dilar : Mirror Urls"
@ -65,7 +63,5 @@ class Dilar :
override val cdnUrl by lazy { baseUrl } override val cdnUrl by lazy { baseUrl }
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
} }

View File

@ -3,7 +3,7 @@ ext {
extClass = '.EmpireWebtoon' extClass = '.EmpireWebtoon'
themePkg = 'madara' themePkg = 'madara'
baseUrl = 'https://webtoonempire-ron.com' baseUrl = 'https://webtoonempire-ron.com'
overrideVersionCode = 4 overrideVersionCode = 5
isNsfw = true isNsfw = true
} }

View File

@ -1,13 +1,11 @@
package eu.kanade.tachiyomi.extension.ar.empirewebtoon package eu.kanade.tachiyomi.extension.ar.empirewebtoon
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.widget.Toast import android.widget.Toast
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.multisrc.madara.Madara import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import uy.kohesive.injekt.Injekt import keiyoushi.utils.getPreferences
import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -20,8 +18,7 @@ class EmpireWebtoon :
), ),
ConfigurableSource { ConfigurableSource {
private val preferences: SharedPreferences = private val preferences: SharedPreferences = getPreferences()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
init { init {
preferences.getString(DEFAULT_BASE_URL_PREF, null).let { prefDefaultBaseUrl -> preferences.getString(DEFAULT_BASE_URL_PREF, null).let { prefDefaultBaseUrl ->

View File

@ -2,7 +2,7 @@ ext {
extName = 'Hentai Slayer' extName = 'Hentai Slayer'
extClass = '.HentaiSlayer' extClass = '.HentaiSlayer'
themePkg = 'fuzzydoodle' themePkg = 'fuzzydoodle'
overrideVersionCode = 2 overrideVersionCode = 3
isNsfw = true isNsfw = true
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.ar.hentaislayer package eu.kanade.tachiyomi.extension.ar.hentaislayer
import android.app.Application
import android.widget.Toast import android.widget.Toast
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
@ -8,8 +7,7 @@ import eu.kanade.tachiyomi.multisrc.fuzzydoodle.FuzzyDoodle
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import uy.kohesive.injekt.Injekt import keiyoushi.utils.getPreferencesLazy
import uy.kohesive.injekt.api.get
class HentaiSlayer : FuzzyDoodle("هنتاي سلاير", "https://hentaislayer.net", "ar"), ConfigurableSource { class HentaiSlayer : FuzzyDoodle("هنتاي سلاير", "https://hentaislayer.net", "ar"), ConfigurableSource {
@ -20,9 +18,7 @@ class HentaiSlayer : FuzzyDoodle("هنتاي سلاير", "https://hentaislayer.
override fun headersBuilder() = super.headersBuilder() override fun headersBuilder() = super.headersBuilder()
.set("Origin", baseUrl) .set("Origin", baseUrl)
private val preferences by lazy { private val preferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun latestPageRequest(page: Int) = GET("$baseUrl/latest-${getLatestTypes()}?page=$page", headers) override fun latestPageRequest(page: Int) = GET("$baseUrl/latest-${getLatestTypes()}?page=$page", headers)

View File

@ -3,7 +3,7 @@ ext {
extClass = '.Mangalek' extClass = '.Mangalek'
themePkg = 'madara' themePkg = 'madara'
baseUrl = 'https://lekmanga.net' baseUrl = 'https://lekmanga.net'
overrideVersionCode = 7 overrideVersionCode = 8
isNsfw = false isNsfw = false
} }

View File

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.ar.mangalek package eu.kanade.tachiyomi.extension.ar.mangalek
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.widget.Toast import android.widget.Toast
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -11,13 +10,12 @@ import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import keiyoushi.utils.getPreferencesLazy
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import okhttp3.FormBody import okhttp3.FormBody
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -54,9 +52,7 @@ class Mangalek :
} }
} }
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
override fun setupPreferenceScreen(screen: PreferenceScreen) { override fun setupPreferenceScreen(screen: PreferenceScreen) {
val mirrorPref = ListPreference(screen.context).apply { val mirrorPref = ListPreference(screen.context).apply {

View File

@ -3,7 +3,7 @@ ext {
extClass = '.Mangalink' extClass = '.Mangalink'
themePkg = 'madara' themePkg = 'madara'
baseUrl = 'https://link-manga.com' baseUrl = 'https://link-manga.com'
overrideVersionCode = 3 overrideVersionCode = 4
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -1,13 +1,11 @@
package eu.kanade.tachiyomi.extension.ar.mangalink package eu.kanade.tachiyomi.extension.ar.mangalink
import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.widget.Toast import android.widget.Toast
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.multisrc.madara.Madara import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import uy.kohesive.injekt.Injekt import keiyoushi.utils.getPreferencesLazy
import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
@ -24,9 +22,7 @@ class Mangalink :
override val useLoadMoreRequest = LoadMoreStrategy.Always override val useLoadMoreRequest = LoadMoreStrategy.Always
override val baseUrl by lazy { getPrefBaseUrl() } override val baseUrl by lazy { getPrefBaseUrl() }
private val preferences: SharedPreferences by lazy { private val preferences: SharedPreferences by getPreferencesLazy()
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
companion object { companion object {
private const val RESTART_TACHIYOMI = ".لتطبيق الإعدادات الجديدة Tachiyomi أعد تشغيل" private const val RESTART_TACHIYOMI = ".لتطبيق الإعدادات الجديدة Tachiyomi أعد تشغيل"

View File

@ -3,7 +3,7 @@ ext {
extClass = '.MangaSwat' extClass = '.MangaSwat'
themePkg = 'mangathemesia' themePkg = 'mangathemesia'
baseUrl = 'https://swatscans.com' baseUrl = 'https://swatscans.com'
overrideVersionCode = 25 overrideVersionCode = 26
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

Some files were not shown because too many files have changed in this diff Show More