From 6eb859b9f1e24d9904d8af7cd97086ed9b6ea19d Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Wed, 27 Jul 2022 23:24:41 +0300 Subject: [PATCH] Fix enabling disabled new sources Co-authored-by: Koitharu <8948226+nv95@users.noreply.github.com> --- .../ui/selector/ScrobblingSelectorBottomSheet.kt | 4 +--- .../settings/newsources/NewSourcesViewModel.kt | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/ScrobblingSelectorBottomSheet.kt b/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/ScrobblingSelectorBottomSheet.kt index e278ae0ca..4da8ccb08 100644 --- a/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/ScrobblingSelectorBottomSheet.kt +++ b/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/ScrobblingSelectorBottomSheet.kt @@ -8,8 +8,6 @@ import android.widget.Toast import androidx.appcompat.widget.SearchView import androidx.fragment.app.FragmentManager import coil.ImageLoader -import dagger.hilt.android.AndroidEntryPoint -import javax.inject.Inject import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.domain.MangaIntent import org.koitharu.kotatsu.base.ui.BaseBottomSheet @@ -24,8 +22,8 @@ import org.koitharu.kotatsu.scrobbling.ui.selector.adapter.ShikimoriSelectorAdap import org.koitharu.kotatsu.utils.ext.assistedViewModels import org.koitharu.kotatsu.utils.ext.getDisplayMessage import org.koitharu.kotatsu.utils.ext.withArgs +import javax.inject.Inject -@AndroidEntryPoint class ScrobblingSelectorBottomSheet : BaseBottomSheet(), OnListItemClickListener, diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/newsources/NewSourcesViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/settings/newsources/NewSourcesViewModel.kt index 9d5d2458a..52151b6a3 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/newsources/NewSourcesViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/newsources/NewSourcesViewModel.kt @@ -1,5 +1,6 @@ package org.koitharu.kotatsu.settings.newsources +import androidx.core.os.LocaleListCompat import androidx.lifecycle.MutableLiveData import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject @@ -7,6 +8,7 @@ import org.koitharu.kotatsu.base.ui.BaseViewModel import org.koitharu.kotatsu.core.model.getLocaleTitle import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.settings.sources.model.SourceConfigItem +import org.koitharu.kotatsu.utils.ext.mapToSet @HiltViewModel class NewSourcesViewModel @Inject constructor( @@ -33,14 +35,23 @@ class NewSourcesViewModel @Inject constructor( } private fun buildList() { - val hidden = settings.hiddenSources + val locales = LocaleListCompat.getDefault().mapToSet { it.language } + val pendingHidden = HashSet() sources.value = initialList.map { + val locale = it.locale + val isEnabledByLocale = locale == null || locale in locales + if (!isEnabledByLocale) { + pendingHidden += it.name + } SourceConfigItem.SourceItem( source = it, summary = it.getLocaleTitle(), - isEnabled = it.name !in hidden, + isEnabled = isEnabledByLocale, isDraggable = false, ) } + if (pendingHidden.isNotEmpty()) { + settings.hiddenSources += pendingHidden + } } }