feat: Blur toggle

This commit is contained in:
aayush262 2024-03-12 20:43:20 +05:30
parent 07662a91f4
commit 8fb6357fb5
7 changed files with 128 additions and 30 deletions

View file

@ -1104,13 +1104,19 @@ suspend fun View.pop() {
fun blurImage(imageView: ImageView, banner: String?){
if (banner != null) {
val context = imageView.context
if (!(context as Activity).isDestroyed)
Glide.with(context as Context)
.load(GlideUrl(banner))
.diskCacheStrategy(DiskCacheStrategy.ALL).override(400)
.apply(RequestOptions.bitmapTransform(BlurTransformation(2, 2)))
.into(imageView)
val radius = PrefManager.getVal<Float>(PrefName.BlurRadius).toInt()
val sampling = PrefManager.getVal<Float>(PrefName.BlurSampling).toInt()
if (PrefManager.getVal(PrefName.BlurBanners)){
val context = imageView.context
if (!(context as Activity).isDestroyed)
Glide.with(context as Context)
.load(GlideUrl(banner))
.diskCacheStrategy(DiskCacheStrategy.ALL).override(400)
.apply(RequestOptions.bitmapTransform(BlurTransformation(radius, sampling)))
.into(imageView)
}else{
imageView.loadImage(banner)
}
} else {
imageView.setImageResource(R.drawable.linear_gradient_bg)
}

View file

@ -155,8 +155,7 @@ class MangaPageAdapter : RecyclerView.Adapter<MangaPageAdapter.MangaPageViewHold
binding.mangaTrendingViewPager.setPageTransformer(MediaPageTransformer())
trendHandler = Handler(Looper.getMainLooper())
trendRun = Runnable {
binding.mangaTrendingViewPager.currentItem =
binding.mangaTrendingViewPager.currentItem + 1
binding.mangaTrendingViewPager.currentItem += 1
}
binding.mangaTrendingViewPager.registerOnPageChangeCallback(
object : ViewPager2.OnPageChangeCallback() {

View file

@ -187,15 +187,7 @@ class MediaAdaptor(
AccelerateDecelerateInterpolator()
)
)
val banner =
if (bannerAnimations) b.itemCompactBanner else b.itemCompactBannerNoKen
val context = b.itemCompactBanner.context
if (!(context as Activity).isDestroyed)
Glide.with(context as Context)
.load(GlideUrl(media.banner ?: media.cover))
.diskCacheStrategy(DiskCacheStrategy.ALL).override(400)
.apply(RequestOptions.bitmapTransform(BlurTransformation(2, 3)))
.into(banner)
blurImage(b.itemCompactBanner, media.banner ?: media.cover)
b.itemCompactOngoing.visibility =
if (media.status == currActivity()!!.getString(R.string.status_releasing)) View.VISIBLE else View.GONE
b.itemCompactTitle.text = media.userPreferredName
@ -244,15 +236,7 @@ class MediaAdaptor(
AccelerateDecelerateInterpolator()
)
)
val banner =
if (bannerAnimations) b.itemCompactBanner else b.itemCompactBannerNoKen
val context = b.itemCompactBanner.context
if (!(context as Activity).isDestroyed)
Glide.with(context as Context)
.load(GlideUrl(media.banner ?: media.cover))
.diskCacheStrategy(DiskCacheStrategy.ALL).override(400)
.apply(RequestOptions.bitmapTransform(BlurTransformation(2, 3)))
.into(banner)
blurImage(b.itemCompactBanner, media.banner ?: media.cover)
b.itemCompactOngoing.visibility =
if (media.status == currActivity()!!.getString(R.string.status_releasing)) View.VISIBLE else View.GONE
b.itemCompactTitle.text = media.userPreferredName

View file

@ -96,8 +96,21 @@ class UserInterfaceSettingsActivity : AppCompatActivity() {
PrefManager.setVal(PrefName.AnimationSpeed, map[value] ?: 1f)
restartApp()
}
binding.uiSettingsBlurBanners.isChecked = PrefManager.getVal(PrefName.BlurBanners)
binding.uiSettingsBlurBanners.setOnCheckedChangeListener { _, isChecked ->
PrefManager.setVal(PrefName.BlurBanners, isChecked)
restartApp()
}
binding.uiSettingsBlurRadius.value = (PrefManager.getVal(PrefName.BlurRadius) as Float)
binding.uiSettingsBlurRadius.addOnChangeListener { _, value, _ ->
PrefManager.setVal(PrefName.BlurRadius, value)
restartApp()
}
binding.uiSettingsBlurSampling.value = (PrefManager.getVal(PrefName.BlurSampling) as Float)
binding.uiSettingsBlurSampling.addOnChangeListener { _, value, _ ->
PrefManager.setVal(PrefName.BlurSampling, value)
restartApp()
}
}
private fun restartApp() {

View file

@ -47,6 +47,9 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
ShowYtButton(Pref(Location.UI, Boolean::class, true)),
AnimeDefaultView(Pref(Location.UI, Int::class, 0)),
MangaDefaultView(Pref(Location.UI, Int::class, 0)),
BlurBanners(Pref(Location.UI, Boolean::class, true)),
BlurRadius(Pref(Location.UI, Float::class, 2f)),
BlurSampling(Pref(Location.UI, Float::class, 2f)),
ImmersiveMode(Pref(Location.UI, Boolean::class, false)),
SmallView(Pref(Location.UI, Boolean::class, true)),
DefaultStartUpTab(Pref(Location.UI, Int::class, 1)),