<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>I'm also not sure the download shouldn't be done with a HTTP getter instead of VLC code....<br></div>
<div><br></div>
<div>Not to mention there are other extensions than jpg for art.<br></div>
<div><br></div>
<div><br></div>
<div>On Sun, 6 Nov 2016, at 18:22, Filip Roséen wrote:<br></div>
<blockquote type="cite"><p>Hi Marc,<br></p><p>On 2016-11-05 01:43, Marc K wrote:<br></p><blockquote style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204, 204, 204);padding-left:1ex;color:rgb(80, 0, 80);"><pre><code style="white-space: pre;"> Previously, cover art of upnp media was only shown in the browser, but
 not in the player.

 Signed-off-by: Marc K <morckx@gmail.com>
 ---
  .../src/org/videolan/vlc/gui/helpers/AudioUtil.java       | 15 +++++++++++++--
  1 file changed, 13 insertions(+), 2 deletions(-)

 diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java b/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java
 index 846f996..692f073 100644
 --- a/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java
 +++ b/vlc-android/src/org/videolan/vlc/gui/helpers/AudioUtil.java
 @@ -42,11 +42,13 @@ import org.videolan.vlc.R;
  import org.videolan.vlc.VLCApplication;
  import org.videolan.vlc.media.MediaUtils;
  import org.videolan.vlc.util.AndroidDevices;
 +import org.videolan.vlc.util.HttpImageLoader;
  import org.videolan.vlc.util.MurmurHash;
  import org.videolan.vlc.util.Permissions;
  import org.videolan.vlc.util.Util;

  import java.io.BufferedOutputStream;
 +import java.io.InputStream;
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.FilenameFilter;
 @@ -227,6 +229,17 @@ public class AudioUtil {
              }

              return artworkURL;
 +        } else if (artworkURL != null && artworkURL.startsWith("http://")) {
 +            try {
 +                File outputFile = outputFile = File.createTempFile("vlc", ".jpg", context.getCacheDir());
 +                FileOutputStream fos = new FileOutputStream(outputFile);
 +                if (HttpImageLoader.downloadBitmap(artworkURL).compress(CompressFormat.JPEG, 90, fos)) {</code><br></pre></blockquote><p>Given that <code style="white-space: pre;">HttpImageLoader.downloadBitmap</code> can return <code style="white-space: pre;">null</code> to signal an error, the above suffers from a potential <i>null-pointer-exception</i>.<br></p><p>I think it is more appropriate to handle such case gracefully, than to rely on something higher in the stack to catch the exception (potentially on the expense of alternative handlers not having the opportunity to kick in).<br></p><blockquote style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204, 204, 204);padding-left:1ex;color:rgb(80, 0, 80);"><pre><code style="white-space: pre;"> +                    fos.close();
 +                    return(outputFile.getPath());
 +                }
 +            } catch (IOException e) {
 +                Log.d("ImageManager", "Error: " + e);
 +            }
          }
          return null;
      }
 @@ -322,8 +335,6 @@ public class AudioUtil {
                  if (cacheFile.exists()) {
                      if (cacheFile.length() > 0)
                          coverPath = cachePath;
 -                    else
 -                        return null;
                  }
              }

 -- 
 2.9.3</code><br></pre></blockquote><div><u>_______________________________________________</u><br></div>
<div>Android mailing list<br></div>
<div><a href="mailto:Android@videolan.org">Android@videolan.org</a><br></div>
<div><a href="https://mailman.videolan.org/listinfo/android">https://mailman.videolan.org/listinfo/android</a><br></div>
</blockquote><div><br></div>
<div id="sig60240713"><div class="signature">--<br></div>
<div class="signature">Jean-Baptiste Kempf -  President<br></div>
<div class="signature">+33 672 704 734<br></div>
<div class="signature"> <br></div>
<div class="signature"><br></div>
</div>
<div><br></div>
</body>
</html>