Maintain source info in the database. (#6389)

* Maintain Source Info in database

* Review changes and cleanups

* Review changes 2

* Review Changes 3
This commit is contained in:
AntsyLich
2022-06-14 19:10:40 +06:00
committed by GitHub
parent a01c370d63
commit 9d5b7de1d8
28 changed files with 307 additions and 48 deletions

View File

@@ -366,7 +366,10 @@ class MainActivity : BaseActivity() {
// Extension updates
try {
ExtensionGithubApi().checkForUpdates(this@MainActivity)?.let { pendingUpdates ->
ExtensionGithubApi().checkForUpdates(
this@MainActivity,
fromAvailableExtensionList = true
)?.let { pendingUpdates ->
preferences.extensionUpdatesCount().set(pendingUpdates.size)
}
} catch (e: Exception) {

View File

@@ -1140,7 +1140,9 @@ class MangaController :
private fun downloadChapters(chapters: List<ChapterItem>) {
if (source is SourceManager.StubSource) {
activity?.toast(R.string.loader_not_implemented_error)
activity?.let {
it.toast(it.getString(R.string.source_not_installed, source?.toString().orEmpty()))
}
return
}

View File

@@ -228,11 +228,7 @@ class MangaInfoHeaderAdapter(
*/
private fun setMangaInfo() {
// Update full title TextView.
binding.mangaFullTitle.text = if (manga.title.isBlank()) {
view.context.getString(R.string.unknown)
} else {
manga.title
}
binding.mangaFullTitle.text = manga.title.ifBlank { view.context.getString(R.string.unknown) }
// Update author TextView.
binding.mangaAuthor.text = if (manga.author.isNullOrBlank()) {
@@ -249,6 +245,8 @@ class MangaInfoHeaderAdapter(
}
// If manga source is known update source TextView.
binding.mangaMissingSourceIcon.isVisible = source is SourceManager.StubSource
val mangaSource = source.toString()
with(binding.mangaSource) {
val enabledLanguages = preferences.enabledLanguages().get()

View File

@@ -6,6 +6,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.source.LocalSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
import eu.kanade.tachiyomi.util.system.logcat
@@ -87,6 +88,7 @@ class ChapterLoader(
is LocalSource.Format.Epub -> EpubPageLoader(format.file)
}
}
source is SourceManager.StubSource -> throw source.getSourceNotInstalledException()
else -> error(context.getString(R.string.loader_not_implemented_error))
}
}

View File

@@ -10,7 +10,6 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.ClearDatabaseSourceItemBinding
import eu.kanade.tachiyomi.source.LocalSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.icon
data class ClearDatabaseSourceItem(val source: Source, private val mangaCount: Long) : AbstractFlexibleItem<ClearDatabaseSourceItem.Holder>() {
@@ -37,9 +36,9 @@ data class ClearDatabaseSourceItem(val source: Source, private val mangaCount: L
itemView.post {
when {
source.id == LocalSource.ID -> binding.thumbnail.setImageResource(R.mipmap.ic_local_source)
source is SourceManager.StubSource -> binding.thumbnail.setImageDrawable(null)
source.icon() != null -> binding.thumbnail.setImageDrawable(source.icon())
source.icon() != null && source.id != LocalSource.ID ->
binding.thumbnail.setImageDrawable(source.icon())
else -> binding.thumbnail.setImageResource(R.mipmap.ic_local_source)
}
}