Merge "Guard against NPE" into sc-dev am: b5d478b4cc
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15245692 Change-Id: I7f7de6bafc6bfe479446416bf443fc8cab61349d
This commit is contained in:
@@ -416,10 +416,12 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
|
||||
return mIcon.icon;
|
||||
}
|
||||
|
||||
private Drawable getIcon(StatusBarIcon icon) {
|
||||
Context notifContext = mNotification != null ?
|
||||
mNotification.getPackageContext(getContext()) : getContext();
|
||||
return getIcon(getContext(), notifContext, icon);
|
||||
Drawable getIcon(StatusBarIcon icon) {
|
||||
Context notifContext = getContext();
|
||||
if (mNotification != null) {
|
||||
notifContext = mNotification.getPackageContext(getContext());
|
||||
}
|
||||
return getIcon(getContext(), notifContext != null ? notifContext : getContext(), icon);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -39,6 +39,7 @@ import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.os.UserHandle;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
|
||||
import androidx.test.filters.SmallTest;
|
||||
import androidx.test.runner.AndroidJUnit4;
|
||||
@@ -131,4 +132,19 @@ public class StatusBarIconViewTest extends SysuiTestCase {
|
||||
icon, 0, 0, "");
|
||||
assertFalse(mIconView.set(largeIcon));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNullNotifInfo() {
|
||||
Bitmap bitmap = Bitmap.createBitmap(60, 60, Bitmap.Config.ARGB_8888);
|
||||
Icon icon = Icon.createWithBitmap(bitmap);
|
||||
StatusBarIcon largeIcon = new StatusBarIcon(UserHandle.ALL, "mockPackage",
|
||||
icon, 0, 0, "");
|
||||
mIconView.setNotification(mock(StatusBarNotification.class));
|
||||
mIconView.getIcon(largeIcon);
|
||||
// no crash? good
|
||||
|
||||
mIconView.setNotification(null);
|
||||
mIconView.getIcon(largeIcon);
|
||||
// no crash? good
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user