Foundations(iOS Sourceset): Provide implementation for GZip compression/decompression. Some small fixes in URLs.ios.kt .
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
[versions]
|
[versions]
|
||||||
accompanistAdaptive = "0.37.3"
|
accompanistAdaptive = "0.37.3"
|
||||||
cachemapVersion = "0.2.4"
|
cachemapVersion = "0.2.4"
|
||||||
|
comDitchoomBufferCompression = "2.1.0"
|
||||||
composeMultiplatform = "1.9.3"
|
composeMultiplatform = "1.9.3"
|
||||||
activityCompose = "1.12.2"
|
activityCompose = "1.12.2"
|
||||||
agp = "8.13.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-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-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" }
|
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" }
|
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-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" }
|
||||||
firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging" }
|
firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging" }
|
||||||
|
|||||||
@@ -252,6 +252,7 @@ kotlin {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.charlietap.cachemap)
|
implementation(libs.charlietap.cachemap)
|
||||||
implementation(libs.net.thauvin.erik.urlencoder.lib)
|
implementation(libs.net.thauvin.erik.urlencoder.lib)
|
||||||
|
implementation(libs.com.ditchoom.buffer.compression)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,12 +20,29 @@
|
|||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.utils
|
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 object GZip {
|
||||||
actual fun compress(content: String): ByteArray {
|
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 {
|
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 kotlinx.cinterop.ExperimentalForeignApi
|
||||||
import swiftbridge.UrlDetector
|
import swiftbridge.UrlDetector
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
@OptIn(ExperimentalForeignApi::class)
|
@OptIn(ExperimentalForeignApi::class)
|
||||||
actual fun fastFindURLs(text: String): List<String> {
|
actual fun fastFindURLs(text: String): List<String> {
|
||||||
val detectorInstance = UrlDetector()
|
val detectorInstance = UrlDetector()
|
||||||
return detectorInstance.findURLsWithText(text) as List<String>
|
return detectorInstance.findURLsWithText(text) as List<String>
|
||||||
// TODO("Not yet implemented")
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user