/*
- * Sone - Preferences.kt - Copyright © 2013–2019 David Roden
+ * Sone - Preferences.kt - Copyright © 2013–2020 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
package net.pterodactylus.sone.core
-import com.google.common.base.Predicates.*
import com.google.common.eventbus.*
import net.pterodactylus.sone.core.event.*
import net.pterodactylus.sone.fcp.FcpInterface.*
import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.*
import net.pterodactylus.sone.fcp.event.*
import net.pterodactylus.sone.utils.*
-import net.pterodactylus.sone.utils.IntegerRangePredicate.*
import net.pterodactylus.util.config.*
import java.lang.Integer.*
*/
class Preferences(private val eventBus: EventBus) {
- private val _insertionDelay = DefaultOption(60, range(0, MAX_VALUE))
+ private val _insertionDelay = DefaultOption(60) { it in 0..MAX_VALUE }
val insertionDelay: Int get() = _insertionDelay.get()
var newInsertionDelay: Int?
get() = unsupported
eventBus.post(PreferenceChangedEvent("InsertionDelay", insertionDelay))
}
- private val _postsPerPage = DefaultOption(10, range(1, MAX_VALUE))
+ private val _postsPerPage = DefaultOption(10) { it in 1..MAX_VALUE }
val postsPerPage: Int get() = _postsPerPage.get()
var newPostsPerPage: Int?
get() = unsupported
eventBus.post(PreferenceChangedEvent("PostsPerPage", postsPerPage))
}
- private val _imagesPerPage = DefaultOption(9, range(1, MAX_VALUE))
+ private val _imagesPerPage = DefaultOption(9) { it in 1..MAX_VALUE }
val imagesPerPage: Int get() = _imagesPerPage.get()
var newImagesPerPage: Int?
get() = unsupported
set (value: Int?) = _imagesPerPage.set(value)
- private val _charactersPerPost = DefaultOption(400, or(range(50, MAX_VALUE), equalTo(-1)))
+ private val _charactersPerPost = DefaultOption(400) { it == -1 || it in 50..MAX_VALUE }
val charactersPerPost: Int get() = _charactersPerPost.get()
var newCharactersPerPost: Int?
get() = unsupported
set(value) = _charactersPerPost.set(value)
- private val _postCutOffLength = DefaultOption(200, range(50, MAX_VALUE))
+ private val _postCutOffLength = DefaultOption(200) { it in 50..MAX_VALUE }
val postCutOffLength: Int get() = _postCutOffLength.get()
var newPostCutOffLength: Int?
get() = unsupported
get() = unsupported
set(value) = _requireFullAccess.set(value)
- private val _positiveTrust = DefaultOption(75, range(0, 100))
- val positiveTrust: Int get() = _positiveTrust.get()
- var newPositiveTrust: Int?
- get() = unsupported
- set(value) = _positiveTrust.set(value)
-
- private val _negativeTrust = DefaultOption(-25, range(-100, 100))
- val negativeTrust: Int get() = _negativeTrust.get()
- var newNegativeTrust: Int?
- get() = unsupported
- set(value) = _negativeTrust.set(value)
-
- private val _trustComment = DefaultOption("Set from Sone Web Interface")
- val trustComment: String get() = _trustComment.get()
- var newTrustComment: String?
- get() = unsupported
- set(value) = _trustComment.set(value)
-
private val _fcpInterfaceActive = DefaultOption(false)
val fcpInterfaceActive: Boolean get() = _fcpInterfaceActive.get()
var newFcpInterfaceActive: Boolean?
configuration.getIntValue("Option/CharactersPerPost").value = _charactersPerPost.real
configuration.getIntValue("Option/PostCutOffLength").value = _postCutOffLength.real
configuration.getBooleanValue("Option/RequireFullAccess").value = _requireFullAccess.real
- configuration.getIntValue("Option/PositiveTrust").value = _positiveTrust.real
- configuration.getIntValue("Option/NegativeTrust").value = _negativeTrust.real
- configuration.getStringValue("Option/TrustComment").value = _trustComment.real
configuration.getBooleanValue("Option/ActivateFcpInterface").value = _fcpInterfaceActive.real
configuration.getIntValue("Option/FcpFullAccessRequired").value = toInt(_fcpFullAccessRequired.real)
}