Merge "Guard against NPE" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-07-13 14:45:34 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 4 deletions

View File

@@ -416,10 +416,12 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
return mIcon.icon; return mIcon.icon;
} }
private Drawable getIcon(StatusBarIcon icon) { Drawable getIcon(StatusBarIcon icon) {
Context notifContext = mNotification != null ? Context notifContext = getContext();
mNotification.getPackageContext(getContext()) : getContext(); if (mNotification != null) {
return getIcon(getContext(), notifContext, icon); notifContext = mNotification.getPackageContext(getContext());
}
return getIcon(getContext(), notifContext != null ? notifContext : getContext(), icon);
} }
/** /**

View File

@@ -39,6 +39,7 @@ import android.graphics.Bitmap;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.Icon; import android.graphics.drawable.Icon;
import android.os.UserHandle; import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.runner.AndroidJUnit4;
@@ -131,4 +132,19 @@ public class StatusBarIconViewTest extends SysuiTestCase {
icon, 0, 0, ""); icon, 0, 0, "");
assertFalse(mIconView.set(largeIcon)); 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
}
} }