private final CoreListenerManager coreListenerManager = new CoreListenerManager(this);
/** The configuration. */
- private final Configuration configuration;
+ private Configuration configuration;
/** The identity manager. */
private final IdentityManager identityManager;
//
/**
+ * Sets the configuration to use. This will automatically save the current
+ * configuration to the given configuration.
+ *
+ * @param configuration
+ * The new configuration to use
+ */
+ public void setConfiguration(Configuration configuration) {
+ this.configuration = configuration;
+ saveConfiguration();
+ }
+
+ /**
* Returns the options used by the core.
*
* @return The options of the core
}
}
synchronized (storedSone) {
- storedSone.setTime(sone.getTime());
+ if (!soneRescueMode || (sone.getTime() > storedSone.getTime())) {
+ storedSone.setTime(sone.getTime());
+ }
storedSone.setClient(sone.getClient());
storedSone.setProfile(sone.getProfile());
if (soneRescueMode) {
storedSone.setLikePostIds(sone.getLikedPostIds());
storedSone.setLikeReplyIds(sone.getLikedReplyIds());
}
- storedSone.setLatestEdition(sone.getRequestUri().getEdition());
+ storedSone.setLatestEdition(sone.getLatestEdition());
}
}
}
stopped = true;
}
+ /**
+ * Saves the current options.
+ */
+ public void saveConfiguration() {
+ /* store the options first. */
+ try {
+ configuration.getIntValue("Option/InsertionDelay").setValue(options.getIntegerOption("InsertionDelay").getReal());
+ configuration.getBooleanValue("Option/SoneRescueMode").setValue(options.getBooleanOption("SoneRescueMode").getReal());
+ configuration.getBooleanValue("Option/ClearOnNextRestart").setValue(options.getBooleanOption("ClearOnNextRestart").getReal());
+ configuration.getBooleanValue("Option/ReallyClearOnNextRestart").setValue(options.getBooleanOption("ReallyClearOnNextRestart").getReal());
+
+ /* save known Sones. */
+ int soneCounter = 0;
+ synchronized (newSones) {
+ for (String knownSoneId : knownSones) {
+ configuration.getStringValue("KnownSone/" + soneCounter++ + "/ID").setValue(knownSoneId);
+ }
+ configuration.getStringValue("KnownSone/" + soneCounter + "/ID").setValue(null);
+ }
+
+ /* save known posts. */
+ int postCounter = 0;
+ synchronized (newPosts) {
+ for (String knownPostId : knownPosts) {
+ configuration.getStringValue("KnownPosts/" + postCounter++ + "/ID").setValue(knownPostId);
+ }
+ configuration.getStringValue("KnownPosts/" + postCounter + "/ID").setValue(null);
+ }
+
+ /* save known replies. */
+ int replyCounter = 0;
+ synchronized (newReplies) {
+ for (String knownReplyId : knownReplies) {
+ configuration.getStringValue("KnownReplies/" + replyCounter++ + "/ID").setValue(knownReplyId);
+ }
+ configuration.getStringValue("KnownReplies/" + replyCounter + "/ID").setValue(null);
+ }
+
+ /* now save it. */
+ configuration.save();
+
+ } catch (ConfigurationException ce1) {
+ logger.log(Level.SEVERE, "Could not store configuration!", ce1);
+ }
+ }
+
//
// PRIVATE METHODS
//
}
/**
- * Saves the current options.
- */
- private void saveConfiguration() {
- /* store the options first. */
- try {
- configuration.getIntValue("Option/InsertionDelay").setValue(options.getIntegerOption("InsertionDelay").getReal());
- configuration.getBooleanValue("Option/SoneRescueMode").setValue(options.getBooleanOption("SoneRescueMode").getReal());
- configuration.getBooleanValue("Option/ClearOnNextRestart").setValue(options.getBooleanOption("ClearOnNextRestart").getReal());
- configuration.getBooleanValue("Option/ReallyClearOnNextRestart").setValue(options.getBooleanOption("ReallyClearOnNextRestart").getReal());
-
- /* save known Sones. */
- int soneCounter = 0;
- synchronized (newSones) {
- for (String knownSoneId : knownSones) {
- configuration.getStringValue("KnownSone/" + soneCounter++ + "/ID").setValue(knownSoneId);
- }
- configuration.getStringValue("KnownSone/" + soneCounter + "/ID").setValue(null);
- }
-
- /* save known posts. */
- int postCounter = 0;
- synchronized (newPosts) {
- for (String knownPostId : knownPosts) {
- configuration.getStringValue("KnownPosts/" + postCounter++ + "/ID").setValue(knownPostId);
- }
- configuration.getStringValue("KnownPosts/" + postCounter + "/ID").setValue(null);
- }
-
- /* save known replies. */
- int replyCounter = 0;
- synchronized (newReplies) {
- for (String knownReplyId : knownReplies) {
- configuration.getStringValue("KnownReplies/" + replyCounter++ + "/ID").setValue(knownReplyId);
- }
- configuration.getStringValue("KnownReplies/" + replyCounter + "/ID").setValue(null);
- }
-
- } catch (ConfigurationException ce1) {
- logger.log(Level.SEVERE, "Could not store configuration!", ce1);
- }
- }
-
- /**
* Generate a Sone URI from the given URI and latest edition.
*
* @param uriString