Skip to content

Commit 5d573fb

Browse files
committed
Coil 3
1 parent a6763c2 commit 5d573fb

File tree

23 files changed

+122
-91
lines changed

23 files changed

+122
-91
lines changed

.github/workflows/ci.yml

+17-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,23 @@
11
name: Build
2-
on: [pull_request, push]
2+
3+
on: [push, pull_request]
4+
35
jobs:
46
build:
57
runs-on: ubuntu-latest
8+
69
steps:
7-
- name: Checkout the code
8-
uses: actions/checkout@v2
9-
- name: Build the app
10+
- name: Checkout
11+
uses: actions/checkout@v4
12+
13+
- name: Validate Gradle Wrapper
14+
uses: gradle/wrapper-validation-action@v1
15+
16+
- name: Configure JDK
17+
uses: actions/setup-java@v4
18+
with:
19+
distribution: 'zulu'
20+
java-version: '17'
21+
22+
- name: Test
1023
run: ./gradlew build

.github/workflows/publish-release.yml

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Publish Release
2+
3+
on:
4+
push:
5+
tags:
6+
- '*'
7+
env:
8+
RELEASE_SIGNING_ENABLED: true
9+
10+
jobs:
11+
publish:
12+
13+
runs-on: ubuntu-latest
14+
if: github.repository == 'Commit451/coil-transformations'
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
20+
- name: Install JDK
21+
uses: actions/setup-java@v4
22+
with:
23+
distribution: 'zulu'
24+
java-version: 17
25+
26+
- name: Set version
27+
run: sed -i "s/VERSION_NAME=0.0.1/VERSION_NAME=$GITHUB_REF_NAME/" gradle.properties
28+
29+
- name: Release to Maven Central
30+
run: ./gradlew publishAndReleaseToMavenCentral --no-configuration-cache
31+
env:
32+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
33+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
34+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_PRIVATE_KEY }}
35+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}

.jitpack.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
jdk: openjdk11
1+
jdk: openjdk17

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
# Changelog
2+
## [3.0.0] - November 5, 2024
3+
- Updates to support Coil 3.0
4+
25
## [2.0.0] - March 16, 2022
36
- Updates to support Coil 2.0
47

buildSrc/src/main/kotlin/Extensions.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@file:Suppress("NOTHING_TO_INLINE", "unused")
1+
@file:Suppress("unused")
22

33
package coiltransformations
44

gradle.properties

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ android.useAndroidX=true
55

66
# Config
77
minSdk=21
8-
targetSdk=32
9-
coilVersion=2.0.0
8+
targetSdk=35
9+
coilVersion=3.0.0
1010

1111
GROUP=com.commit451.coiltransformations
1212
# Overwritten by CI
13-
VERSION_NAME=1.0.0
13+
VERSION_NAME=0.0.1
1414

1515
POM_NAME=Transformations for Coil
1616
POM_DESCRIPTION=Various transformations for Coil

sample/build.gradle.kts

+11-11
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,27 @@ android {
2626
}
2727
}
2828
compileOptions {
29-
sourceCompatibility = JavaVersion.VERSION_1_8
30-
targetCompatibility = JavaVersion.VERSION_1_8
29+
sourceCompatibility = JavaVersion.VERSION_17
30+
targetCompatibility = JavaVersion.VERSION_17
3131
}
3232
kotlinOptions {
33-
jvmTarget = "1.8"
33+
jvmTarget = JavaVersion.VERSION_17.toString()
3434
}
3535
}
3636

3737
dependencies {
3838
implementation(project(":transformations"))
3939
implementation(project(":transformations-gpu"))
4040
implementation(project(":transformations-face-detection"))
41-
implementation("io.coil-kt:coil:${project.coilVersion}")
41+
implementation("io.coil-kt.coil3:coil-compose:${project.coilVersion}")
4242

43-
implementation("androidx.appcompat:appcompat:1.4.1")
44-
implementation("androidx.constraintlayout:constraintlayout:2.1.3")
45-
implementation("androidx.core:core-ktx:1.7.0")
43+
implementation("androidx.appcompat:appcompat:1.7.0")
44+
implementation("androidx.constraintlayout:constraintlayout:2.2.0")
45+
implementation("androidx.core:core-ktx:1.15.0")
4646
implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")
47-
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.4.1")
48-
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1")
49-
implementation("androidx.recyclerview:recyclerview:1.2.1")
47+
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.8.7")
48+
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
49+
implementation("androidx.recyclerview:recyclerview:1.3.2")
5050

51-
implementation("com.google.android.material:material:1.5.0")
51+
implementation("com.google.android.material:material:1.12.0")
5252
}

sample/src/main/java/com/commit451/coiltransformations/sample/App.kt

+6-8
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,18 @@
33
package com.commit451.coiltransformations.sample
44

55
import android.app.Application
6-
import android.util.Log
7-
import coil.Coil
8-
import coil.ImageLoader
9-
import coil.memory.MemoryCache
10-
import coil.util.DebugLogger
6+
import coil3.ImageLoader
7+
import coil3.SingletonImageLoader
8+
import coil3.request.crossfade
9+
import coil3.util.DebugLogger
1110

