Inject current version into update checker
[Sone.git] / src / main / java / net / pterodactylus / sone / core / UpdateChecker.java
index 0763c24..dbca3f1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - UpdateChecker.java - Copyright © 2011–2013 David Roden
+ * Sone - UpdateChecker.java - Copyright © 2011–2015 David Roden
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,6 +28,8 @@ import java.util.Properties;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.inject.Singleton;
+
 import net.pterodactylus.sone.core.FreenetInterface.Fetched;
 import net.pterodactylus.sone.core.event.UpdateFoundEvent;
 import net.pterodactylus.sone.main.SonePlugin;
@@ -45,16 +47,11 @@ import freenet.support.api.Bucket;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
+@Singleton
 public class UpdateChecker {
 
        /** The logger. */
-       private static final Logger logger = getLogger("Sone.UpdateChecker");
-
-       /** The key of the Sone homepage. */
-       private static final String SONE_HOMEPAGE = "USK@nwa8lHa271k2QvJ8aa0Ov7IHAV-DFOCFgmDt3X6BpCI,DuQSUZiI~agF8c-6tjsFFGuZ8eICrzWCILB60nT8KKo,AQACAAE/sone/";
-
-       /** The current latest known edition. */
-       private static final int LATEST_EDITION = 62;
+       private static final Logger logger = getLogger(UpdateChecker.class.getName());
 
        /** The event bus. */
        private final EventBus eventBus;
@@ -69,7 +66,8 @@ public class UpdateChecker {
        private long latestEdition;
 
        /** The current latest known version. */
-       private Version currentLatestVersion = SonePlugin.VERSION;
+       private Version currentLatestVersion;
+       private final Version currentRunningVersion;
 
        /** The release date of the latest version. */
        private long latestVersionDate;
@@ -83,9 +81,11 @@ public class UpdateChecker {
         *            The freenet interface to use
         */
        @Inject
-       public UpdateChecker(EventBus eventBus, FreenetInterface freenetInterface) {
+       public UpdateChecker(EventBus eventBus, FreenetInterface freenetInterface, Version currentVersion) {
                this.eventBus = eventBus;
                this.freenetInterface = freenetInterface;
+               this.currentRunningVersion = currentVersion;
+               this.currentLatestVersion = currentVersion;
        }
 
        //
@@ -99,7 +99,7 @@ public class UpdateChecker {
         * @return {@code true} if a new version was found
         */
        public boolean hasLatestVersion() {
-               return currentLatestVersion.compareTo(SonePlugin.VERSION) > 0;
+               return currentLatestVersion.compareTo(currentRunningVersion) > 0;
        }
 
        /**
@@ -141,7 +141,7 @@ public class UpdateChecker {
         */
        public void start() {
                try {
-                       currentUri = new FreenetURI(SONE_HOMEPAGE + LATEST_EDITION);
+                       currentUri = new FreenetURI(SonePlugin.getHomepage());
                } catch (MalformedURLException mue1) {
                        /* this can not really happen unless I screw up. */
                        logger.log(Level.SEVERE, "Sone Homepage URI invalid!", mue1);