Fix enabling disabled new sources

Co-authored-by: Koitharu <8948226+nv95@users.noreply.github.com>
This commit is contained in:
Zakhar Timoshenko
2022-07-27 23:24:41 +03:00
parent 19f1322246
commit 6eb859b9f1
2 changed files with 14 additions and 5 deletions

View File

@@ -8,8 +8,6 @@ import android.widget.Toast
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import coil.ImageLoader import coil.ImageLoader
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
import org.koitharu.kotatsu.R import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.domain.MangaIntent import org.koitharu.kotatsu.base.domain.MangaIntent
import org.koitharu.kotatsu.base.ui.BaseBottomSheet 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.assistedViewModels
import org.koitharu.kotatsu.utils.ext.getDisplayMessage import org.koitharu.kotatsu.utils.ext.getDisplayMessage
import org.koitharu.kotatsu.utils.ext.withArgs import org.koitharu.kotatsu.utils.ext.withArgs
import javax.inject.Inject
@AndroidEntryPoint
class ScrobblingSelectorBottomSheet : class ScrobblingSelectorBottomSheet :
BaseBottomSheet<SheetScrobblingSelectorBinding>(), BaseBottomSheet<SheetScrobblingSelectorBinding>(),
OnListItemClickListener<ScrobblerManga>, OnListItemClickListener<ScrobblerManga>,

View File

@@ -1,5 +1,6 @@
package org.koitharu.kotatsu.settings.newsources package org.koitharu.kotatsu.settings.newsources
import androidx.core.os.LocaleListCompat
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject 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.model.getLocaleTitle
import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.settings.sources.model.SourceConfigItem import org.koitharu.kotatsu.settings.sources.model.SourceConfigItem
import org.koitharu.kotatsu.utils.ext.mapToSet
@HiltViewModel @HiltViewModel
class NewSourcesViewModel @Inject constructor( class NewSourcesViewModel @Inject constructor(
@@ -33,14 +35,23 @@ class NewSourcesViewModel @Inject constructor(
} }
private fun buildList() { private fun buildList() {
val hidden = settings.hiddenSources val locales = LocaleListCompat.getDefault().mapToSet { it.language }
val pendingHidden = HashSet<String>()
sources.value = initialList.map { sources.value = initialList.map {
val locale = it.locale
val isEnabledByLocale = locale == null || locale in locales
if (!isEnabledByLocale) {
pendingHidden += it.name
}
SourceConfigItem.SourceItem( SourceConfigItem.SourceItem(
source = it, source = it,
summary = it.getLocaleTitle(), summary = it.getLocaleTitle(),
isEnabled = it.name !in hidden, isEnabled = isEnabledByLocale,
isDraggable = false, isDraggable = false,
) )
} }
if (pendingHidden.isNotEmpty()) {
settings.hiddenSources += pendingHidden
}
} }
} }