1211
class App : Application() {
1312

1413
override fun onCreate() {
1514
super.onCreate()
16-
Coil.setImageLoader {
15+
SingletonImageLoader.setSafe {
1716
ImageLoader.Builder(this)
18-
.logger(DebugLogger(level = Log.DEBUG))
19-
.memoryCache(MemoryCache.Builder(this).maxSizePercent(0.5).build())
17+
.logger(DebugLogger())
2018
.crossfade(true)
2119
.build()
2220
}

sample/src/main/java/com/commit451/coiltransformations/sample/Image.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.commit451.coiltransformations.sample
22

33
import androidx.annotation.DrawableRes
4-
import coil.transform.Transformation
4+
import coil3.transform.Transformation
55

66
data class Image(
77
val transformation: Transformation,

sample/src/main/java/com/commit451/coiltransformations/sample/ImageListAdapter.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import android.widget.TextView
77
import androidx.recyclerview.widget.DiffUtil
88
import androidx.recyclerview.widget.ListAdapter
99
import androidx.recyclerview.widget.RecyclerView
10-
import coil.load
11-
import com.commit451.coiltransformations.facedetection.CenterOnFaceTransformation
10+
import coil3.load
11+
import coil3.request.transformations
1212
import com.commit451.coiltransformations.sample.ImageListAdapter.ViewHolder
1313

1414
class ImageListAdapter(

sample/src/main/java/com/commit451/coiltransformations/sample/MainActivity.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import androidx.core.view.isVisible
99
import androidx.lifecycle.Observer
1010
import androidx.recyclerview.widget.LinearLayoutManager
1111
import androidx.recyclerview.widget.RecyclerView
12-
import coil.load
12+
import coil3.load
13+
import coil3.request.transformations
1314

1415
class MainActivity : AppCompatActivity() {
1516

transformations-face-detection/build.gradle.kts

+5-8
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,15 @@ android {
1818
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1919
}
2020
compileOptions {
21-
sourceCompatibility = JavaVersion.VERSION_1_8
22-
targetCompatibility = JavaVersion.VERSION_1_8
21+
sourceCompatibility = JavaVersion.VERSION_17
22+
targetCompatibility = JavaVersion.VERSION_17
2323
}
2424
kotlinOptions {
25-
jvmTarget = "1.8"
26-
}
27-
libraryVariants.all {
28-
generateBuildConfigProvider?.configure { enabled = false }
25+
jvmTarget = JavaVersion.VERSION_17.toString()
2926
}
3027
}
3128

3229
dependencies {
33-
api("io.coil-kt:coil-base:${project.coilVersion}")
34-
api("com.google.mlkit:face-detection:16.1.5")
30+
api("io.coil-kt.coil3:coil-core:${project.coilVersion}")
31+
api("com.google.mlkit:face-detection:16.1.7")
3532
}

transformations-face-detection/src/main/java/com/commit451/coiltransformations/facedetection/CenterOnFaceTransformation.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import android.graphics.Bitmap
44
import android.graphics.Rect
55
import android.util.Log
66
import android.util.LruCache
7-
import coil.size.Size
8-
import coil.transform.Transformation
7+
import coil3.size.Size
8+
import coil3.transform.Transformation
99
import com.google.mlkit.vision.common.InputImage
1010
import com.google.mlkit.vision.face.FaceDetection
1111
import com.google.mlkit.vision.face.FaceDetectorOptions
@@ -29,7 +29,7 @@ import kotlin.coroutines.resumeWithException
2929
class CenterOnFaceTransformation constructor(
3030
private val cache: LruCache<String, String>? = null,
3131
val zoom: Int
32-
) : Transformation {
32+
) : Transformation() {
3333

3434
companion object {
3535
private const val TAG = "CenterOnFaceTransform"

transformations-gpu/build.gradle.kts

+4-7
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,15 @@ android {
1818
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1919
}
2020
compileOptions {
21-
sourceCompatibility = JavaVersion.VERSION_1_8
22-
targetCompatibility = JavaVersion.VERSION_1_8
21+
sourceCompatibility = JavaVersion.VERSION_17
22+
targetCompatibility = JavaVersion.VERSION_17
2323
}
2424
kotlinOptions {
25-
jvmTarget = "1.8"
26-
}
27-
libraryVariants.all {
28-
generateBuildConfigProvider?.configure { enabled = false }
25+
jvmTarget = JavaVersion.VERSION_17.toString()
2926
}
3027
}
3128

3229
dependencies {
33-
api("io.coil-kt:coil-base:${project.coilVersion}")
30+
api("io.coil-kt.coil3:coil-core:${project.coilVersion}")
3431
api("jp.co.cyberagent.android:gpuimage:2.1.0")
3532
}

transformations-gpu/src/main/java/com/commit451/coiltransformations/gpu/GPUFilterTransformation.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package com.commit451.coiltransformations.gpu
22

33
import android.content.Context
44
import android.graphics.Bitmap
5-
import coil.size.Size
6-
import coil.transform.Transformation
5+
import coil3.size.Size
6+
import coil3.transform.Transformation
77
import jp.co.cyberagent.android.gpuimage.GPUImage
88
import jp.co.cyberagent.android.gpuimage.filter.GPUImageFilter
99

@@ -14,7 +14,7 @@ import jp.co.cyberagent.android.gpuimage.filter.GPUImageFilter
1414
*/
1515
abstract class GPUFilterTransformation(
1616
private val context: Context
17-
) : Transformation {
17+
) : Transformation() {
1818

1919
/**
2020
* Create the [GPUImageFilter] to apply to this [Transformation]

transformations/build.gradle.kts

+5-8
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,15 @@ android {
1818
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1919
}
2020
compileOptions {
21-
sourceCompatibility = JavaVersion.VERSION_1_8
22-
targetCompatibility = JavaVersion.VERSION_1_8
21+
sourceCompatibility = JavaVersion.VERSION_17
22+
targetCompatibility = JavaVersion.VERSION_17
2323
}
2424
kotlinOptions {
25-
jvmTarget = "1.8"
26-
}
27-
libraryVariants.all {
28-
generateBuildConfigProvider?.configure { enabled = false }
25+
jvmTarget = JavaVersion.VERSION_17.toString()
2926
}
3027
}
3128

3229
dependencies {
33-
api("io.coil-kt:coil-base:${project.coilVersion}")
34-
api("androidx.core:core-ktx:1.7.0")
30+
api("io.coil-kt.coil3:coil-core:${project.coilVersion}")
31+
api("androidx.core:core-ktx:1.15.0")
3532
}

transformations/src/main/java/com/commit451/coiltransformations/BlurTransformation.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import android.renderscript.ScriptIntrinsicBlur
1212
import androidx.annotation.RequiresApi
1313
import androidx.core.graphics.applyCanvas
1414
import androidx.core.graphics.createBitmap
15-
import coil.size.Size
16-
import coil.transform.Transformation
15+
import coil3.size.Size
16+
import coil3.transform.Transformation
1717
import com.commit451.coiltransformations.Util.safeConfig
1818

1919
/**
@@ -29,7 +29,7 @@ class BlurTransformation @JvmOverloads constructor(
2929
private val context: Context,
3030
private val radius: Float = DEFAULT_RADIUS,
3131
private val sampling: Float = DEFAULT_SAMPLING
32-
) : Transformation {
32+
) : Transformation() {
3333

3434
init {
3535
require(radius in 0.0..25.0) { "radius must be in [0, 25]." }

transformations/src/main/java/com/commit451/coiltransformations/ColorFilterTransformation.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package com.commit451.coiltransformations
33
import android.graphics.*
44
import androidx.annotation.ColorInt
55
import androidx.core.graphics.createBitmap
6-
import coil.size.Size
7-
import coil.transform.Transformation
6+
import coil3.size.Size
7+
import coil3.transform.Transformation
88
import com.commit451.coiltransformations.Util.safeConfig
99

1010
/**
@@ -13,7 +13,7 @@ import com.commit451.coiltransformations.Util.safeConfig
1313
*/
1414
class ColorFilterTransformation(
1515
@ColorInt private val color: Int
16-
) : Transformation {
16+
) : Transformation() {
1717

1818
override val cacheKey: String = "${ColorFilterTransformation::class.java.name}-$color"
1919

transformations/src/main/java/com/commit451/coiltransformations/CropTransformation.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import android.graphics.Bitmap
44
import android.graphics.Canvas
55
import android.graphics.RectF
66
import androidx.core.graphics.createBitmap
7-
import coil.size.Size
8-
import coil.size.pxOrElse
9-
import coil.transform.Transformation
7+
import coil3.size.Size
8+
import coil3.size.pxOrElse
9+
import coil3.transform.Transformation
1010
import com.commit451.coiltransformations.Util.safeConfig
1111
import kotlin.math.max
1212

@@ -16,7 +16,7 @@ import kotlin.math.max
1616
*/
1717
class CropTransformation(
1818
private val cropType: CropType = CropType.CENTER
19-
) : Transformation {
19+
) : Transformation() {
2020

2121
enum class CropType {
2222
TOP,

transformations/src/main/java/com/commit451/coiltransformations/GrayscaleTransformation.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import android.graphics.ColorMatrixColorFilter
77
import android.graphics.Paint
88
import androidx.core.graphics.applyCanvas
99
import androidx.core.graphics.createBitmap
10-
import coil.size.Size
11-
import coil.transform.Transformation
10+
import coil3.size.Size
11+
import coil3.transform.Transformation
1212
import com.commit451.coiltransformations.Util.safeConfig
1313

1414
/**
1515
* A [Transformation] that converts an image to shades of gray.
1616
*/
17-
class GrayscaleTransformation : Transformation {
17+
class GrayscaleTransformation : Transformation() {
1818

1919
override val cacheKey: String = GrayscaleTransformation::class.java.name
2020

0 commit comments

Comments
 (0)