From 0dc4e63b7a7cd7135e7114b5e4ac131dde5de9bd Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sat, 14 May 2022 20:20:04 +0300 Subject: [PATCH] Fix large cover --- .../kotatsu/details/ui/ChaptersFragment.kt | 8 +---- .../kotatsu/details/ui/DetailsFragment.kt | 34 ++++++++----------- .../koitharu/kotatsu/main/ui/MainActivity.kt | 11 +----- .../res/layout-w600dp/fragment_details.xml | 1 - app/src/main/res/layout/activity_image.xml | 3 +- app/src/main/res/layout/fragment_details.xml | 1 - 6 files changed, 18 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/ChaptersFragment.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/ChaptersFragment.kt index 91698a76b..a9a57e30e 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/ChaptersFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/ChaptersFragment.kt @@ -121,13 +121,7 @@ class ChaptersFragment : (activity as? DetailsActivity)?.showChapterMissingDialog(item.chapter.id) return } - val options = ActivityOptions.makeScaleUpAnimation( - view, - 0, - 0, - view.measuredWidth, - view.measuredHeight - ) + val options = ActivityOptions.makeScaleUpAnimation(view, 0, 0, view.width, view.height) startActivity( ReaderActivity.newIntent( context = view.context, diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt index 51d320e00..54ae95a5b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt @@ -84,7 +84,7 @@ class DetailsFragment : } override fun onItemClick(item: Bookmark, view: View) { - val options = ActivityOptions.makeScaleUpAnimation(view, 0, 0, view.measuredWidth, view.measuredHeight) + val options = ActivityOptions.makeScaleUpAnimation(view, 0, 0, view.width, view.height) startActivity(ReaderActivity.newIntent(view.context, item), options.toBundle()) } @@ -245,13 +245,9 @@ class DetailsFragment : ) } R.id.imageView_cover -> { - val options = ActivityOptions.makeSceneTransitionAnimation( - requireActivity(), - binding.imageViewCover, - binding.imageViewCover.transitionName, - ) + val options = ActivityOptions.makeScaleUpAnimation(v, 0, 0, v.width, v.height) startActivity( - ImageActivity.newIntent(v.context, manga.largeCoverUrl ?: manga.coverUrl), + ImageActivity.newIntent(v.context, manga.largeCoverUrl.ifNullOrEmpty { manga.coverUrl }), options.toBundle() ) } @@ -317,20 +313,20 @@ class DetailsFragment : } private fun loadCover(manga: Manga) { - val currentCover = binding.imageViewCover.drawable + val imageUrl = manga.largeCoverUrl.ifNullOrEmpty { manga.coverUrl } + val lastResult = CoilUtils.result(binding.imageViewCover) + if (lastResult?.request?.data == imageUrl) { + return + } val request = ImageRequest.Builder(context ?: return) .target(binding.imageViewCover) - if (currentCover != null) { - request.data(manga.largeCoverUrl ?: return) - .placeholderMemoryCacheKey(CoilUtils.result(binding.imageViewCover)?.request?.memoryCacheKey) - .fallback(currentCover) - } else { - request.crossfade(true) - .data(manga.coverUrl) - .fallback(R.drawable.ic_placeholder) - } - request.referer(manga.publicUrl) + .data(imageUrl) + .crossfade(true) + .referer(manga.publicUrl) .lifecycle(viewLifecycleOwner) - .enqueueWith(coil) + lastResult?.drawable?.let { + request.fallback(it) + } ?: request.fallback(R.drawable.ic_placeholder) + request.enqueueWith(coil) } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index 49bde074a..b57158069 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -2,7 +2,6 @@ package org.koitharu.kotatsu.main.ui import android.app.ActivityOptions import android.content.res.Configuration -import android.os.Build import android.os.Bundle import android.view.MenuItem import android.view.View @@ -318,15 +317,7 @@ class MainActivity : } private fun onOpenReader(manga: Manga) { - val options = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - ActivityOptions.makeClipRevealAnimation( - binding.fab, 0, 0, binding.fab.measuredWidth, binding.fab.measuredHeight - ) - } else { - ActivityOptions.makeScaleUpAnimation( - binding.fab, 0, 0, binding.fab.measuredWidth, binding.fab.measuredHeight - ) - } + val options = ActivityOptions.makeScaleUpAnimation(binding.fab, 0, 0, binding.fab.width, binding.fab.height) startActivity(ReaderActivity.newIntent(this, manga), options?.toBundle()) } diff --git a/app/src/main/res/layout-w600dp/fragment_details.xml b/app/src/main/res/layout-w600dp/fragment_details.xml index 6a862073a..c691b4ea1 100644 --- a/app/src/main/res/layout-w600dp/fragment_details.xml +++ b/app/src/main/res/layout-w600dp/fragment_details.xml @@ -21,7 +21,6 @@ android:layout_marginTop="16dp" android:foreground="?selectableItemBackground" android:scaleType="centerCrop" - android:transitionName="cover" app:layout_constraintDimensionRatio="H,13:18" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0" diff --git a/app/src/main/res/layout/activity_image.xml b/app/src/main/res/layout/activity_image.xml index 108024a8c..3aa6f1ad3 100644 --- a/app/src/main/res/layout/activity_image.xml +++ b/app/src/main/res/layout/activity_image.xml @@ -7,8 +7,7 @@ + android:layout_height="match_parent" />