Skip to content

Commit 3a35b90

Browse files
authored
Merge pull request #87 from stslex/dev
update libs, refactor images
2 parents 435dcf8 + 7210ac9 commit 3a35b90

12 files changed

Lines changed: 76 additions & 44 deletions

File tree

.github/workflows/android_build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
build:
1111

1212
runs-on: ubuntu-latest
13-
timeout-minutes: 15
13+
timeout-minutes: 30
1414

1515
steps:
1616

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ local.properties
1212
play_config.*
1313
keystore.*
1414
Gemfile.lock
15+
build

core/image/build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
plugins {
2+
alias(libs.plugins.convention.library)
3+
alias(libs.plugins.convention.library.compose)
4+
}
5+
6+
dependencies {
7+
implementation(project(":core:core"))
8+
9+
implementation(libs.bundles.ktor)
10+
implementation(libs.bundles.okhttp)
11+
implementation(libs.coil.ktor)
12+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package st.slex.scplashscreen.core.image
2+
3+
import android.content.Context
4+
import androidx.compose.runtime.Composable
5+
import androidx.compose.runtime.remember
6+
import androidx.compose.ui.platform.LocalContext
7+
import coil3.request.CachePolicy
8+
import coil3.request.ImageRequest
9+
10+
object AppImageRequest {
11+
12+
@Composable
13+
fun createImageRequestBuilder(url: String): ImageRequest.Builder {
14+
val context = LocalContext.current
15+
return remember {
16+
createImageRequestBuilder(context, url)
17+
.placeholderMemoryCacheKey(url)
18+
}
19+
}
20+
21+
fun createImageRequestBuilder(
22+
context: Context,
23+
url: String
24+
): ImageRequest.Builder = ImageRequest
25+
.Builder(context)
26+
.data(url)
27+
.networkCachePolicy(CachePolicy.ENABLED)
28+
.diskCachePolicy(CachePolicy.ENABLED)
29+
.memoryCachePolicy(CachePolicy.ENABLED)
30+
.diskCacheKey(url)
31+
.memoryCacheKey(url)
32+
}

core/ui/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ dependencies {
77
implementation(project(":core:core"))
88
implementation(project(":core:navigation"))
99
implementation(project(":core:network"))
10+
implementation(project(":core:image"))
1011
api(libs.androidx.compose.navigation)
1112

1213
implementation(libs.androidx.paging.runtime)

core/ui/src/main/java/st/slex/csplashscreen/core/ui/components/ImageComponent.kt

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ package st.slex.csplashscreen.core.ui.components
33
import androidx.compose.runtime.Composable
44
import androidx.compose.ui.Modifier
55
import androidx.compose.ui.layout.ContentScale
6-
import androidx.compose.ui.platform.LocalContext
7-
import coil.compose.AsyncImage
8-
import coil.request.CachePolicy
9-
import coil.request.ImageRequest
6+
import coil3.compose.AsyncImage
7+
import coil3.request.crossfade
8+
import st.slex.scplashscreen.core.image.AppImageRequest.createImageRequestBuilder
109

1110
@Composable
1211
fun ImageComponent(
@@ -16,14 +15,7 @@ fun ImageComponent(
1615
) {
1716
AsyncImage(
1817
modifier = modifier,
19-
model = ImageRequest.Builder(LocalContext.current)
20-
.data(url)
21-
.placeholderMemoryCacheKey(url)
22-
.memoryCacheKey(url)
23-
.diskCacheKey(url)
24-
.networkCachePolicy(CachePolicy.ENABLED)
25-
.diskCachePolicy(CachePolicy.ENABLED)
26-
.memoryCachePolicy(CachePolicy.ENABLED)
18+
model = createImageRequestBuilder(url)
2719
.crossfade(true)
2820
.build(),
2921
contentDescription = null,

core/ui/src/main/java/st/slex/csplashscreen/core/ui/components/base/PhotosBaseLazyList.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ fun <T : Any> PhotosBaseLazyList(
3232
vertical = Dimen.large
3333
),
3434
) {
35-
3635
items(
3736
count = items.itemCount,
3837
key = items.itemKey(key),

fastlane/report.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55

66

77

8-
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000280664">
8+
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000275576">
99

1010
</testcase>
1111

1212

13-
<testcase classname="fastlane.lanes" name="1: clean bundle" time="363.120756488">
13+
<testcase classname="fastlane.lanes" name="1: clean bundle" time="677.542868698">
1414

1515
</testcase>
1616

1717

18-
<testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="29.558597256">
18+
<testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="35.738331201">
1919

2020
</testcase>
2121

feature/photo-detail/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ dependencies {
1010
implementation(project(":core:network"))
1111
implementation(project(":core:photos"))
1212
implementation(project(":core:favourite"))
13+
implementation(project(":core:image"))
1314
}

feature/photo-detail/src/main/java/st/slex/csplashscreen/feature/photo_detail/ui/utils/WallpaperSetUseCaseImpl.kt

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,23 @@ package st.slex.csplashscreen.feature.photo_detail.ui.utils
22

33
import android.app.WallpaperManager
44
import android.content.Context
5-
import androidx.core.graphics.drawable.toBitmap
6-
import coil.ImageLoader
7-
import coil.request.CachePolicy
8-
import coil.request.ImageRequest
5+
import coil3.SingletonImageLoader
6+
import coil3.toBitmap
7+
import st.slex.scplashscreen.core.image.AppImageRequest
98

109
class WallpaperSetUseCaseImpl(
1110
private val context: Context,
1211
) : WallpaperSetUseCase {
1312

1413
override operator fun invoke(url: String) {
15-
val imageLoader = ImageLoader(context)
16-
val imageRequest = ImageRequest.Builder(context)
17-
.data(url)
18-
.diskCacheKey(url)
19-
.memoryCacheKey(url)
20-
.placeholderMemoryCacheKey(url)
21-
.diskCachePolicy(CachePolicy.READ_ONLY)
22-
.diskCachePolicy(CachePolicy.READ_ONLY)
23-
.diskCachePolicy(CachePolicy.READ_ONLY)
14+
val request = AppImageRequest
15+
.createImageRequestBuilder(context, url)
2416
.listener { _, result ->
2517
WallpaperManager
2618
.getInstance(context)
27-
.setBitmap(result.drawable.toBitmap())
19+
.setBitmap(result.image.toBitmap())
2820
}
2921
.build()
30-
imageLoader.enqueue(imageRequest)
22+
SingletonImageLoader.get(context).enqueue(request)
3123
}
3224
}

0 commit comments

Comments
 (0)