Merge "Guard against NPE" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b5d478b4cc
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user