Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +10 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,9 @@ public class StatusBarIconView extends AnimatedImageView { public static final int STATE_DOT = 1; public static final int STATE_HIDDEN = 2; /** Maximum allowed width or height for an icon drawable */ private static final int MAX_IMAGE_SIZE = 500; private static final String TAG = "StatusBarIconView"; private static final Property<StatusBarIconView, Float> ICON_APPEAR_AMOUNT = new FloatProperty<StatusBarIconView>("iconAppearAmount") { Loading Loading @@ -328,6 +331,13 @@ public class StatusBarIconView extends AnimatedImageView { Log.w(TAG, "No icon for slot " + mSlot + "; " + mIcon.icon); return false; } if (drawable.getIntrinsicWidth() > MAX_IMAGE_SIZE || drawable.getIntrinsicHeight() > MAX_IMAGE_SIZE) { Log.w(TAG, "Drawable is too large " + mIcon); return false; } if (withClear) { setImageDrawable(null); } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.content.ContextWrapper; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.Icon; import android.os.UserHandle; Loading Loading @@ -122,4 +123,13 @@ public class StatusBarIconViewTest extends SysuiTestCase { assertEquals("Transparent backgrounds should fallback to drawable color", color, mIconView.getStaticDrawableColor()); } @Test public void testGiantImageNotAllowed() { Bitmap largeBitmap = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888); Icon icon = Icon.createWithBitmap(largeBitmap); StatusBarIcon largeIcon = new StatusBarIcon(UserHandle.ALL, "mockPackage", icon, 0, 0, ""); assertFalse(mIconView.set(largeIcon)); } } No newline at end of file Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +10 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,9 @@ public class StatusBarIconView extends AnimatedImageView { public static final int STATE_DOT = 1; public static final int STATE_HIDDEN = 2; /** Maximum allowed width or height for an icon drawable */ private static final int MAX_IMAGE_SIZE = 500; private static final String TAG = "StatusBarIconView"; private static final Property<StatusBarIconView, Float> ICON_APPEAR_AMOUNT = new FloatProperty<StatusBarIconView>("iconAppearAmount") { Loading Loading @@ -328,6 +331,13 @@ public class StatusBarIconView extends AnimatedImageView { Log.w(TAG, "No icon for slot " + mSlot + "; " + mIcon.icon); return false; } if (drawable.getIntrinsicWidth() > MAX_IMAGE_SIZE || drawable.getIntrinsicHeight() > MAX_IMAGE_SIZE) { Log.w(TAG, "Drawable is too large " + mIcon); return false; } if (withClear) { setImageDrawable(null); } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarIconViewTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.content.ContextWrapper; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.Icon; import android.os.UserHandle; Loading Loading @@ -122,4 +123,13 @@ public class StatusBarIconViewTest extends SysuiTestCase { assertEquals("Transparent backgrounds should fallback to drawable color", color, mIconView.getStaticDrawableColor()); } @Test public void testGiantImageNotAllowed() { Bitmap largeBitmap = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888); Icon icon = Icon.createWithBitmap(largeBitmap); StatusBarIcon largeIcon = new StatusBarIcon(UserHandle.ALL, "mockPackage", icon, 0, 0, ""); assertFalse(mIconView.set(largeIcon)); } } No newline at end of file