diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/helper/WallpaperBlur.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/helper/WallpaperBlur.kt index 39473e3c4..8d911e7d7 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/helper/WallpaperBlur.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/helper/WallpaperBlur.kt @@ -2,14 +2,10 @@ package de.mm20.launcher2.ui.launcher.helper import android.app.Activity import android.view.WindowManager -import androidx.compose.animation.core.Animatable -import androidx.compose.animation.core.VectorConverter import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.dp import de.mm20.launcher2.ktx.isAtLeastApiLevel @Composable @@ -19,22 +15,19 @@ fun WallpaperBlur(blurRadius: () -> Int) { val density = LocalDensity.current val radius = blurRadius() - val animatable = remember { Animatable(radius, Int.VectorConverter) } LaunchedEffect(radius) { - animatable.animateTo(with(density) { radius.dp.toPx().toInt() }) { - if (value > 0) { - val windowAttributes = (context as Activity).window.attributes - windowAttributes.flags = - windowAttributes.flags or WindowManager.LayoutParams.FLAG_BLUR_BEHIND - context.window.attributes = windowAttributes - context.window.setBackgroundBlurRadius(value) - } else { - val windowAttributes = (context as Activity).window.attributes - windowAttributes.flags = - windowAttributes.flags and WindowManager.LayoutParams.FLAG_BLUR_BEHIND.inv() - context.window.attributes = windowAttributes - context.window.setBackgroundBlurRadius(0) - } + if (radius > 0) { + val windowAttributes = (context as Activity).window.attributes + windowAttributes.flags = + windowAttributes.flags or WindowManager.LayoutParams.FLAG_BLUR_BEHIND + context.window.attributes = windowAttributes + context.window.setBackgroundBlurRadius(radius) + } else { + val windowAttributes = (context as Activity).window.attributes + windowAttributes.flags = + windowAttributes.flags and WindowManager.LayoutParams.FLAG_BLUR_BEHIND.inv() + context.window.attributes = windowAttributes + context.window.setBackgroundBlurRadius(0) } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/LauncherScaffold.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/LauncherScaffold.kt index 10d3e3d52..3cd38da1b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/LauncherScaffold.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/LauncherScaffold.kt @@ -1143,17 +1143,8 @@ internal fun LauncherScaffold( } if (config.wallpaperBlurRadius > 0.dp) { - val wallpaperBlur by animateIntAsState( - if (state.currentProgress >= 0.5f && (state.currentComponent?.drawBackground - ?: config.homeComponent.drawBackground) - || state.currentProgress < 0.5f && config.homeComponent.drawBackground - ) { - 8.dp.toPixels().toInt() - } else { - 0 - } - ) - WallpaperBlur { wallpaperBlur } + val maxRadius = config.wallpaperBlurRadius.toPixels() + WallpaperBlur { (maxRadius * state.currentProgress).toInt() } } if (!config.finishOnBack || state.currentProgress > 0) {