diff options
| author | 2023-05-25 12:18:44 -0700 | |
|---|---|---|
| committer | 2023-05-31 18:31:10 +0000 | |
| commit | 1aee65603e262affd815fa53dcc5416c605e4037 (patch) | |
| tree | 7acbfe62f62c0426dbde323b0b8b66362f217e19 | |
| parent | fb2739848a3c13bd0489bbcadfc942b0082cd259 (diff) | |
Disallow loading icon from content URI to PipMenu
Bug: 278246904
Test: manually, with the PoC app attached to the bug
Merged-In: Ib3f5b8b6b9ce644fdf1173548d9078e4d969ae2e 
Change-Id: Ib3f5b8b6b9ce644fdf1173548d9078e4d969ae2e
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java | 21 | 
1 files changed, 14 insertions, 7 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java index 6390c8984dac..47e7d80d50e3 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java @@ -45,6 +45,7 @@ import android.content.Intent;  import android.graphics.Color;  import android.graphics.Rect;  import android.graphics.drawable.Drawable; +import android.graphics.drawable.Icon;  import android.net.Uri;  import android.os.Bundle;  import android.os.Handler; @@ -509,13 +510,19 @@ public class PipMenuView extends FrameLayout {                      final boolean isCloseAction = mCloseAction != null && Objects.equals(                              mCloseAction.getActionIntent(), action.getActionIntent()); -                    // TODO: Check if the action drawable has changed before we reload it -                    action.getIcon().loadDrawableAsync(mContext, d -> { -                        if (d != null) { -                            d.setTint(Color.WHITE); -                            actionView.setImageDrawable(d); -                        } -                    }, mMainHandler); +                    final int iconType = action.getIcon().getType(); +                    if (iconType == Icon.TYPE_URI || iconType == Icon.TYPE_URI_ADAPTIVE_BITMAP) { +                        // Disallow loading icon from content URI +                        actionView.setImageDrawable(null); +                    } else { +                        // TODO: Check if the action drawable has changed before we reload it +                        action.getIcon().loadDrawableAsync(mContext, d -> { +                            if (d != null) { +                                d.setTint(Color.WHITE); +                                actionView.setImageDrawable(d); +                            } +                        }, mMainHandler); +                    }                      actionView.setCustomCloseBackgroundVisibility(                              isCloseAction ? View.VISIBLE : View.GONE);                      actionView.setContentDescription(action.getContentDescription());  |