X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FVersionCheck.java;h=932449585f6e7e93a55cf1856b5b067965b4282d;hb=f1fb834c62f9d9a73edeeda3fed060e0dede8cef;hp=3359bacbce41b977a6a7ee9daf089a02a8331e61;hpb=b42117f163c9c0dd96424d43730fb95fb088b4be;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/VersionCheck.java b/src/be/nikiroo/fanfix/VersionCheck.java index 3359bac..9324495 100644 --- a/src/be/nikiroo/fanfix/VersionCheck.java +++ b/src/be/nikiroo/fanfix/VersionCheck.java @@ -12,6 +12,12 @@ import java.util.Map; import be.nikiroo.utils.Version; +/** + * Version checker: can check the current version of the program against a + * remote changelog, and list the missed updates and their description. + * + * @author niki + */ public class VersionCheck { private static final String url = "https://github.com/nikiroo/fanfix/raw/master/changelog.md"; @@ -102,23 +108,26 @@ public class VersionCheck { if (Instance.isVersionCheckNeeded()) { try { - InputStream in = Instance.getCache().openNoCache(new URL(url), - null); + InputStream in = Instance.getCache().openNoCache(new URL(url)); BufferedReader reader = new BufferedReader( new InputStreamReader(in, "UTF-8")); try { + Version version = new Version(); for (String line = reader.readLine(); line != null; line = reader .readLine()) { if (line.startsWith("## Version ")) { - String v = line.substring("## Version ".length()); - Version version = new Version(v); + version = new Version(line.substring("## Version " + .length())); if (version.isNewerThan(current)) { newer.add(version); changes.put(version, new ArrayList()); + } else { + version = new Version(); } - } else if (!newer.isEmpty() && !line.isEmpty()) { - Version version = newer.get(newer.size() - 1); - List ch = changes.get(version); + } else if (!version.isEmpty() && !newer.isEmpty() + && !line.isEmpty()) { + List ch = changes.get(newer.get(newer + .size() - 1)); if (!ch.isEmpty() && !line.startsWith("- ")) { int i = ch.size() - 1; ch.set(i, ch.get(i) + " " + line.trim()); @@ -131,7 +140,8 @@ public class VersionCheck { reader.close(); } } catch (IOException e) { - Instance.syserr(e); + Instance.syserr(new IOException( + "Cannot download latest changelist on github.com", e)); } }