diff options
| author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-08-15 14:10:59 +0200 |
|---|---|---|
| committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-08-15 14:10:59 +0200 |
| commit | ecb40c801ab44118059c1ef07438dfacd75e3927 (patch) | |
| tree | 1f856159b1f3581178fbf5a79d4127c3ffeaeb9f /src/main/java/at/hannibal2/skyhanni/utils | |
| parent | 0f14d871c5202d4a5f43d1da6ce5e49d3aeadd2b (diff) | |
| download | skyhanni-ecb40c801ab44118059c1ef07438dfacd75e3927.tar.gz skyhanni-ecb40c801ab44118059c1ef07438dfacd75e3927.tar.bz2 skyhanni-ecb40c801ab44118059c1ef07438dfacd75e3927.zip | |
code cleanup and only detecting neu setting once per second
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt b/src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt new file mode 100644 index 000000000..7c734c57e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt @@ -0,0 +1,16 @@ +package at.hannibal2.skyhanni.utils + +import kotlin.time.Duration + +class RecalculatingValue<T>(private val expireTime: Duration, val calculation: () -> T) { + private var currentValue = calculation() + private var lastAccessTime = SimpleTimeMark.farPast() + + fun getValue(): T { + if (lastAccessTime.passedSince() > expireTime) { + currentValue = calculation() + lastAccessTime = SimpleTimeMark.now() + } + return currentValue + } +}
\ No newline at end of file |
