diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c325556c5..ee474463cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ --> ## Fixes - Fixed crashes caused by certain extension implementation +- Fixed "Theme buttons based on cover" doesn't work properly ## Other - More StorIO to SQLDelight migration effort diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt index 65cb3cefb1..42860bd38c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt @@ -586,15 +586,16 @@ class MangaDetailsController : ) } ?: drawable - val bitmap = (copy as? BitmapDrawable)?.bitmap + // Don't use 'copy', Palette doesn't like its bitmap, could be caused by mutability is disabled, + // or perhaps because it's HARDWARE configured, not entirely sure why, the behaviour is not + // documented by Google. + val bitmap = (drawable as? BitmapDrawable)?.bitmap // Generate the Palette on a background thread. if (bitmap != null) { - Palette.from(bitmap).generate { - if (it == null) return@generate + Palette.from(bitmap).generate { palette -> if (presenter.preferences.themeMangaDetails().get()) { launchUI { - view.context.getResourceColor(R.attr.colorSecondary) - val vibrantColor = it.getBestColor() ?: return@launchUI + val vibrantColor = palette?.getBestColor() ?: return@launchUI manga?.vibrantCoverColor = vibrantColor setAccentColorValue(vibrantColor) setHeaderColorValue(vibrantColor) diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt index 111b3f0765..41ed89f945 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/manga/MangaCoverMetadata.kt @@ -68,14 +68,13 @@ object MangaCoverMetadata { } val bitmap = BitmapFactory.decodeFile(file.filePath, options) if (bitmap != null) { - Palette.from(bitmap).generate { - if (it == null) return@generate + Palette.from(bitmap).generate { palette -> if (isInLibrary) { - it.dominantSwatch?.let { swatch -> + palette?.dominantSwatch?.let { swatch -> addCoverColor(mangaId, swatch.rgb, swatch.titleTextColor) } } - val color = it.getBestColor() ?: return@generate + val color = palette?.getBestColor() ?: return@generate setVibrantColor(mangaId, color) } }