Skip to content

Commit

Permalink
fix previews on android
Browse files Browse the repository at this point in the history
closes #37
  • Loading branch information
luca992 committed Jan 25, 2025
1 parent 24c91f5 commit 7663ae3
Show file tree
Hide file tree
Showing 7 changed files with 830 additions and 115 deletions.
8 changes: 5 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,23 @@ com-android-application = { id = "com.android.application", version.ref = "agp"
kotlin = "2.1.0"
agp = "8.7.3"

okio = "3.9.1"
okio = "3.10.2"
startup-runtime = "1.2.0"
vanniktech-publish = "0.30.0"
compose = "1.7.3"
coroutines = "1.10.1"
ktor = "3.0.3"
cache4k = "0.13.0"
cache4k = "0.14.0"
xmlutil = "0.90.3"
activity-compose ="1.9.3"
activity-compose = "1.10.0"
appcompat = "1.7.0"
material = "1.12.0"
androidsvg = "1.4"
batik = "1.18"
slf4j = "2.0.16"
annotation = "1.9.1"
core-ctx = "1.15.0"
ui-tooling = "1.7.6"

[libraries]

Expand Down Expand Up @@ -61,3 +62,4 @@ com-caverok-androidsvg = { module = "com.caverock:androidsvg-aar", version.ref =
apache-batik-transcoder = { module = "org.apache.xmlgraphics:batik-transcoder", version.ref = "batik" }
apache-batik-codec = { module = "org.apache.xmlgraphics:batik-codec", version.ref = "batik" }
slf4j = { module = "org.slf4j:slf4j-nop", version.ref = "slf4j" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "ui-tooling" }
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import android.content.Context
import androidx.startup.Initializer


public lateinit var applicationContext: Context
public var applicationContext: Context? = null

internal class ApplicationContextInitializer : Initializer<Context> {
override fun create(context: Context): Context = context.also {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,22 @@ package io.kamel.core.cache

import io.kamel.core.applicationContext
import io.kamel.core.cache.disk.DiskCacheStorage
import io.ktor.client.plugins.cache.storage.CacheStorage
import io.ktor.client.plugins.cache.storage.*
import okio.FileSystem
import okio.Path.Companion.toOkioPath

private val cacheDir = applicationContext.cacheDir.toOkioPath()
private val cacheDir = applicationContext?.cacheDir?.toOkioPath()

internal actual fun httpCacheStorage(maxSize: Long): CacheStorage = DiskCacheStorage(
fileSystem = FileSystem.SYSTEM,
directory = cacheDir,
maxSize = maxSize
)
internal actual fun httpCacheStorage(maxSize: Long): CacheStorage {
return if (cacheDir == null) {
println(
"Warning: applicationContext is null, DiskCacheStorage is disabled")
CacheStorage.Disabled
} else {
DiskCacheStorage(
fileSystem = FileSystem.SYSTEM,
directory = cacheDir,
maxSize = maxSize
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ import io.kamel.core.applicationContext
import io.kamel.core.config.KamelConfigBuilder

internal actual fun KamelConfigBuilder.platformSpecificConfig() {
resourcesIdMapper(applicationContext)
resourcesFetcher(applicationContext)
if (applicationContext == null) {
println("Warning: Android application context is not provided. Skipping adding Kamel Components requiring Android application context.")
}

applicationContext?.applicationContext?.let { context ->
resourcesIdMapper(context)
resourcesFetcher(context)
}
}

5 changes: 5 additions & 0 deletions kamel-samples/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,11 @@ kotlin {
}
}

dependencies {
// https://youtrack.jetbrains.com/issue/KTIJ-32720/Support-common-org.jetbrains.compose.ui.tooling.preview.Preview-in-IDEA-and-Android-Studio#focus=Comments-27-11400795.0-0
debugImplementation(libs.androidx.ui.tooling)
}

compose {
desktop {
application {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@ import androidx.compose.material.Tab
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import io.kamel.core.config.Core
import io.kamel.core.config.KamelConfig
import io.kamel.core.config.takeFrom
import io.kamel.image.KamelImage
import io.kamel.image.asyncPainterResource
import io.kamel.image.config.*
import org.jetbrains.compose.ui.tooling.preview.Preview

@Composable
Expand Down
Loading

0 comments on commit 7663ae3

Please sign in to comment.