X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FLocalLibrary.java;h=e531072935764398870355bbd8a1027d368bc9e6;hb=b56c9d60fe4ed9470881ebf6221acb0a52997291;hp=4cdfb944e0cd7b62bdbdedadac580cefa61f895b;hpb=b4f9071c1bd4534e9cca989f1e873310c94986c3;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/library/LocalLibrary.java b/src/be/nikiroo/fanfix/library/LocalLibrary.java index 4cdfb94..e531072 100644 --- a/src/be/nikiroo/fanfix/library/LocalLibrary.java +++ b/src/be/nikiroo/fanfix/library/LocalLibrary.java @@ -20,7 +20,6 @@ import be.nikiroo.fanfix.output.InfoCover; import be.nikiroo.fanfix.supported.InfoReader; import be.nikiroo.utils.IOUtils; import be.nikiroo.utils.Image; -import be.nikiroo.utils.MarkableFileInputStream; import be.nikiroo.utils.Progress; /** @@ -87,7 +86,7 @@ public class LocalLibrary extends BasicLibrary { this.lastId = 0; this.stories = null; - this.sourceCovers = new HashMap(); + this.sourceCovers = null; baseDir.mkdirs(); } @@ -128,9 +127,14 @@ public class LocalLibrary extends BasicLibrary { } @Override - protected void invalidateInfo(String luid) { + protected synchronized void updateInfo(MetaData meta) { + deleteInfo(); + } + + @Override + protected void deleteInfo(String luid) { stories = null; - sourceCovers = new HashMap(); + sourceCovers = null; } @Override @@ -190,11 +194,15 @@ public class LocalLibrary extends BasicLibrary { } } - invalidateInfo(); + deleteInfo(); } @Override public Image getSourceCover(String source) { + if (sourceCovers == null) { + getStories(null); + } + if (!sourceCovers.containsKey(source)) { sourceCovers.put(source, super.getSourceCover(source)); } @@ -204,8 +212,12 @@ public class LocalLibrary extends BasicLibrary { @Override public void setSourceCover(String source, String luid) { + if (sourceCovers == null) { + getStories(null); + } + sourceCovers.put(source, getCover(luid)); - File cover = new File(getExpectedDir(source), ".cover.png"); + File cover = new File(getExpectedDir(source), ".cover"); try { Instance.getCache().saveAsImage(sourceCovers.get(source), cover, true); @@ -262,15 +274,14 @@ public class LocalLibrary extends BasicLibrary { pg.add(1); } - invalidateInfo(); + deleteInfo(); pg.done(); return; } } super.imprt(other, luid, pg); - - invalidateInfo(); + deleteInfo(); } /** @@ -405,7 +416,7 @@ public class LocalLibrary extends BasicLibrary { * {@link LocalLibrary#baseDir}. *

* Will use a cached list when possible (see - * {@link BasicLibrary#invalidateInfo()}). + * {@link BasicLibrary#deleteInfo()}). * * @param pg * the optional {@link Progress} @@ -421,6 +432,7 @@ public class LocalLibrary extends BasicLibrary { if (stories == null) { stories = new HashMap(); + sourceCovers = new HashMap(); lastId = 0; @@ -468,10 +480,8 @@ public class LocalLibrary extends BasicLibrary { // not normal!! throw new IOException( "Cannot understand the LUID of " - + infoFile - + ": " - + (meta == null ? "[meta is NULL]" - : meta.getLuid()), e); + + infoFile + ": " + + meta.getLuid(), e); } } catch (IOException e) { // We should not have not-supported files in the @@ -518,8 +528,12 @@ public class LocalLibrary extends BasicLibrary { * the cover image */ void setSourceCover(String source, Image coverImage) { + if (sourceCovers == null) { + getStories(null); + } + sourceCovers.put(source, coverImage); - File cover = new File(getExpectedDir(source), ".cover.png"); + File cover = new File(getExpectedDir(source), ".cover"); try { Instance.getCache().saveAsImage(sourceCovers.get(source), cover, true);