diff --git a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt index 9bd4ef5cf..22c2319bf 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/model/MangaSource.kt @@ -1,10 +1,18 @@ package org.koitharu.kotatsu.core.model +import java.util.* import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.util.toTitleCase -import java.util.* fun MangaSource.getLocaleTitle(): String? { val lc = Locale(locale ?: return null) return lc.getDisplayLanguage(lc).toTitleCase(lc) +} + +@Suppress("FunctionName") +fun MangaSource(name: String): MangaSource? { + MangaSource.values().forEach { + if (it.name == name) return it + } + return null } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/FaviconMapper.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/FaviconMapper.kt index ba5412a50..0f994ecaa 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/FaviconMapper.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/FaviconMapper.kt @@ -5,7 +5,7 @@ import coil.map.Mapper import coil.request.Options import okhttp3.HttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl -import org.koitharu.kotatsu.parsers.model.MangaSource +import org.koitharu.kotatsu.core.model.MangaSource class FaviconMapper : Mapper { @@ -13,7 +13,7 @@ class FaviconMapper : Mapper { if (data.scheme != "favicon") { return null } - val mangaSource = MangaSource.valueOf(data.schemeSpecificPart) + val mangaSource = MangaSource(data.schemeSpecificPart) ?: return null val repo = MangaRepository(mangaSource) as RemoteMangaRepository return repo.getFaviconUrl().toHttpUrl() } diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt index 2f1495243..05d7f0906 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/onboard/OnboardViewModel.kt @@ -3,15 +3,16 @@ package org.koitharu.kotatsu.settings.onboard import androidx.collection.ArraySet import androidx.core.os.LocaleListCompat import androidx.lifecycle.MutableLiveData +import java.util.* import org.koitharu.kotatsu.base.ui.BaseViewModel +import org.koitharu.kotatsu.core.model.MangaSource import org.koitharu.kotatsu.core.prefs.AppSettings -import org.koitharu.kotatsu.parsers.model.MangaSource +import org.koitharu.kotatsu.parsers.util.mapNotNullToSet import org.koitharu.kotatsu.parsers.util.mapToSet import org.koitharu.kotatsu.parsers.util.toTitleCase import org.koitharu.kotatsu.settings.onboard.model.SourceLocale import org.koitharu.kotatsu.utils.ext.map import org.koitharu.kotatsu.utils.ext.mapToSet -import java.util.* class OnboardViewModel( private val settings: AppSettings, @@ -27,7 +28,7 @@ class OnboardViewModel( init { if (settings.isSourcesSelected) { - selectedLocales.removeAll(settings.hiddenSources.mapToSet { x -> MangaSource.valueOf(x).locale }) + selectedLocales.removeAll(settings.hiddenSources.mapNotNullToSet { x -> MangaSource(x)?.locale }) } else { val deviceLocales = LocaleListCompat.getDefault().mapToSet { x -> x.language @@ -66,7 +67,7 @@ class OnboardViewModel( SourceLocale( key = key, title = locale?.getDisplayLanguage(locale)?.toTitleCase(locale), - isChecked = key in selectedLocales + isChecked = key in selectedLocales, ) }.sortedWith(SourceLocaleComparator()) }