improve perf for getCover
[fanfix.git] / src / be / nikiroo / fanfix / library / LocalLibrary.java
index 584fa1ed2c7b9834d2afba224fef96dad537d95b..93bf7ba2f995cff5f12e74f109d648f0c72f603c 100644 (file)
@@ -123,6 +123,10 @@ public class LocalLibrary extends BasicLibrary {
        public Image getCover(String luid) {
                MetaData meta = getInfo(luid);
                if (meta != null) {
+                       if (meta.getCover() != null) {
+                               return meta.getCover();
+                       }
+
                        File[] files = getStories(null).get(meta);
                        if (files != null) {
                                File infoFile = files[0];
@@ -224,18 +228,23 @@ public class LocalLibrary extends BasicLibrary {
                File coverDir = new File(baseDir, source);
                if (coverDir.isDirectory()) {
                        File cover = new File(coverDir, ".cover.png");
-                       InputStream in;
-                       try {
-                               in = new FileInputStream(cover);
+                       if (cover.exists()) {
+                               InputStream in;
                                try {
-                                       sourceCovers.put(source, new Image(in));
-                               } finally {
-                                       in.close();
+                                       in = new FileInputStream(cover);
+                                       try {
+                                               sourceCovers.put(source, new Image(in));
+                                       } finally {
+                                               in.close();
+                                       }
+                               } catch (FileNotFoundException e) {
+                                       e.printStackTrace();
+                               } catch (IOException e) {
+                                       Instance.getTraceHandler().error(
+                                                       new IOException(
+                                                                       "Cannot load the existing custom source cover: "
+                                                                                       + cover, e));
                                }
-                       } catch (FileNotFoundException e) {
-                               e.printStackTrace();
-                       } catch (IOException e) {
-                               e.printStackTrace();
                        }
                }