Foundations(iOS Sourceset): Provide implementation for GZip compression/decompression. Some small fixes in URLs.ios.kt .

This commit is contained in:
KotlinGeekDev
2026-01-27 20:52:43 +01:00
parent 3f9f496c8b
commit 506996b382
4 changed files with 23 additions and 3 deletions
+2
View File
@@ -1,6 +1,7 @@
[versions]
accompanistAdaptive = "0.37.3"
cachemapVersion = "0.2.4"
comDitchoomBufferCompression = "2.1.0"
composeMultiplatform = "1.9.3"
activityCompose = "1.12.2"
agp = "8.13.2"
@@ -118,6 +119,7 @@ coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref
coil-gif = { group = "io.coil-kt.coil3", name = "coil-gif", version.ref = "coil" }
coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" }
coil-okhttp = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" }
com-ditchoom-buffer-compression = { module = "com.ditchoom:buffer-compression", version.ref = "comDitchoomBufferCompression" }
drfonfon-geohash = { group = "com.github.drfonfon", name = "android-kotlin-geohash", version.ref = "androidKotlinGeohash" }
firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" }
firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging" }
+1
View File
@@ -252,6 +252,7 @@ kotlin {
dependencies {
implementation(libs.charlietap.cachemap)
implementation(libs.net.thauvin.erik.urlencoder.lib)
implementation(libs.com.ditchoom.buffer.compression)
}
}
@@ -20,12 +20,29 @@
*/
package com.vitorpamplona.quartz.utils
import com.ditchoom.buffer.PlatformBuffer
import com.ditchoom.buffer.ReadBuffer
import com.ditchoom.buffer.compression.CompressionAlgorithm
import com.ditchoom.buffer.compression.getOrThrow
import com.ditchoom.buffer.toByteArray
import com.ditchoom.buffer.toReadBuffer
import com.ditchoom.buffer.wrap
import com.ditchoom.buffer.compression.compress as compressData
import com.ditchoom.buffer.compression.decompress as decompressData
actual object GZip {
actual fun compress(content: String): ByteArray {
TODO("Not yet implemented")
val contentBuffer = content.toReadBuffer()
val compressedContent = compressData(contentBuffer, algorithm = CompressionAlgorithm.Gzip).getOrThrow().toByteArray()
return compressedContent
}
actual fun decompress(content: ByteArray): String {
TODO("Not yet implemented")
val contentBuffer = PlatformBuffer.wrap(content)
val decompressedContentBuffer = decompressData(contentBuffer, algorithm = CompressionAlgorithm.Gzip)
.getOrThrow()
val content = decompressedContentBuffer.toByteArray().decodeToString()
return content
}
}
@@ -23,9 +23,9 @@ package com.vitorpamplona.quartz.utils
import kotlinx.cinterop.ExperimentalForeignApi
import swiftbridge.UrlDetector
@Suppress("UNCHECKED_CAST")
@OptIn(ExperimentalForeignApi::class)
actual fun fastFindURLs(text: String): List<String> {
val detectorInstance = UrlDetector()
return detectorInstance.findURLsWithText(text) as List<String>
// TODO("Not yet implemented")
}