diff --git a/.gitignore b/.gitignore index 7695475..e9dc09e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea +.kotlin out/* *.iml target diff --git a/CHANGELOG.md b/CHANGELOG.md index fda6290..0835d70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 2.4.0 + +* `Version`: + * `Kotlin`: `2.0.10` + * `Coroutines`: `1.8.1` + * `Serialization`: `1.7.1` + * `Klock`: `5.4.0` + * `AndroidXWork`: `2.9.1` + ## 2.3.0 * `doWhile` now will guarantee that it will not call `doOnce` more than once for time diff --git a/gradle.properties b/gradle.properties index fef0e73..d0a9854 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,9 +9,9 @@ android.useAndroidX=true android.enableJetifier=false -kotlin_version=1.9.23 -kotlin_coroutines_version=1.8.0 -kotlin_serialization_version=1.6.3 +kotlin_version=2.0.10 +kotlin_coroutines_version=1.8.1 +kotlin_serialization_version=1.7.1 dokka_version=1.9.20 @@ -23,18 +23,18 @@ github_release_plugin_version=2.5.2 ## Android -android_gradle_version=8.1.4 +android_gradle_version=8.2.2 android_minSdkVersion=21 -android_compileSdkVersion=34 -android_buildToolsVersion=34.0.0 +android_compileSdkVersion=35 +android_buildToolsVersion=35.0.0 dexcount_version=4.0.0 junit_version=4.12 test_ext_junit_version=1.1.3 espresso_core=3.4.0 -androidx_work_version=2.9.0 +androidx_work_version=2.9.1 ## Common -version=2.3.0 -android_code_version=40 +version=2.4.0 +android_code_version=41 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e2c6241..95d3181 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip diff --git a/src/androidMain/kotlin/KronSchedulerWork.kt b/src/androidMain/kotlin/KronSchedulerWork.kt index 09567e9..f0afd98 100644 --- a/src/androidMain/kotlin/KronSchedulerWork.kt +++ b/src/androidMain/kotlin/KronSchedulerWork.kt @@ -139,10 +139,14 @@ abstract class KronSchedulerWork( } throw e } - when (result) { - is Result.Failure -> if (prolongOnFailure) prolong() - is Result.Success -> if (prolongOnSuccess) prolong() - } + result.checkResults( + onFailure = { + if (prolongOnFailure) prolong() + }, + onSuccess = { + if (prolongOnSuccess) prolong() + } + ) return result } } diff --git a/src/androidMain/kotlin/ResultChecker.kt b/src/androidMain/kotlin/ResultChecker.kt new file mode 100644 index 0000000..961becd --- /dev/null +++ b/src/androidMain/kotlin/ResultChecker.kt @@ -0,0 +1,15 @@ +package dev.inmo.krontab + +import android.annotation.SuppressLint +import androidx.work.ListenableWorker + +@SuppressLint("RestrictedApi") +internal inline fun ListenableWorker.Result.checkResults( + onFailure: () -> Unit, + onSuccess: () -> Unit +) { + when (this) { + is ListenableWorker.Result.Failure -> onFailure() + is ListenableWorker.Result.Success -> onSuccess() + } +}