diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 92cac19533..30c851c9ca 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -380,21 +380,7 @@ public class HtmlHelper { // Data URI if (data) try { - // "\"Red"; - - String base64 = source.substring(source.indexOf(',') + 1); - byte[] bytes = Base64.decode(base64.getBytes(), 0); - - Bitmap bm = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); - if (bm == null) - throw new IllegalArgumentException("decode byte array failed"); - - Drawable d = new BitmapDrawable(res, bm); - d.setBounds(0, 0, bm.getWidth(), bm.getHeight()); - return d; + return getDataDrawable(source, res); } catch (IllegalArgumentException ex) { Log.w(ex); Drawable d = res.getDrawable(R.drawable.baseline_broken_image_24, theme); @@ -507,6 +493,24 @@ public class HtmlHelper { return lld; } + private static Drawable getDataDrawable(String source, Resources res) { + // "\"Red"; + + String base64 = source.substring(source.indexOf(',') + 1); + byte[] bytes = Base64.decode(base64.getBytes(), 0); + + Bitmap bm = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); + if (bm == null) + throw new IllegalArgumentException("decode byte array failed"); + + Drawable d = new BitmapDrawable(res, bm); + d.setBounds(0, 0, bm.getWidth(), bm.getHeight()); + return d; + } + static private Drawable getCachedImage(Context context, File file) { if (file.exists()) { Log.i("Using cached " + file);