Loading core/java/com/android/internal/widget/LocalImageResolver.java +7 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.graphics.ImageDecoder; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.net.Uri; import android.text.TextUtils; import android.util.Log; import android.util.Size; Loading Loading @@ -108,6 +109,12 @@ public class LocalImageResolver { } break; case Icon.TYPE_RESOURCE: if (!(TextUtils.isEmpty(icon.getResPackage()) || context.getPackageName().equals(icon.getResPackage()))) { // We can't properly resolve icons from other packages here, so fall back. return icon.loadDrawable(context); } Drawable result = resolveImage(icon.getResId(), context, maxWidth, maxHeight); if (result != null) { return tintDrawable(icon, result); Loading core/tests/coretests/src/com/android/internal/widget/LocalImageResolverTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -270,4 +270,13 @@ public class LocalImageResolverTest { assertThat(bd.getBitmap().getHeight()).isEqualTo(originalHeight); } @Test public void resolveImage_iconWithOtherPackageResource_usesPackageContextDefinition() throws IOException { Icon icon = Icon.createWithResource("this_is_invalid", R.drawable.test32x24); Drawable d = LocalImageResolver.resolveImage(icon, mContext); // This drawable must not be loaded - if it was, the code ignored the package specification. assertThat(d).isNull(); } } Loading
core/java/com/android/internal/widget/LocalImageResolver.java +7 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.graphics.ImageDecoder; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.net.Uri; import android.text.TextUtils; import android.util.Log; import android.util.Size; Loading Loading @@ -108,6 +109,12 @@ public class LocalImageResolver { } break; case Icon.TYPE_RESOURCE: if (!(TextUtils.isEmpty(icon.getResPackage()) || context.getPackageName().equals(icon.getResPackage()))) { // We can't properly resolve icons from other packages here, so fall back. return icon.loadDrawable(context); } Drawable result = resolveImage(icon.getResId(), context, maxWidth, maxHeight); if (result != null) { return tintDrawable(icon, result); Loading
core/tests/coretests/src/com/android/internal/widget/LocalImageResolverTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -270,4 +270,13 @@ public class LocalImageResolverTest { assertThat(bd.getBitmap().getHeight()).isEqualTo(originalHeight); } @Test public void resolveImage_iconWithOtherPackageResource_usesPackageContextDefinition() throws IOException { Icon icon = Icon.createWithResource("this_is_invalid", R.drawable.test32x24); Drawable d = LocalImageResolver.resolveImage(icon, mContext); // This drawable must not be loaded - if it was, the code ignored the package specification. assertThat(d).isNull(); } }