+ pgDirs.setName("Loading directories");
+ }
+ }
+
+ pg.done();
+ return stories;
+ }
+
+ private void addToStories(Progress pgFiles, File dir) {
+ File[] infoFilesAndSubdirs = dir.listFiles(new FileFilter() {
+ @Override
+ public boolean accept(File file) {
+ boolean info = file != null && file.isFile()
+ && file.getPath().toLowerCase().endsWith(".info");
+ boolean dir = file != null && file.isDirectory();
+ return info || dir;
+ }
+ });
+
+ if (pgFiles != null) {
+ pgFiles.setMinMax(0, infoFilesAndSubdirs.length);
+ }
+
+ for (File infoFileOrSubdir : infoFilesAndSubdirs) {
+ if (pgFiles != null) {
+ pgFiles.setName(infoFileOrSubdir.getName());
+ }
+
+ if (infoFileOrSubdir.isDirectory()) {
+ addToStories(null, infoFileOrSubdir);
+ } else {
+ try {
+ MetaData meta = InfoReader
+ .readMeta(infoFileOrSubdir, false);