fix: scanlator | language selection

This commit is contained in:
rebelonion 2024-05-01 21:08:33 -05:00
parent deda67a070
commit a3e1cc45b3
3 changed files with 11 additions and 2 deletions

View file

@ -102,6 +102,9 @@ class MangaReadAdapter(
showUserTextListener = { MainScope().launch { binding.animeSourceTitle.text = it } }
}
}
media.selected?.scanlators?.let {
hiddenScanlators.addAll(it)
}
binding.animeSource.setAdapter(
ArrayAdapter(
fragment.requireContext(),
@ -127,7 +130,7 @@ class MangaReadAdapter(
// Check if 'extension' and 'selected' properties exist and are accessible
(mangaReadSources[source] as? DynamicMangaParser)?.let { ext ->
ext.sourceLanguage = i
fragment.onLangChange(i)
fragment.onLangChange(i, ext.saveName)
fragment.onSourceChange(media.selected!!.sourceIndex).apply {
binding.animeSourceTitle.text = showUserText
showUserTextListener =

View file

@ -321,11 +321,12 @@ open class MangaReadFragment : Fragment(), ScanlatorSelectionListener {
return model.mangaReadSources?.get(i)!!
}
fun onLangChange(i: Int) {
fun onLangChange(i: Int, saveName: String) {
val selected = model.loadSelected(media)
selected.langIndex = i
model.saveSelected(media.id, selected)
media.selected = selected
PrefManager.removeCustomVal("${saveName}_${media.id}")
}
fun onScanlatorChange(list: List<String>) {

View file

@ -54,6 +54,11 @@ abstract class BaseParser {
* Isn't necessary to override, but recommended, if you want to improve auto search results
* **/
open suspend fun autoSearch(mediaObj: Media): ShowResponse? {
(this as? DynamicMangaParser)?.let { ext ->
mediaObj.selected?.langIndex?.let {
ext.sourceLanguage = it
}
}
var response: ShowResponse? = loadSavedShowResponse(mediaObj.id)
if (response != null && this !is OfflineMangaParser && this !is OfflineAnimeParser) {
saveShowResponse(mediaObj.id, response, true)