Compare commits

...

5 Commits

Author SHA1 Message Date
renovate[bot] b6afcd99ec
Merge 76f2aae18b into f90d8d03d9 2024-04-30 17:27:45 +00:00
renovate[bot] 76f2aae18b
Update dependency com.android.tools.build:gradle to v8.4.0 2024-04-30 17:27:43 +00:00
InsanusMokrassar f90d8d03d9
Merge pull request #108 from InsanusMokrassar/2.3.0
2.3.0
2024-04-25 18:44:04 +06:00
InsanusMokrassar 36671cb379 potential fix of #107 2024-03-21 17:34:22 +06:00
InsanusMokrassar 68be768763 start 2.3.0 2024-03-21 17:14:59 +06:00
3 changed files with 27 additions and 5 deletions

View File

@ -1,5 +1,9 @@
# Changelog
## 2.3.0
* `doWhile` now will guarantee that it will not call `doOnce` more than once for time
## 2.2.9
* `Version`:

View File

@ -23,7 +23,7 @@ github_release_plugin_version=2.5.2
## Android
android_gradle_version=8.1.4
android_gradle_version=8.4.0
android_minSdkVersion=21
android_compileSdkVersion=34
android_buildToolsVersion=34.0.0
@ -36,5 +36,5 @@ androidx_work_version=2.9.0
## Common
version=2.2.9
android_code_version=39
version=2.3.0
android_code_version=40

View File

@ -71,9 +71,18 @@ suspend inline fun <T> doOnceTz(
* Will execute [block] while it will return true as a result of its calculation
*/
suspend inline fun KronScheduler.doWhile(block: (DateTime) -> Boolean) {
var latest: DateTime? = null
do {
delay(1L)
} while (doOnce(block))
val result = doOnce {
if (latest != it) {
latest = it
block(it)
} else {
null
}
}
} while (result == null || result)
}
/**
* Will execute [block] while it will return true as a result of its calculation
@ -85,9 +94,18 @@ suspend inline fun KronScheduler.doWhileLocal(block: (DateTime) -> Boolean) = do
* Will execute [block] while it will return true as a result of its calculation
*/
suspend inline fun KronScheduler.doWhileTz(noinline block: suspend (DateTimeTz) -> Boolean) {
var latest: DateTimeTz? = null
do {
delay(1L)
} while (doOnceTz(block))
val result = doOnceTz {
if (latest != it) {
latest = it
block(it)
} else {
null
}
}
} while (result == null || result)
}
/**