diff --git a/quartz/build.gradle.kts b/quartz/build.gradle.kts index 06e475e22..c6c82b27e 100644 --- a/quartz/build.gradle.kts +++ b/quartz/build.gradle.kts @@ -3,7 +3,6 @@ import com.vanniktech.maven.publish.KotlinMultiplatform import io.github.frankois944.spmForKmp.swiftPackageConfig import io.github.frankois944.spmForKmp.utils.ExperimentalSpmForKmpFeature -import org.gradle.kotlin.dsl.androidLibrary import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest @@ -25,7 +24,7 @@ kotlin { } } - androidLibrary { + android { namespace = "com.vitorpamplona.quartz" compileSdk = libs.versions.android.compileSdk diff --git a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/Rfc3986.ios.kt b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/Rfc3986.ios.kt index af663bac9..c782de2f9 100644 --- a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/Rfc3986.ios.kt +++ b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/Rfc3986.ios.kt @@ -31,7 +31,7 @@ actual object Rfc3986 { actual fun normalize(uri: String): String = rfc3986UriBridge .normalizeUrlWithUrl(uri, null) - .let { if (it?.last() == '/') it else "$it/" } + ?.let { if (it.last() == '/') it else "$it/" } ?: throw Exception("Could not normalize URI: $uri") actual fun isValidUrl(url: String): Boolean = rfc3986UriBridge.isUrlValidWithUrl(url) diff --git a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/cache/LargeCache.ios.kt b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/cache/LargeCache.ios.kt index 532c91fb6..bcec6b77b 100644 --- a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/cache/LargeCache.ios.kt +++ b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/cache/LargeCache.ios.kt @@ -80,7 +80,7 @@ actual class LargeCache : ICacheOperations { } else { val newObject = builder(key) concurrentMap.put(key, newObject) - concurrentMap[key] == null + concurrentMap[key] != null } } @@ -108,7 +108,7 @@ actual class LargeCache : ICacheOperations { actual override fun mapNotNullIntoSet(consumer: CacheCollectors.BiMapper): Set = mapNotNull(consumer).toSet() - actual override fun mapFlatten(consumer: CacheCollectors.BiMapper?>): List = concurrentMap.flatMap { consumer.map(it.key, it.value) as Iterable } + actual override fun mapFlatten(consumer: CacheCollectors.BiMapper?>): List = concurrentMap.flatMap { entry -> consumer.map(entry.key, entry.value) ?: emptyList() } actual override fun mapFlattenIntoSet(consumer: CacheCollectors.BiMapper?>): Set = mapFlatten(consumer).toSet() @@ -312,10 +312,14 @@ fun CacheMap.subMapAlt( val keySet = keys val fromIndex = keySet.indexOf(from) val toIndex = keySet.indexOf(to) - for (index in fromIndex..toIndex) { + for (index in fromIndex until toIndex) { val correspondingEntry = entries.elementAt(index) resultMap[correspondingEntry.key] = correspondingEntry.value } + if (toInclusive) { + val correspondingToEntry = entries.elementAt(toIndex) + resultMap[correspondingToEntry.key] = correspondingToEntry.value + } return resultMap } @@ -332,10 +336,6 @@ fun Map.maxOrNullOf( ): V? { var maxK: K? = null var maxV: V? = null - - val finalMaxK: K? = maxK - val finalMaxV: V? = maxV - forEach { if (filter.filter(it.key, it.value)) { if (maxK == null || (maxV != null && comparator.compare(it.value, maxV) > 0)) { @@ -345,21 +345,22 @@ fun Map.maxOrNullOf( } } + val finalMaxK: K? = maxK + val finalMaxV: V? = maxV + return finalMaxV } fun Map.sumOf(consumer: CacheCollectors.BiSumOf): Int { var sum = 0 - val totalSum = sum forEach { sum += consumer.map(it.key, it.value) } - return totalSum + return sum } fun Map.sumOfLong(consumer: CacheCollectors.BiSumOfLong): Long { var sum = 0L - val totalSum = sum forEach { sum += consumer.map(it.key, it.value) } - return totalSum + return sum } fun Map.groupBy(consumer: CacheCollectors.BiNotNullMapper): Map> { diff --git a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/io/CustomBitSet.kt b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/io/CustomBitSet.kt index cba6e75ba..b148010c2 100644 --- a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/io/CustomBitSet.kt +++ b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/io/CustomBitSet.kt @@ -227,7 +227,7 @@ class CustomBitSet( } fun clear() { - for (i in 0..words.size) words[i] = 0 + for (i in words.indices) words[i] = 0 } private constructor(longArray: LongArray) : this(0) { diff --git a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/mac/MacInstance.kt b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/mac/MacInstance.kt index 4d5c67e1a..52b65b39e 100644 --- a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/mac/MacInstance.kt +++ b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/utils/mac/MacInstance.kt @@ -38,7 +38,7 @@ actual class MacInstance actual constructor( .keyDecoder(digestForAlgorithm(algorithm)) .decodeFromByteArrayBlocking(HMAC.Key.Format.RAW, key) - private val hmacSignFunction = internalMacInstance.signatureGenerator().createSignFunction() + private var hmacSignFunction = internalMacInstance.signatureGenerator().createSignFunction() actual fun init( key: ByteArray, @@ -49,6 +49,8 @@ actual class MacInstance actual constructor( .get(HMAC) .keyDecoder(digestForAlgorithm(algorithm)) .decodeFromByteArrayBlocking(HMAC.Key.Format.RAW, key) + + hmacSignFunction = internalMacInstance.signatureGenerator().createSignFunction() } actual fun getMacLength(): Int = hmacSignFunction.signIntoByteArray(internalMacInstance.encodeToByteArrayBlocking(HMAC.Key.Format.RAW))