Merge "URI parsing permission for SystemUI" into rvc-dev am: 6d0bd16d08 am: e1fb16c1c9

Change-Id: I39fb380b939ef62bd886be1d8fc15703a7deefcb
This commit is contained in:
TreeHugger Robot
2020-03-19 23:11:26 +00:00
committed by Automerger Merge Worker
2 changed files with 20 additions and 3 deletions

View File

@@ -17,6 +17,7 @@ package com.android.systemui.bubbles;
import android.app.Notification; import android.app.Notification;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.pm.LauncherApps; import android.content.pm.LauncherApps;
import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutInfo;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@@ -59,6 +60,12 @@ public class BubbleIconFactory extends BaseIconFactory {
} else { } else {
Icon ic = metadata.getBubbleIcon(); Icon ic = metadata.getBubbleIcon();
if (ic != null) { if (ic != null) {
if (ic.getType() == Icon.TYPE_URI
|| ic.getType() == Icon.TYPE_URI_ADAPTIVE_BITMAP) {
context.grantUriPermission(context.getPackageName(),
ic.getUri(),
Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
return ic.loadDrawable(context); return ic.loadDrawable(context);
} }
return null; return null;

View File

@@ -25,6 +25,7 @@ import android.annotation.NonNull;
import android.app.Notification; import android.app.Notification;
import android.app.Person; import android.app.Person;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutInfo;
@@ -33,6 +34,7 @@ import android.graphics.Color;
import android.graphics.Matrix; import android.graphics.Matrix;
import android.graphics.Path; import android.graphics.Path;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Parcelable; import android.os.Parcelable;
import android.service.notification.StatusBarNotification; import android.service.notification.StatusBarNotification;
@@ -246,9 +248,17 @@ public class BubbleViewInfoTask extends AsyncTask<Void, Void, BubbleViewInfoTask
bubbleMessage.senderName = sender != null bubbleMessage.senderName = sender != null
? sender.getName() ? sender.getName()
: null; : null;
bubbleMessage.senderAvatar = sender != null && sender.getIcon() != null
? sender.getIcon().loadDrawable(context) bubbleMessage.senderAvatar = null;
: null; if (sender != null && sender.getIcon() != null) {
if (sender.getIcon().getType() == Icon.TYPE_URI
|| sender.getIcon().getType() == Icon.TYPE_URI_ADAPTIVE_BITMAP) {
context.grantUriPermission(context.getPackageName(),
sender.getIcon().getUri(),
Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
bubbleMessage.senderAvatar = sender.getIcon().loadDrawable(context);
}
return bubbleMessage; return bubbleMessage;
} }
} else if (Notification.InboxStyle.class.equals(style)) { } else if (Notification.InboxStyle.class.equals(style)) {