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
This commit is contained in:
@@ -45,6 +45,7 @@ import android.content.Intent;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.graphics.drawable.Icon;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -509,6 +510,11 @@ public class PipMenuView extends FrameLayout {
|
|||||||
final boolean isCloseAction = mCloseAction != null && Objects.equals(
|
final boolean isCloseAction = mCloseAction != null && Objects.equals(
|
||||||
mCloseAction.getActionIntent(), action.getActionIntent());
|
mCloseAction.getActionIntent(), action.getActionIntent());
|
||||||
|
|
||||||
|
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
|
// TODO: Check if the action drawable has changed before we reload it
|
||||||
action.getIcon().loadDrawableAsync(mContext, d -> {
|
action.getIcon().loadDrawableAsync(mContext, d -> {
|
||||||
if (d != null) {
|
if (d != null) {
|
||||||
@@ -516,6 +522,7 @@ public class PipMenuView extends FrameLayout {
|
|||||||
actionView.setImageDrawable(d);
|
actionView.setImageDrawable(d);
|
||||||
}
|
}
|
||||||
}, mMainHandler);
|
}, mMainHandler);
|
||||||
|
}
|
||||||
actionView.setCustomCloseBackgroundVisibility(
|
actionView.setCustomCloseBackgroundVisibility(
|
||||||
isCloseAction ? View.VISIBLE : View.GONE);
|
isCloseAction ? View.VISIBLE : View.GONE);
|
||||||
actionView.setContentDescription(action.getContentDescription());
|
actionView.setContentDescription(action.getContentDescription());
|
||||||
|
|||||||
Reference in New Issue
Block a user