summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sihua Ma <sihua@google.com> 2023-04-07 22:06:24 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-07 22:06:24 +0000
commit53ea8320242b260307f62a868c0ab8a8e8b1d154 (patch)
treea08ccf9c861818b35855f7996c273c4962201f0c
parent5932006e177c65d363d89d93005f3339775edce5 (diff)
parentd58bdf9b9fcbcc8c941cf5b0565865c89b3400bb (diff)
Merge "Upload bitmap to GPU in RemoteViews" into udc-dev
-rw-r--r--core/java/android/widget/RemoteViews.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 18874f768929..3165654d806d 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -1780,6 +1780,21 @@ public class RemoteViews implements Parcelable, Filter {
Object value = getParameterValue(view);
try {
MethodHandle method = getMethod(view, this.methodName, param, true /* async */);
+ // Upload the bitmap to GPU if the parameter is of type Bitmap or Icon.
+ // Since bitmaps in framework are seldomly modified, this is supposed to accelerate
+ // the operations.
+ if (value instanceof Bitmap bitmap) {
+ bitmap.prepareToDraw();
+ }
+
+ if (value instanceof Icon icon
+ && (icon.getType() == Icon.TYPE_BITMAP
+ || icon.getType() == Icon.TYPE_ADAPTIVE_BITMAP)) {
+ Bitmap bitmap = icon.getBitmap();
+ if (bitmap != null) {
+ bitmap.prepareToDraw();
+ }
+ }
if (method != null) {
Runnable endAction = (Runnable) method.invoke(view, value);