Compare commits

..

6 Commits

Author SHA1 Message Date
999c8327bd lazyInject 2023-05-14 16:36:24 +06:00
c2ec73c70a start 0.18.4 2023-05-14 16:28:03 +06:00
702f782fc1 Merge pull request #254 from InsanusMokrassar/0.18.3
0.18.3
2023-05-12 14:30:37 +06:00
25dbcaaf83 update dependencies 2023-05-12 00:51:38 +06:00
b00d454a24 start 0.18.3 2023-05-12 00:26:16 +06:00
dbc921d56d Merge pull request #250 from InsanusMokrassar/0.18.2
0.18.2
2023-05-10 10:19:47 +06:00
4 changed files with 43 additions and 5 deletions

View File

@@ -1,5 +1,16 @@
# Changelog
## 0.18.4
* `Koin`:
* New extension `lazyInject`
## 0.18.3
* `Versions`:
* `Serialization`: `1.5.0` -> `1.5.1`
* `Android Cor Ktx`: `1.10.0` -> `1.10.1`
## 0.18.2
* `Startup`:

View File

@@ -14,5 +14,5 @@ crypto_js_version=4.1.1
# Project data
group=dev.inmo
version=0.18.2
android_code_version=193
version=0.18.4
android_code_version=195

View File

@@ -1,7 +1,7 @@
[versions]
kt = "1.8.20"
kt-serialization = "1.5.0"
kt-serialization = "1.5.1"
kt-coroutines = "1.6.4"
kslog = "1.1.1"
@@ -22,12 +22,12 @@ koin = "3.4.0"
okio = "3.3.0"
ksp = "1.8.20-1.0.11"
kotlin-poet = "1.13.0"
kotlin-poet = "1.13.2"
android-gradle = "7.4.2"
dexcount = "4.0.0"
android-coreKtx = "1.10.0"
android-coreKtx = "1.10.1"
android-recyclerView = "1.3.0"
android-appCompat = "1.6.1"
android-fragment = "1.5.7"

View File

@@ -0,0 +1,27 @@
package dev.inmo.micro_utils.koin
import org.koin.core.parameter.ParametersDefinition
import org.koin.core.qualifier.Qualifier
import org.koin.java.KoinJavaComponent
import kotlin.reflect.KClass
fun <T> lazyInject(
kClassFactory: () -> KClass<*>,
qualifier: Qualifier? = null,
parameters: ParametersDefinition? = null
): Lazy<T> {
return lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
KoinJavaComponent.get(kClassFactory().java, qualifier, parameters)
}
}
fun <T> lazyInject(
kClass: KClass<*>,
qualifier: Qualifier? = null,
parameters: ParametersDefinition? = null
): Lazy<T> = lazyInject({ kClass }, qualifier, parameters)
inline fun <reified T> lazyInject(
qualifier: Qualifier? = null,
noinline parameters: ParametersDefinition? = null
): Lazy<T> = lazyInject(T::class, qualifier, parameters)