Merge "Use toolkit instead of renderscript in SystemUI" am: 48413df8b8

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2490597

Change-Id: I1dfdcbbcd3a9e7b7bec0ff022f4ddc8419801a8c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Prashanth Swaminathan
2023-03-17 03:15:27 +00:00
committed by Automerger Merge Worker
2 changed files with 6 additions and 24 deletions

View File

@@ -177,6 +177,7 @@ android_library {
"lottie", "lottie",
"LowLightDreamLib", "LowLightDreamLib",
"motion_tool_lib", "motion_tool_lib",
"renderscript_toolkit",
], ],
manifest: "AndroidManifest.xml", manifest: "AndroidManifest.xml",
@@ -270,6 +271,7 @@ android_library {
"WindowManager-Shell", "WindowManager-Shell",
"LowLightDreamLib", "LowLightDreamLib",
"motion_tool_lib", "motion_tool_lib",
"renderscript_toolkit",
"androidx.core_core-animation-testing-nodeps", "androidx.core_core-animation-testing-nodeps",
], ],
} }

View File

@@ -21,20 +21,17 @@ import android.graphics.Bitmap
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.Point import android.graphics.Point
import android.graphics.Rect import android.graphics.Rect
import android.renderscript.Allocation
import android.renderscript.Element
import android.renderscript.RenderScript
import android.renderscript.ScriptIntrinsicBlur
import android.util.Log import android.util.Log
import android.util.MathUtils import android.util.MathUtils
import com.android.internal.graphics.ColorUtils import com.android.internal.graphics.ColorUtils
import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.statusbar.notification.MediaNotificationProcessor import com.android.systemui.statusbar.notification.MediaNotificationProcessor
import com.google.android.renderscript.Toolkit
import javax.inject.Inject import javax.inject.Inject
private const val TAG = "MediaArtworkProcessor" private const val TAG = "MediaArtworkProcessor"
private const val COLOR_ALPHA = (255 * 0.7f).toInt() private const val COLOR_ALPHA = (255 * 0.7f).toInt()
private const val BLUR_RADIUS = 25f private const val BLUR_RADIUS = 25
private const val DOWNSAMPLE = 6 private const val DOWNSAMPLE = 6
@SysUISingleton @SysUISingleton
@@ -47,10 +44,6 @@ class MediaArtworkProcessor @Inject constructor() {
if (mArtworkCache != null) { if (mArtworkCache != null) {
return mArtworkCache return mArtworkCache
} }
val renderScript = RenderScript.create(context)
val blur = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript))
var input: Allocation? = null
var output: Allocation? = null
var inBitmap: Bitmap? = null var inBitmap: Bitmap? = null
try { try {
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
@@ -66,18 +59,8 @@ class MediaArtworkProcessor @Inject constructor() {
inBitmap = oldIn.copy(Bitmap.Config.ARGB_8888, false /* isMutable */) inBitmap = oldIn.copy(Bitmap.Config.ARGB_8888, false /* isMutable */)
oldIn.recycle() oldIn.recycle()
} }
val outBitmap = Bitmap.createBitmap(inBitmap.width, inBitmap.height,
Bitmap.Config.ARGB_8888)
input = Allocation.createFromBitmap(renderScript, inBitmap,
Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_GRAPHICS_TEXTURE)
output = Allocation.createFromBitmap(renderScript, outBitmap)
blur.setRadius(BLUR_RADIUS)
blur.setInput(input)
blur.forEach(output)
output.copyTo(outBitmap)
val outBitmap = Toolkit.blur(inBitmap, BLUR_RADIUS)
val swatch = MediaNotificationProcessor.findBackgroundSwatch(artwork) val swatch = MediaNotificationProcessor.findBackgroundSwatch(artwork)
val canvas = Canvas(outBitmap) val canvas = Canvas(outBitmap)
@@ -87,9 +70,6 @@ class MediaArtworkProcessor @Inject constructor() {
Log.e(TAG, "error while processing artwork", ex) Log.e(TAG, "error while processing artwork", ex)
return null return null
} finally { } finally {
input?.destroy()
output?.destroy()
blur.destroy()
inBitmap?.recycle() inBitmap?.recycle()
} }
} }