Skip to content

Commit

Permalink
update libs, refactor images
Browse files Browse the repository at this point in the history
  • Loading branch information
stslex committed Feb 20, 2025
1 parent 435dcf8 commit 6fcd272
Show file tree
Hide file tree
Showing 9 changed files with 68 additions and 37 deletions.
12 changes: 12 additions & 0 deletions core/image/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
plugins {
alias(libs.plugins.convention.library)
alias(libs.plugins.convention.library.compose)
}

dependencies {
implementation(project(":core:core"))

implementation(libs.bundles.ktor)
implementation(libs.bundles.okhttp)
implementation(libs.coil.ktor)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package st.slex.scplashscreen.core.image

import android.content.Context
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import coil3.request.CachePolicy
import coil3.request.ImageRequest

object AppImageRequest {

@Composable
fun createImageRequestBuilder(url: String): ImageRequest.Builder {
val context = LocalContext.current
return remember {
createImageRequestBuilder(context, url)
.placeholderMemoryCacheKey(url)
}
}

fun createImageRequestBuilder(
context: Context,
url: String
): ImageRequest.Builder = ImageRequest
.Builder(context)
.data(url)
.networkCachePolicy(CachePolicy.ENABLED)
.diskCachePolicy(CachePolicy.ENABLED)
.memoryCachePolicy(CachePolicy.ENABLED)
.diskCacheKey(url)
.memoryCacheKey(url)
}
1 change: 1 addition & 0 deletions core/ui/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ dependencies {
implementation(project(":core:core"))
implementation(project(":core:navigation"))
implementation(project(":core:network"))
implementation(project(":core:image"))
api(libs.androidx.compose.navigation)

implementation(libs.androidx.paging.runtime)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ package st.slex.csplashscreen.core.ui.components
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import coil.compose.AsyncImage
import coil.request.CachePolicy
import coil.request.ImageRequest
import coil3.compose.AsyncImage
import coil3.request.crossfade
import st.slex.scplashscreen.core.image.AppImageRequest.createImageRequestBuilder

@Composable
fun ImageComponent(
Expand All @@ -16,14 +15,7 @@ fun ImageComponent(
) {
AsyncImage(
modifier = modifier,
model = ImageRequest.Builder(LocalContext.current)
.data(url)
.placeholderMemoryCacheKey(url)
.memoryCacheKey(url)
.diskCacheKey(url)
.networkCachePolicy(CachePolicy.ENABLED)
.diskCachePolicy(CachePolicy.ENABLED)
.memoryCachePolicy(CachePolicy.ENABLED)
model = createImageRequestBuilder(url)
.crossfade(true)
.build(),
contentDescription = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ fun <T : Any> PhotosBaseLazyList(
vertical = Dimen.large
),
) {

items(
count = items.itemCount,
key = items.itemKey(key),
Expand Down
1 change: 1 addition & 0 deletions feature/photo-detail/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ dependencies {
implementation(project(":core:network"))
implementation(project(":core:photos"))
implementation(project(":core:favourite"))
implementation(project(":core:image"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,23 @@ package st.slex.csplashscreen.feature.photo_detail.ui.utils

import android.app.WallpaperManager
import android.content.Context
import androidx.core.graphics.drawable.toBitmap
import coil.ImageLoader
import coil.request.CachePolicy
import coil.request.ImageRequest
import coil3.SingletonImageLoader
import coil3.toBitmap
import st.slex.scplashscreen.core.image.AppImageRequest

class WallpaperSetUseCaseImpl(
private val context: Context,
) : WallpaperSetUseCase {

override operator fun invoke(url: String) {
val imageLoader = ImageLoader(context)
val imageRequest = ImageRequest.Builder(context)
.data(url)
.diskCacheKey(url)
.memoryCacheKey(url)
.placeholderMemoryCacheKey(url)
.diskCachePolicy(CachePolicy.READ_ONLY)
.diskCachePolicy(CachePolicy.READ_ONLY)
.diskCachePolicy(CachePolicy.READ_ONLY)
val request = AppImageRequest
.createImageRequestBuilder(context, url)
.listener { _, result ->
WallpaperManager
.getInstance(context)
.setBitmap(result.drawable.toBitmap())
.setBitmap(result.image.toBitmap())
}
.build()
imageLoader.enqueue(imageRequest)
SingletonImageLoader.get(context).enqueue(request)
}
}
19 changes: 10 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[versions]
androidDesugarJdkLibs = "2.1.4"
kotlin = "2.0.20"
androidGradlePlugin = "8.8.0"
androidTools = "31.8.0"
kotlin = "2.1.0"
androidGradlePlugin = "8.8.1"
androidTools = "31.8.1"

minSdk = "28"
targetSdk = "35"
Expand All @@ -17,11 +17,11 @@ immutableCollection = "0.3.5"
lifecycle = "2.8.7"
coroutines = "1.9.0"

composeBom = "2025.01.01"
composeBom = "2025.02.00"
composeGradle = "1.7.0"
composeNavigation = "2.8.6"
composeNavigation = "2.8.7"
accompanist = "0.30.0"
coilCompose = "2.5.0"
coil = "3.0.2"
composeActivity = "1.10.0"

koin = "4.0.0"
Expand All @@ -39,9 +39,9 @@ androidxTest = "1.6.1"
room = "2.6.1"
ksp = "2.0.20-1.0.24"
mockito = "2.19.0"
vkompose = "0.6.1-k2"
vkompose = "0.7"
serialization = "1.7.3"
paging = "3.3.5"
paging = "3.3.6"
slf4j = "1.7.9"
coroutineTest = "1.9.0"
[libraries]
Expand Down Expand Up @@ -79,7 +79,8 @@ androidx-compose-tooling = { group = "androidx.compose.ui", name = "ui-tooling"
androidx-compose-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }

coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coilCompose" }
coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" }
coil-ktor = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil" }

androidx-compose-paging = { group = "androidx.paging", name = "paging-compose", version.ref = "paging" }
androidx-paging-runtime = { group = "androidx.paging", name = "paging-runtime-ktx", version.ref = "paging" }
Expand Down
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ include(":core:navigation")
include(":core:network")
include(":core:photos")
include(":core:collection")
include(":core:image")

include(":feature:home")
include(":feature:collection")
Expand Down

0 comments on commit 6fcd272

Please sign in to comment.