From ea4a81c6ec3ddfe60f1c72d69abe4d38aae5e6d3 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Mon, 29 Apr 2024 11:14:28 +0300 Subject: [PATCH] Fixes --- app/build.gradle | 4 ++-- .../kotatsu/core/ui/image/AnimatedPlaceholderDrawable.kt | 3 ++- .../kotlin/org/koitharu/kotatsu/core/util/ext/Coil.kt | 8 +++++++- .../settings/storage/MangaDirectorySelectDialog.kt | 7 ++++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bb5d9372a..dc6be8aa8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId 'org.koitharu.kotatsu' minSdk = 21 targetSdk = 34 - versionCode = 635 - versionName = '7.0-b1' + versionCode = 636 + versionName = '7.0-b2' generatedDensities = [] testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner' ksp { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/image/AnimatedPlaceholderDrawable.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/image/AnimatedPlaceholderDrawable.kt index 860929a27..f8b5a4343 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/image/AnimatedPlaceholderDrawable.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/image/AnimatedPlaceholderDrawable.kt @@ -11,6 +11,7 @@ import android.view.animation.AccelerateDecelerateInterpolator import androidx.core.graphics.ColorUtils import androidx.interpolator.view.animation.FastOutSlowInInterpolator import com.google.android.material.animation.ArgbEvaluatorCompat +import org.koitharu.kotatsu.core.util.ext.animatorDurationScale import org.koitharu.kotatsu.core.util.ext.getThemeColor import kotlin.math.abs import com.google.android.material.R as materialR @@ -22,7 +23,7 @@ class AnimatedPlaceholderDrawable(context: Context) : Drawable(), Animatable, Ti private var currentColor: Int = colorLow private var alpha: Int = 255 private val interpolator = FastOutSlowInInterpolator() - private val period = 2000 + private val period = 2000 * context.animatorDurationScale private val timeAnimator = TimeAnimator() init { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Coil.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Coil.kt index e34c743f7..6a4aefddd 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Coil.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/Coil.kt @@ -3,6 +3,7 @@ package org.koitharu.kotatsu.core.util.ext import android.content.Context import android.graphics.drawable.ColorDrawable import android.widget.ImageView +import androidx.core.graphics.ColorUtils import androidx.core.graphics.drawable.toBitmap import androidx.lifecycle.LifecycleOwner import coil.ImageLoader @@ -89,9 +90,14 @@ fun ImageRequest.Builder.source(source: MangaSource?): ImageRequest.Builder { } fun ImageRequest.Builder.defaultPlaceholders(context: Context): ImageRequest.Builder { + val errorColor = ColorUtils.blendARGB( + context.getThemeColor(materialR.attr.colorErrorContainer), + context.getThemeColor(materialR.attr.colorBackgroundFloating), + 0.4f, + ) return placeholder(AnimatedPlaceholderDrawable(context)) .fallback(ColorDrawable(context.getThemeColor(materialR.attr.colorSurfaceContainer))) - .error(ColorDrawable(context.getThemeColor(materialR.attr.colorErrorContainer))) + .error(ColorDrawable(errorColor)) } fun ImageRequest.Builder.addListener(listener: ImageRequest.Listener): ImageRequest.Builder { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/storage/MangaDirectorySelectDialog.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/storage/MangaDirectorySelectDialog.kt index ab9d565d3..e4df84d85 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/storage/MangaDirectorySelectDialog.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/storage/MangaDirectorySelectDialog.kt @@ -6,10 +6,12 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.FragmentManager import androidx.fragment.app.viewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.snackbar.Snackbar import com.hannesdorfmann.adapterdelegates4.AsyncListDifferDelegationAdapter import dagger.hilt.android.AndroidEntryPoint import org.koitharu.kotatsu.R @@ -19,6 +21,7 @@ import org.koitharu.kotatsu.core.ui.list.OnListItemClickListener import org.koitharu.kotatsu.core.util.ext.observe import org.koitharu.kotatsu.core.util.ext.observeEvent import org.koitharu.kotatsu.core.util.ext.showDistinct +import org.koitharu.kotatsu.core.util.ext.tryLaunch import org.koitharu.kotatsu.databinding.DialogDirectorySelectBinding @AndroidEntryPoint @@ -68,7 +71,9 @@ class MangaDirectorySelectDialog : AlertDialogFragment