aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt
diff options
context:
space:
mode:
authorCalMWolfs <94038482+CalMWolfs@users.noreply.github.com>2024-04-16 02:34:51 +1000
committerGitHub <noreply@github.com>2024-04-15 18:34:51 +0200
commit66b98b62ec0ef0aa56d47af48131d661d43de579 (patch)
treefaaf994f850cc1303d699654a1129d9fd6449353 /src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt
parent377fd979821296cde9d6ceb2fa4b365e4637232a (diff)
downloadskyhanni-66b98b62ec0ef0aa56d47af48131d661d43de579.tar.gz
skyhanni-66b98b62ec0ef0aa56d47af48131d661d43de579.tar.bz2
skyhanni-66b98b62ec0ef0aa56d47af48131d661d43de579.zip
Improvement: Code cleanup, bug fix and new functions (#1445)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt b/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt
index 2dac5bf4a..3dc03c5f9 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ChatClickActionManager.kt
@@ -1,14 +1,15 @@
package at.hannibal2.skyhanni.data
import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.StringUtils
object ChatClickActionManager {
private val actions = mutableListOf<ClickableAction>()
- fun oneTimeClick(message: String, onClick: () -> Any) {
- val action = ClickableAction(StringUtils.generateRandomId(), message, onClick)
+ fun oneTimeClick(message: String, onClick: () -> Any, expiresAt: SimpleTimeMark) {
+ val action = ClickableAction(StringUtils.generateRandomId(), message, onClick, expiresAt = expiresAt)
actions.add(action)
action.sendToChat()
}
@@ -24,6 +25,10 @@ object ChatClickActionManager {
}
private fun ClickableAction.runAction() {
+ if (expiresAt.isInPast()) {
+ actions.remove(this)
+ return
+ }
onClick()
if (oneTime) {
actions.remove(this)
@@ -32,5 +37,11 @@ object ChatClickActionManager {
private fun getActionByToken(token: String) = actions.find { it.token == token }
- class ClickableAction(val token: String, val message: String, val onClick: () -> Any, val oneTime: Boolean = true)
+ class ClickableAction(
+ val token: String,
+ val message: String,
+ val onClick: () -> Any,
+ val oneTime: Boolean = true,
+ val expiresAt: SimpleTimeMark = SimpleTimeMark.farFuture()
+ )
}