/*
- * Sone - Preferences.java - Copyright © 2013–2016 David Roden
+ * Sone - Preferences.java - Copyright © 2013–2019 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
/**
* Convenience interface for external classes that want to access the core’s
* configuration.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
public class Preferences {
private final EventBus eventBus;
private final Option<Integer> insertionDelay =
- new DefaultOption<Integer>(60, range(0, MAX_VALUE));
+ new DefaultOption<>(60, range(0, MAX_VALUE));
private final Option<Integer> postsPerPage =
- new DefaultOption<Integer>(10, range(1, MAX_VALUE));
+ new DefaultOption<>(10, range(1, MAX_VALUE));
private final Option<Integer> imagesPerPage =
- new DefaultOption<Integer>(9, range(1, MAX_VALUE));
+ new DefaultOption<>(9, range(1, MAX_VALUE));
private final Option<Integer> charactersPerPost =
- new DefaultOption<Integer>(400, Predicates.<Integer>or(
+ new DefaultOption<>(400, Predicates.<Integer>or(
range(50, MAX_VALUE), equalTo(-1)));
private final Option<Integer> postCutOffLength =
- new DefaultOption<Integer>(200, range(50, MAX_VALUE));
+ new DefaultOption<>(200, range(50, MAX_VALUE));
private final Option<Boolean> requireFullAccess =
- new DefaultOption<Boolean>(false);
+ new DefaultOption<>(false);
private final Option<Integer> positiveTrust =
- new DefaultOption<Integer>(75, range(0, 100));
+ new DefaultOption<>(75, range(0, 100));
private final Option<Integer> negativeTrust =
- new DefaultOption<Integer>(-25, range(-100, 100));
+ new DefaultOption<>(-25, range(-100, 100));
private final Option<String> trustComment =
- new DefaultOption<String>("Set from Sone Web Interface");
+ new DefaultOption<>("Set from Sone Web Interface");
private final Option<Boolean> activateFcpInterface =
- new DefaultOption<Boolean>(false);
+ new DefaultOption<>(false);
private final Option<FullAccessRequired> fcpFullAccessRequired =
- new DefaultOption<FullAccessRequired>(ALWAYS);
+ new DefaultOption<>(ALWAYS);
public Preferences(EventBus eventBus) {
this.eventBus = eventBus;
public Preferences setInsertionDelay(Integer insertionDelay) {
this.insertionDelay.set(insertionDelay);
eventBus.post(new InsertionDelayChangedEvent(getInsertionDelay()));
+ eventBus.post(new PreferenceChangedEvent("InsertionDelay", getInsertionDelay()));
return this;
}
*/
public Preferences setPostsPerPage(Integer postsPerPage) {
this.postsPerPage.set(postsPerPage);
+ eventBus.post(new PreferenceChangedEvent("PostsPerPage", getPostsPerPage()));
return this;
}