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];
@Override
protected synchronized void updateInfo(MetaData meta) {
- deleteInfo();
+ invalidateInfo();
}
@Override
- protected void deleteInfo(String luid) {
+ protected void invalidateInfo(String luid) {
stories = null;
sourceCovers = null;
}
try {
String name = relatedFile.getName().replaceFirst(
"\\.info$", "");
- InfoCover.writeInfo(newDir, name, meta);
relatedFile.delete();
+ InfoCover.writeInfo(newDir, name, meta);
relatedFile.getParentFile().delete();
} catch (IOException e) {
Instance.getTraceHandler().error(e);
}
}
- deleteInfo();
+ invalidateInfo();
}
@Override
* the cover image
*/
synchronized void setSourceCover(String source, Image coverImage) {
- File cover = new File(getExpectedDir(source), ".cover");
+ File dir = getExpectedDir(source);
+ dir.mkdirs();
+ File cover = new File(dir, ".cover");
try {
Instance.getCache().saveAsImage(coverImage, cover, true);
if (sourceCovers != null) {
pg.add(1);
}
- deleteInfo();
+ invalidateInfo();
pg.done();
return;
}
* {@link LocalLibrary#baseDir}.
* <p>
* Will use a cached list when possible (see
- * {@link BasicLibrary#deleteInfo()}).
+ * {@link BasicLibrary#invalidateInfo()}).
*
* @param pg
* the optional {@link Progress}