From c835140fe83393be8c1e1ef5cceab3837b059dd2 Mon Sep 17 00:00:00 2001 From: Luqman <16263232+Riztard@users.noreply.github.com> Date: Sun, 18 Feb 2024 03:50:00 +0700 Subject: [PATCH] Add custom Thumbnail Url. Support backup & restore (#1059) * Add custom thumbnail url. Support backup & restore - add custom thumbnail url in edit info/custom - include it in backup n restore * increase chop char * edit chop char again to match screenshoot * tweak truncating middle part * apply edited cover to history, updates , others * simplify placeholder logic --------- Co-authored-by: jobobby04 --- .../eu/kanade/domain/manga/model/Manga.kt | 6 +++--- .../components/BrowseSourceComfortableGrid.kt | 2 +- .../components/BrowseSourceCompactGrid.kt | 2 +- .../browse/components/BrowseSourceList.kt | 2 +- .../HistoryScreenModelStateProvider.kt | 2 +- .../HistoryWithRelationsProvider.kt | 6 +++--- .../components/LibraryComfortableGrid.kt | 2 +- .../library/components/LibraryCompactGrid.kt | 2 +- .../library/components/LibraryList.kt | 2 +- .../create/creators/MangaBackupCreator.kt | 1 + .../data/backup/models/BackupManga.kt | 4 +++- .../backup/restore/restorers/MangaRestorer.kt | 4 +++- .../ui/library/LibraryScreenModel.kt | 1 + .../tachiyomi/ui/manga/EditMangaDialog.kt | 14 ++++++++++++++ .../tachiyomi/ui/manga/MangaScreenModel.kt | 5 +++++ app/src/main/res/layout/edit_manga_dialog.xml | 16 ++++++++++++++++ .../tachiyomi/data/history/HistoryMapper.kt | 2 +- .../data/manga/CustomMangaRepositoryImpl.kt | 4 ++++ .../java/tachiyomi/data/manga/MangaMapper.kt | 4 ++-- .../data/updates/UpdatesRepositoryImpl.kt | 4 ++-- .../domain/manga/model/CustomMangaInfo.kt | 1 + .../tachiyomi/domain/manga/model/Manga.kt | 7 +++++-- .../domain/manga/model/MangaCover.kt | 19 ++++++++++++++++--- .../domain/manga/model/MangaUpdate.kt | 2 +- .../commonMain/resources/MR/base/strings.xml | 1 + .../commonMain/resources/MR/in/strings.xml | 1 + .../widget/BaseUpdatesGridGlanceWidget.kt | 2 +- .../kanade/tachiyomi/source/model/SManga.kt | 5 +++-- .../tachiyomi/source/model/SMangaImpl.kt | 2 ++ 29 files changed, 96 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt index c834552d0652..56203dd23e5d 100644 --- a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt +++ b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt @@ -55,6 +55,7 @@ fun Manga.copyFrom(other: SManga): Manga { // SY --> val author = other.author ?: ogAuthor val artist = other.artist ?: ogArtist + val thumbnailUrl = other.thumbnail_url ?: ogThumbnailUrl val description = other.description ?: ogDescription val genres = if (other.genre != null) { other.getGenres() @@ -62,15 +63,14 @@ fun Manga.copyFrom(other: SManga): Manga { ogGenre } // SY <-- - val thumbnailUrl = other.thumbnail_url ?: thumbnailUrl return this.copy( // SY --> ogAuthor = author, ogArtist = artist, + ogThumbnailUrl = thumbnailUrl, ogDescription = description, ogGenre = genres, // SY <-- - thumbnailUrl = thumbnailUrl, // SY --> ogStatus = other.status.toLong(), // SY <-- @@ -86,11 +86,11 @@ fun SManga.toDomainManga(sourceId: Long): Manga { ogTitle = title, ogArtist = artist, ogAuthor = author, + ogThumbnailUrl = thumbnail_url, ogDescription = description, ogGenre = getGenres(), ogStatus = status.toLong(), // SY <-- - thumbnailUrl = thumbnail_url, updateStrategy = update_strategy, initialized = initialized, source = sourceId, diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt index 4eba62822f76..3ff54e9a0852 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt @@ -86,7 +86,7 @@ private fun BrowseSourceComfortableGridItem( mangaId = manga.id, sourceId = manga.source, isMangaFavorite = manga.favorite, - url = manga.thumbnailUrl, + ogUrl = manga.thumbnailUrl, lastModified = manga.coverLastModified, ), coverAlpha = if (manga.favorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f, diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt index 99d271025ed6..8d6a07ab09d6 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt @@ -86,7 +86,7 @@ private fun BrowseSourceCompactGridItem( mangaId = manga.id, sourceId = manga.source, isMangaFavorite = manga.favorite, - url = manga.thumbnailUrl, + ogUrl = manga.thumbnailUrl, lastModified = manga.coverLastModified, ), coverAlpha = if (manga.favorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f, diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt index 234576705acb..8d301047a4ee 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt @@ -79,7 +79,7 @@ private fun BrowseSourceListItem( mangaId = manga.id, sourceId = manga.source, isMangaFavorite = manga.favorite, - url = manga.thumbnailUrl, + ogUrl = manga.thumbnailUrl, lastModified = manga.coverLastModified, ), coverAlpha = if (manga.favorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f, diff --git a/app/src/main/java/eu/kanade/presentation/history/HistoryScreenModelStateProvider.kt b/app/src/main/java/eu/kanade/presentation/history/HistoryScreenModelStateProvider.kt index 314d376bc9c5..c948ae1a7b70 100644 --- a/app/src/main/java/eu/kanade/presentation/history/HistoryScreenModelStateProvider.kt +++ b/app/src/main/java/eu/kanade/presentation/history/HistoryScreenModelStateProvider.kt @@ -103,7 +103,7 @@ class HistoryScreenModelStateProvider : PreviewParameterProvider */customMangaInfo: CustomMangaInfo?/* backupManga.customTitle = it.title backupManga.customArtist = it.artist backupManga.customAuthor = it.author + backupManga.customThumbnailUrl = it.thumbnailUrl backupManga.customDescription = it.description backupManga.customGenre = it.genre backupManga.customStatus = it.status?.toInt() ?: 0 diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt index 7b900dab363c..e6a4f6948710 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt @@ -45,6 +45,7 @@ data class BackupManga( @ProtoNumber(600) var mergedMangaReferences: List = emptyList(), @ProtoNumber(601) var flatMetadata: BackupFlatMetadata? = null, @ProtoNumber(602) var customStatus: Int = 0, + @ProtoNumber(603) var customThumbnailUrl: String? = null, // J2K specific values @ProtoNumber(800) var customTitle: String? = null, @@ -53,6 +54,7 @@ data class BackupManga( // skipping 803 due to using duplicate value in previous builds @ProtoNumber(804) var customDescription: String? = null, @ProtoNumber(805) var customGenre: List? = null, + ) { fun getMangaImpl(): Manga { return Manga.create().copy( @@ -61,11 +63,11 @@ data class BackupManga( ogTitle = this@BackupManga.title, ogArtist = this@BackupManga.artist, ogAuthor = this@BackupManga.author, + ogThumbnailUrl = this@BackupManga.thumbnailUrl, ogDescription = this@BackupManga.description, ogGenre = this@BackupManga.genre, ogStatus = this@BackupManga.status.toLong(), // SY <-- - thumbnailUrl = this@BackupManga.thumbnailUrl, favorite = this@BackupManga.favorite, source = this@BackupManga.source, dateAdded = this@BackupManga.dateAdded, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaRestorer.kt index fd1fc33815f8..79e5def68adf 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/MangaRestorer.kt @@ -120,7 +120,7 @@ class MangaRestorer( ogArtist = newer.artist, ogDescription = newer.description, ogGenre = newer.genre, - thumbnailUrl = newer.thumbnailUrl, + ogThumbnailUrl = newer.thumbnailUrl, ogStatus = newer.status, // SY <-- initialized = this.initialized || newer.initialized, @@ -507,6 +507,7 @@ class MangaRestorer( if (customTitle != null || customArtist != null || customAuthor != null || + customThumbnailUrl != null || customDescription != null || customGenre != null || customStatus != 0 @@ -516,6 +517,7 @@ class MangaRestorer( title = customTitle, author = customAuthor, artist = customArtist, + thumbnailUrl = customThumbnailUrl, description = customDescription, genre = customGenre, status = customStatus.takeUnless { it == 0 }?.toLong(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index 137bf44d973d..43a94a80aef9 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -729,6 +729,7 @@ class LibraryScreenModel( title = editedTitle.nullIfBlank(), author = manga.author.takeUnless { it == manga.ogAuthor }, artist = manga.artist.takeUnless { it == manga.ogArtist }, + thumbnailUrl = manga.thumbnailUrl.takeUnless { it == manga.ogThumbnailUrl }, description = manga.description.takeUnless { it == manga.ogDescription }, genre = manga.genre.takeUnless { it == manga.ogGenre }, status = manga.status.takeUnless { it == manga.ogStatus }?.toLong(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt index 594fa4bbc646..0c542dab5652 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt @@ -50,6 +50,7 @@ fun EditMangaDialog( title: String?, author: String?, artist: String?, + thumbnailUrl: String?, description: String?, tags: List?, status: Long?, @@ -69,6 +70,7 @@ fun EditMangaDialog( binding.title.text.toString(), binding.mangaAuthor.text.toString(), binding.mangaArtist.text.toString(), + binding.thumbnailUrl.text.toString(), binding.mangaDescription.text.toString(), binding.mangaGenresTags.getTextStrings(), binding.status.selectedItemPosition.let { @@ -157,6 +159,7 @@ private fun onViewCreated(manga: Manga, context: Context, binding: EditMangaDial binding.title.hint = context.stringResource(SYMR.strings.title_hint, manga.url) binding.mangaAuthor.setText(manga.author.orEmpty()) binding.mangaArtist.setText(manga.artist.orEmpty()) + binding.thumbnailUrl.setText(manga.thumbnailUrl.orEmpty()) binding.mangaDescription.setText(manga.description.orEmpty()) binding.mangaGenresTags.setChips(manga.genre.orEmpty().dropBlank(), scope) } else { @@ -169,12 +172,16 @@ private fun onViewCreated(manga: Manga, context: Context, binding: EditMangaDial if (manga.artist != manga.ogArtist) { binding.mangaArtist.append(manga.artist.orEmpty()) } + if (manga.thumbnailUrl != manga.ogThumbnailUrl) { + binding.thumbnailUrl.append(manga.thumbnailUrl.orEmpty()) + } if (manga.description != manga.ogDescription) { binding.mangaDescription.append(manga.description.orEmpty()) } binding.mangaGenresTags.setChips(manga.genre.orEmpty().dropBlank(), scope) binding.title.hint = context.stringResource(SYMR.strings.title_hint, manga.ogTitle) + binding.mangaAuthor.hint = context.stringResource(SYMR.strings.author_hint, manga.ogAuthor ?: "") binding.mangaArtist.hint = context.stringResource(SYMR.strings.artist_hint, manga.ogArtist ?: "") binding.mangaDescription.hint = @@ -182,6 +189,13 @@ private fun onViewCreated(manga: Manga, context: Context, binding: EditMangaDial SYMR.strings.description_hint, manga.ogDescription?.takeIf { it.isNotBlank() }?.let { it.replace("\n", " ").chop(20) } ?: "" ) + binding.thumbnailUrl.hint = + context.stringResource( + SYMR.strings.thumbnail_url_hint, + manga.ogThumbnailUrl?.let { + it.chop(40) + if (it.length > 46) "." + it.substringAfterLast(".").chop(6) else "" + } ?: "" + ) } binding.mangaGenresTags.clearFocus() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index 361e7d1b0c03..7c790a38183e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -488,6 +488,7 @@ class MangaScreenModel( title: String?, author: String?, artist: String?, + thumbnailUrl: String?, description: String?, tags: List?, status: Long?, @@ -498,11 +499,13 @@ class MangaScreenModel( val newTitle = if (title.isNullOrBlank()) manga.url else title.trim() val newAuthor = author?.trimOrNull() val newArtist = artist?.trimOrNull() + val newThumbnailUrl = thumbnailUrl?.trimOrNull() val newDesc = description?.trimOrNull() manga = manga.copy( ogTitle = newTitle, ogAuthor = author?.trimOrNull(), ogArtist = artist?.trimOrNull(), + ogThumbnailUrl = thumbnailUrl?.trimOrNull(), ogDescription = description?.trimOrNull(), ogGenre = tags?.nullIfEmpty(), ogStatus = status ?: 0, @@ -516,6 +519,7 @@ class MangaScreenModel( title = newTitle, author = newAuthor, artist = newArtist, + thumbnailUrl = newThumbnailUrl, description = newDesc, genre = tags, status = status, @@ -534,6 +538,7 @@ class MangaScreenModel( title?.trimOrNull(), author?.trimOrNull(), artist?.trimOrNull(), + thumbnailUrl?.trimOrNull(), description?.trimOrNull(), genre, status.takeUnless { it == state.manga.ogStatus }, diff --git a/app/src/main/res/layout/edit_manga_dialog.xml b/app/src/main/res/layout/edit_manga_dialog.xml index f4c753606cc6..205207812afa 100644 --- a/app/src/main/res/layout/edit_manga_dialog.xml +++ b/app/src/main/res/layout/edit_manga_dialog.xml @@ -87,6 +87,22 @@ + + + + + + ? = null, val status: Long? = null, @@ -82,6 +84,7 @@ class CustomMangaRepositoryImpl(context: Context) : CustomMangaRepository { title = this@MangaJson.title?.takeUnless { it.isBlank() }, author = this@MangaJson.author, artist = this@MangaJson.artist, + thumbnailUrl = this@MangaJson.thumbnailUrl, description = this@MangaJson.description, genre = this@MangaJson.genre, status = this@MangaJson.status?.takeUnless { it == 0L }, @@ -94,6 +97,7 @@ class CustomMangaRepositoryImpl(context: Context) : CustomMangaRepository { title, author, artist, + thumbnailUrl, description, genre, status, diff --git a/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt b/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt index 2ca2a48316cc..b9718f86fb8c 100644 --- a/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt +++ b/data/src/main/java/tachiyomi/data/manga/MangaMapper.kt @@ -49,11 +49,11 @@ object MangaMapper { ogTitle = title, ogArtist = artist, ogAuthor = author, + ogThumbnailUrl = thumbnailUrl, ogDescription = description, ogGenre = genre, ogStatus = status, // SY <-- - thumbnailUrl = thumbnailUrl, updateStrategy = updateStrategy, initialized = initialized, lastModifiedAt = lastModifiedAt, @@ -150,7 +150,7 @@ object MangaMapper { ogDescription = libraryView.description, ogGenre = libraryView.genre, ogStatus = libraryView.status, - thumbnailUrl = libraryView.thumbnail_url, + ogThumbnailUrl = libraryView.thumbnail_url, updateStrategy = libraryView.update_strategy, initialized = libraryView.initialized, fetchInterval = libraryView.calculate_interval.toInt(), diff --git a/data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt index 307e89ac2bf2..26047219b469 100644 --- a/data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt @@ -86,7 +86,7 @@ class UpdatesRepositoryImpl( mangaId = mangaId, sourceId = sourceId, isMangaFavorite = favorite, - url = thumbnailUrl, + ogUrl = thumbnailUrl, lastModified = coverLastModified, ), ) @@ -107,7 +107,7 @@ class UpdatesRepositoryImpl( mangaId = updatesView.mangaId, sourceId = updatesView.source, isMangaFavorite = updatesView.favorite, - url = updatesView.thumbnailUrl, + ogUrl = updatesView.thumbnailUrl, lastModified = updatesView.coverLastModified, ), ) diff --git a/domain/src/main/java/tachiyomi/domain/manga/model/CustomMangaInfo.kt b/domain/src/main/java/tachiyomi/domain/manga/model/CustomMangaInfo.kt index 7edaacb107f2..c8481ef87135 100644 --- a/domain/src/main/java/tachiyomi/domain/manga/model/CustomMangaInfo.kt +++ b/domain/src/main/java/tachiyomi/domain/manga/model/CustomMangaInfo.kt @@ -5,6 +5,7 @@ data class CustomMangaInfo( val title: String?, val author: String? = null, val artist: String? = null, + val thumbnailUrl: String? = null, val description: String? = null, val genre: List? = null, val status: Long? = null, diff --git a/domain/src/main/java/tachiyomi/domain/manga/model/Manga.kt b/domain/src/main/java/tachiyomi/domain/manga/model/Manga.kt index be17778fc714..23ae9ebb909e 100644 --- a/domain/src/main/java/tachiyomi/domain/manga/model/Manga.kt +++ b/domain/src/main/java/tachiyomi/domain/manga/model/Manga.kt @@ -24,11 +24,11 @@ data class Manga( val ogTitle: String, val ogArtist: String?, val ogAuthor: String?, + val ogThumbnailUrl: String?, val ogDescription: String?, val ogGenre: List?, val ogStatus: Long, // SY <-- - val thumbnailUrl: String?, val updateStrategy: UpdateStrategy, val initialized: Boolean, val lastModifiedAt: Long, @@ -51,6 +51,9 @@ data class Manga( val artist: String? get() = customMangaInfo?.artist ?: ogArtist + val thumbnailUrl: String? + get() = customMangaInfo?.thumbnailUrl ?: ogThumbnailUrl + val description: String? get() = customMangaInfo?.description ?: ogDescription @@ -147,11 +150,11 @@ data class Manga( // SY --> ogArtist = null, ogAuthor = null, + ogThumbnailUrl = null, ogDescription = null, ogGenre = null, ogStatus = 0L, // SY <-- - thumbnailUrl = null, updateStrategy = UpdateStrategy.ALWAYS_UPDATE, initialized = false, lastModifiedAt = 0L, diff --git a/domain/src/main/java/tachiyomi/domain/manga/model/MangaCover.kt b/domain/src/main/java/tachiyomi/domain/manga/model/MangaCover.kt index d2ca3b103f8b..68cf9d1c1239 100644 --- a/domain/src/main/java/tachiyomi/domain/manga/model/MangaCover.kt +++ b/domain/src/main/java/tachiyomi/domain/manga/model/MangaCover.kt @@ -1,5 +1,8 @@ package tachiyomi.domain.manga.model +import tachiyomi.domain.manga.interactor.GetCustomMangaInfo +import uy.kohesive.injekt.injectLazy + /** * Contains the required data for MangaCoverFetcher */ @@ -7,16 +10,26 @@ data class MangaCover( val mangaId: Long, val sourceId: Long, val isMangaFavorite: Boolean, - val url: String?, + // SY --> + val ogUrl: String?, + // SY <-- val lastModified: Long, -) +) { + // SY --> + val url: String = getCustomMangaInfo.get(mangaId)?.thumbnailUrl ?: ogUrl!! + + companion object { + private val getCustomMangaInfo: GetCustomMangaInfo by injectLazy() + } + // SY <-- +} fun Manga.asMangaCover(): MangaCover { return MangaCover( mangaId = id, sourceId = source, isMangaFavorite = favorite, - url = thumbnailUrl, + ogUrl = thumbnailUrl, lastModified = coverLastModified, ) } diff --git a/domain/src/main/java/tachiyomi/domain/manga/model/MangaUpdate.kt b/domain/src/main/java/tachiyomi/domain/manga/model/MangaUpdate.kt index f434445aa7bc..e2d1c803bd7e 100644 --- a/domain/src/main/java/tachiyomi/domain/manga/model/MangaUpdate.kt +++ b/domain/src/main/java/tachiyomi/domain/manga/model/MangaUpdate.kt @@ -45,11 +45,11 @@ fun Manga.toMangaUpdate(): MangaUpdate { title = ogTitle, artist = ogArtist, author = ogAuthor, + thumbnailUrl = ogThumbnailUrl, description = ogDescription, genre = ogGenre, status = ogStatus, // SY <-- - thumbnailUrl = thumbnailUrl, updateStrategy = updateStrategy, initialized = initialized, ) diff --git a/i18n-sy/src/commonMain/resources/MR/base/strings.xml b/i18n-sy/src/commonMain/resources/MR/base/strings.xml index 03cbe40554c4..2651f12423a1 100644 --- a/i18n-sy/src/commonMain/resources/MR/base/strings.xml +++ b/i18n-sy/src/commonMain/resources/MR/base/strings.xml @@ -344,6 +344,7 @@ Description: %1$s Author: %1$s Artist: %1$s + Thumbnail Url: %1$s diff --git a/i18n-sy/src/commonMain/resources/MR/in/strings.xml b/i18n-sy/src/commonMain/resources/MR/in/strings.xml index c604ea70650d..d0f98c4b74ec 100644 --- a/i18n-sy/src/commonMain/resources/MR/in/strings.xml +++ b/i18n-sy/src/commonMain/resources/MR/in/strings.xml @@ -298,6 +298,7 @@ Deskripsi: %1$s Author: %1$s Artist: %1$s + Thumbnail Url: %1$s diff --git a/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt b/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt index e4977bfd3f47..c96cffa59e70 100644 --- a/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt +++ b/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt @@ -124,7 +124,7 @@ abstract class BaseUpdatesGridGlanceWidget( mangaId = updatesView.mangaId, sourceId = updatesView.sourceId, isMangaFavorite = true, - url = updatesView.coverData.url, + ogUrl = updatesView.coverData.url, lastModified = updatesView.coverData.lastModified, ), ) diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt index 908c3fb1f7a5..6ba21656b199 100755 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt +++ b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt @@ -33,6 +33,7 @@ interface SManga : Serializable { val originalTitle: String val originalAuthor: String? val originalArtist: String? + val originalThumbnailUrl: String? val originalDescription: String? val originalGenre: String? val originalStatus: Int @@ -44,11 +45,11 @@ interface SManga : Serializable { it.title = originalTitle it.artist = originalArtist it.author = originalAuthor + it.thumbnail_url = originalThumbnailUrl it.description = originalDescription it.genre = originalGenre it.status = originalStatus // SY <-- - it.thumbnail_url = thumbnail_url it.update_strategy = update_strategy it.initialized = initialized } @@ -103,7 +104,7 @@ fun SManga.copy( description: String? = this.originalDescription, genre: String? = this.originalGenre, status: Int = this.status, - thumbnail_url: String? = this.thumbnail_url, + thumbnail_url: String? = this.originalThumbnailUrl, initialized: Boolean = this.initialized, ) = SManga.create().also { it.url = url diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt index 0fb935ab8833..608c2c1ac475 100755 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt +++ b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt @@ -31,6 +31,8 @@ class SMangaImpl : SManga { get() = author override val originalArtist: String? get() = artist + override val originalThumbnailUrl: String? + get() = thumbnail_url override val originalDescription: String? get() = description override val originalGenre: String?