eliminate the need for restart after changing preferences

This commit is contained in:
wasu-code 2025-04-04 15:08:51 +02:00
parent 063f3166d2
commit ecf614d5ee

View file

@ -60,11 +60,13 @@ class NewGrounds : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
// Latest // Latest
private val latestSection = preferences.getString("LATEST", PREF_SECTIONS["Latest"])!! private fun getLatestSection(): String {
return preferences.getString("LATEST", PREF_SECTIONS["Latest"])!!
}
override fun latestUpdatesRequest(page: Int): Request { override fun latestUpdatesRequest(page: Int): Request {
val offset = (page - 1) * PAGE_SIZE val offset = (page - 1) * PAGE_SIZE
return GET("$baseUrl/$latestSection?offset=$offset", headers) return GET("$baseUrl/${getLatestSection()}?offset=$offset", headers)
} }
override fun latestUpdatesNextPageSelector(): String = "#load-more-items a" override fun latestUpdatesNextPageSelector(): String = "#load-more-items a"
@ -74,19 +76,21 @@ class NewGrounds : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
return super.latestUpdatesParse(response) return super.latestUpdatesParse(response)
} }
override fun latestUpdatesSelector(): String = animeSelector(latestSection) override fun latestUpdatesSelector(): String = animeSelector(getLatestSection())
override fun latestUpdatesFromElement(element: Element): SAnime { override fun latestUpdatesFromElement(element: Element): SAnime {
return animeFromElement(element, latestSection) return animeFromElement(element, getLatestSection())
} }
// Browse // Browse
private val popularSection = preferences.getString("POPULAR", PREF_SECTIONS["Popular"])!! private fun getPopularSection(): String {
return preferences.getString("POPULAR", PREF_SECTIONS["Popular"])!!
}
override fun popularAnimeRequest(page: Int): Request { override fun popularAnimeRequest(page: Int): Request {
val offset = (page - 1) * PAGE_SIZE val offset = (page - 1) * PAGE_SIZE
return GET("$baseUrl/$popularSection?offset=$offset", headers) return GET("$baseUrl/${getPopularSection()}?offset=$offset", headers)
} }
override fun popularAnimeNextPageSelector(): String = "#load-more-items a" override fun popularAnimeNextPageSelector(): String = "#load-more-items a"
@ -96,10 +100,10 @@ class NewGrounds : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
return super.popularAnimeParse(response) return super.popularAnimeParse(response)
} }
override fun popularAnimeSelector(): String = animeSelector(popularSection) override fun popularAnimeSelector(): String = animeSelector(getPopularSection())
override fun popularAnimeFromElement(element: Element): SAnime { override fun popularAnimeFromElement(element: Element): SAnime {
return animeFromElement(element, popularSection) return animeFromElement(element, getPopularSection())
} }
// Search // Search
@ -402,7 +406,6 @@ class NewGrounds : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
setOnPreferenceChangeListener { _, newValue -> setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String val selected = newValue as String
Toast.makeText(screen.context, "Restart app to apply new setting.", Toast.LENGTH_LONG).show()
preferences.edit().putString(key, selected).commit() preferences.edit().putString(key, selected).commit()
} }
}.also(screen::addPreference) }.also(screen::addPreference)
@ -417,7 +420,6 @@ class NewGrounds : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
setOnPreferenceChangeListener { _, newValue -> setOnPreferenceChangeListener { _, newValue ->
val selected = newValue as String val selected = newValue as String
Toast.makeText(screen.context, "Restart app to apply new setting.", Toast.LENGTH_LONG).show()
preferences.edit().putString(key, selected).commit() preferences.edit().putString(key, selected).commit()
} }
}.also(screen::addPreference) }.also(screen::addPreference)
@ -507,12 +509,11 @@ class NewGrounds : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
* If cookie is missing: displays a toast with information. * If cookie is missing: displays a toast with information.
*/ */
private fun checkAdultContentFiltered(headers: Headers) { private fun checkAdultContentFiltered(headers: Headers) {
val shouldCheck = preferences.getBoolean("PROMPT_CONTENT_FILTERED", true) val usernameCookie: Boolean = headers.values("Set-Cookie").any { it.startsWith("NG_GG_username=") }
if (!shouldCheck) return if (usernameCookie) return // user already logged in
val usernameCookie = headers.values("Set-Cookie").any { it.startsWith("NG_GG_username=") } val shouldPrompt = preferences.getBoolean("PROMPT_CONTENT_FILTERED", true)
if (shouldPrompt) {
if (!usernameCookie) {
handler.post { handler.post {
Toast.makeText(context, "Log in via WebView to include adult content", Toast.LENGTH_SHORT).show() Toast.makeText(context, "Log in via WebView to include adult content", Toast.LENGTH_SHORT).show()
} }