Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0bc26bd9 authored by Robert Snoeberger's avatar Robert Snoeberger
Browse files

Avoid loading action icons when possible

This is a similar memory optimization as applied to the app icon in
ag/12727673.

Bug: 160591450
Test: manual - heap_profile sysui while toggling play/pause.
Change-Id: I66fee5b8cb6b2abdbb7dadda09ccd1d4905c5706
parent db5bf27c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -329,7 +329,7 @@ public class MediaControlPanel {
            int actionId = ACTION_IDS[i];
            final ImageButton button = mViewHolder.getAction(actionId);
            MediaAction mediaAction = actionIcons.get(i);
            button.setImageDrawable(mediaAction.getDrawable());
            button.setImageIcon(mediaAction.getIcon());
            button.setContentDescription(mediaAction.getContentDescription());
            Runnable action = mediaAction.getAction();

+1 −1
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ data class MediaData(

/** State of a media action. */
data class MediaAction(
    val drawable: Drawable?,
    val icon: Icon?,
    val action: Runnable?,
    val contentDescription: CharSequence?
)
+7 −2
Original line number Diff line number Diff line
@@ -501,8 +501,13 @@ class MediaDataManager(
                } else {
                    null
                }
                val mediaActionIcon = if (action.getIcon()?.getType() == Icon.TYPE_RESOURCE) {
                    Icon.createWithResource(packageContext, action.getIcon()!!.getResId())
                } else {
                    action.getIcon()
                }
                val mediaAction = MediaAction(
                        action.getIcon().loadDrawable(packageContext),
                        mediaActionIcon,
                        runnable,
                        action.title)
                actionIcons.add(mediaAction)
@@ -612,7 +617,7 @@ class MediaDataManager(

    private fun getResumeMediaAction(action: Runnable): MediaAction {
        return MediaAction(
            context.getDrawable(R.drawable.lb_ic_play),
            Icon.createWithResource(context, R.drawable.lb_ic_play),
            action,
            context.getString(R.string.controls_media_resume)
        )