From 087ee89b80f53bdf6f3d8df194c4aefc53c35b75 Mon Sep 17 00:00:00 2001 From: rmp22 <195054967+rmp22@users.noreply.github.com> Date: Thu, 27 Nov 2025 16:39:18 +0800 Subject: [PATCH] SystemUI: Preventing media album bitmaps from impacting performance targets the same approach as minari's: https://github.com/AxionAOSP/android_frameworks_base/commit/b59b6f3eef4a8b216da48a1313284795024206e3. but dont force 500px, this approach prevents media bitmaps from impacting performance on high dpi devices without increasing the max bitmap size on low pixel devices and touching unnecessary stuffs Ghost: reduce max size Change-Id: I3fae0e9671893566dd402a221e04f44b5f073329 Signed-off-by: rmp22 <195054967+rmp22@users.noreply.github.com> Signed-off-by: Ghosuto --- media/java/android/media/session/MediaSession.java | 6 +++++- .../media/controls/domain/pipeline/MediaDataLoader.kt | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index 8a877b843e9da..904376bf97e18 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -197,8 +197,12 @@ public final class MediaSession { } mContext = context; - mMaxBitmapSize = context.getResources().getDimensionPixelSize( + + int bitmapSize = context.getResources().getDimensionPixelSize( com.android.internal.R.dimen.config_mediaMetadataBitmapMaxSize); + + mMaxBitmapSize = Math.min(bitmapSize, 300); + mCbStub = new CallbackStub(this); MediaSessionManager manager = (MediaSessionManager) context .getSystemService(Context.MEDIA_SESSION_SERVICE); diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt index 1a4687b59dbdf..b4bc20611a3e3 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt @@ -72,6 +72,7 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.cancel import kotlinx.coroutines.delay import kotlinx.coroutines.ensureActive +import kotlin.math.min /** Loads media information from media style [StatusBarNotification] classes. */ @SysUISingleton @@ -90,8 +91,11 @@ constructor( private val mediaProcessingJobs = ConcurrentHashMap() private val artworkWidth: Int = - context.resources.getDimensionPixelSize( - com.android.internal.R.dimen.config_mediaMetadataBitmapMaxSize + min( + context.resources.getDimensionPixelSize( + com.android.internal.R.dimen.config_mediaMetadataBitmapMaxSize + ), + 300 ) private val artworkHeight: Int = context.resources.getDimensionPixelSize(R.dimen.qs_media_session_height_expanded)