Skip to content

Commit

Permalink
Merge pull request #209 from qdsfdhvh/chore/prepare_for_release
Browse files Browse the repository at this point in the history
prepare for release
  • Loading branch information
qdsfdhvh authored Jul 8, 2023
2 parents 01484da + 11c753e commit a8433fa
Show file tree
Hide file tree
Showing 10 changed files with 92 additions and 83 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp
import com.seiko.imageloader.demo.MR
import com.seiko.imageloader.rememberImageActionPainter
import com.seiko.imageloader.rememberImagePainter

@Composable
fun OtherImagesScene(
Expand Down Expand Up @@ -78,7 +78,7 @@ fun OtherImagesScene(
@Composable
private fun TestSvgImage(url: String) {
Image(
painter = rememberImageActionPainter(url),
painter = rememberImagePainter(url),
contentDescription = null,
modifier = Modifier
.size(50.dp)
Expand Down
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import com.vanniktech.maven.publish.SonatypeHost
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

@Suppress("DSL_SCOPE_VIOLATION")
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.graphics.asAndroidColorFilter
import androidx.compose.ui.graphics.drawscope.DrawScope
import androidx.compose.ui.graphics.drawscope.drawIntoCanvas
Expand All @@ -32,7 +31,7 @@ actual class Image(
@Suppress("NOTHING_TO_INLINE")
inline fun Drawable.toImage() = Image(this)

actual fun Image.toPainter(filterQuality: FilterQuality): Painter {
actual fun Image.toPainter(): Painter {
return when (drawable) {
is ColorDrawable -> ColorPainter(Color(drawable.color))
else -> DrawablePainter(drawable.mutate())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.seiko.imageloader

import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.graphics.drawscope.DrawScope.Companion.DefaultFilterQuality
import androidx.compose.ui.graphics.painter.Painter

expect class Image

expect fun Image.toPainter(filterQuality: FilterQuality = DefaultFilterQuality): Painter
expect fun Image.toPainter(): Painter
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,6 @@ fun rememberImageAction(
}.collectAsState(ImageEvent.Start)
}

@Composable
fun rememberImageActionPainter(
request: ImageRequest,
imageLoader: ImageLoader = LocalImageLoader.current,
filterQuality: FilterQuality = DefaultFilterQuality,
): Painter {
val action by rememberImageAction(request, imageLoader)
return rememberImageActionPainter(
action = action,
filterQuality = filterQuality,
placeholderPainter = request.placeholderPainter,
errorPainter = request.errorPainter,
)
}

@Composable
fun rememberImageActionPainter(
action: ImageAction,
Expand Down Expand Up @@ -73,8 +58,8 @@ fun rememberImageResultPainter(
is ImageResult.Bitmap -> remember(filterQuality) {
result.bitmap.toPainter(filterQuality)
}
is ImageResult.Image -> remember(filterQuality) {
result.image.toPainter(filterQuality)
is ImageResult.Image -> remember {
result.image.toPainter()
}
is ImageResult.Error,
is ImageResult.Source,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,77 +10,79 @@ import androidx.compose.ui.layout.ContentScale
import com.seiko.imageloader.model.ImageRequest
import com.seiko.imageloader.option.Scale

@Deprecated("rememberImagePainter is deprecated", replaceWith = ReplaceWith("rememberImageActionPainter"))
@Deprecated(
message = "move contentScale into ImageRequest",
replaceWith = ReplaceWith("ImageRequest { scale(contentScale.toScale()) }"),
)
@Composable
fun rememberImagePainter(
url: String,
contentScale: ContentScale,
imageLoader: ImageLoader = LocalImageLoader.current,
contentScale: ContentScale = ContentScale.Fit,
filterQuality: FilterQuality = DefaultFilterQuality,
placeholderPainter: (@Composable () -> Painter)? = null,
errorPainter: (@Composable () -> Painter)? = null,
): Painter {
val action by rememberImageAction(
return rememberImagePainter(
request = remember(url, contentScale) {
ImageRequest {
data(url)
scale(contentScale.toScale())
}
},
imageLoader = imageLoader,
)
return rememberImageActionPainter(
action = action,
filterQuality = filterQuality,
placeholderPainter = placeholderPainter,
errorPainter = errorPainter,
)
}

@Deprecated("rememberImagePainter is deprecated", replaceWith = ReplaceWith("rememberImageActionPainter"))
@Deprecated(
message = "move contentScale into ImageRequest",
replaceWith = ReplaceWith("ImageRequest { scale(contentScale.toScale()) }"),
)
@Composable
fun rememberImagePainter(
resId: Int,
contentScale: ContentScale,
imageLoader: ImageLoader = LocalImageLoader.current,
contentScale: ContentScale = ContentScale.Fit,
filterQuality: FilterQuality = DefaultFilterQuality,
placeholderPainter: (@Composable () -> Painter)? = null,
errorPainter: (@Composable () -> Painter)? = null,
): Painter {
val action by rememberImageAction(
return rememberImagePainter(
request = remember(resId, contentScale) {
ImageRequest {
data(resId)
scale(contentScale.toScale())
}
},
imageLoader = imageLoader,
)
return rememberImageActionPainter(
action = action,
filterQuality = filterQuality,
placeholderPainter = placeholderPainter,
errorPainter = errorPainter,
)
}

@Deprecated("rememberImagePainter is deprecated", replaceWith = ReplaceWith("rememberImageActionPainter"))
@Deprecated(
message = "move contentScale into ImageRequest",
replaceWith = ReplaceWith("ImageRequest { scale(contentScale.toScale()) }"),
)
@Composable
fun rememberImagePainter(
request: ImageRequest,
contentScale: ContentScale,
imageLoader: ImageLoader = LocalImageLoader.current,
contentScale: ContentScale = ContentScale.Fit,
filterQuality: FilterQuality = DefaultFilterQuality,
): Painter {
val newRequest = remember(request) {
request.newBuilder {
scale(contentScale.toScale())
}
}
return rememberImageActionPainter(newRequest, imageLoader, filterQuality)
return rememberImagePainter(
request = remember(request) {
request.newBuilder {
scale(contentScale.toScale())
}
},
imageLoader = imageLoader,
filterQuality = filterQuality,
)
}

@Deprecated("rememberAsyncImagePainter is deprecated", replaceWith = ReplaceWith("rememberImageActionPainter"))
@Deprecated("Use rememberImageAction&rememberImageActionPainter or rememberImagePainter")
@Composable
fun rememberAsyncImagePainter(
url: String,
Expand All @@ -94,14 +96,11 @@ fun rememberAsyncImagePainter(
scale(contentScale.toScale())
}
}
return rememberImageActionPainter(
request = request,
imageLoader = imageLoader,
filterQuality = filterQuality,
)
val action by rememberImageAction(request, imageLoader)
return rememberImageActionPainter(action, filterQuality)
}

@Deprecated("rememberAsyncImagePainter is deprecated", replaceWith = ReplaceWith("rememberImageActionPainter"))
@Deprecated("Use rememberImageAction&rememberImageActionPainter or rememberImagePainter")
@Composable
fun rememberAsyncImagePainter(
resId: Int,
Expand All @@ -115,14 +114,11 @@ fun rememberAsyncImagePainter(
scale(contentScale.toScale())
}
}
return rememberImageActionPainter(
request = request,
imageLoader = imageLoader,
filterQuality = filterQuality,
)
val action by rememberImageAction(request, imageLoader)
return rememberImageActionPainter(action, filterQuality)
}

@Deprecated("rememberAsyncImagePainter is deprecated", replaceWith = ReplaceWith("rememberImageActionPainter"))
@Deprecated("Use rememberImageAction&rememberImageActionPainter or rememberImagePainter")
@Composable
fun rememberAsyncImagePainter(
request: ImageRequest,
Expand All @@ -135,11 +131,8 @@ fun rememberAsyncImagePainter(
scale(contentScale.toScale())
}
}
return rememberImageActionPainter(
request = newRequest,
imageLoader = imageLoader,
filterQuality = filterQuality,
)
val action by rememberImageAction(newRequest, imageLoader)
return rememberImageActionPainter(action, filterQuality)
}

fun ContentScale.toScale() = when (this) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.seiko.imageloader

import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.graphics.drawscope.DrawScope
Expand All @@ -28,21 +29,54 @@ fun rememberImageAction(
}

@Composable
fun rememberImageActionPainter(
fun rememberImagePainter(
url: String,
imageLoader: ImageLoader = LocalImageLoader.current,
filterQuality: FilterQuality = DrawScope.DefaultFilterQuality,
placeholderPainter: (@Composable () -> Painter)? = null,
errorPainter: (@Composable () -> Painter)? = null,
): Painter {
val request = remember { ImageRequest(url) }
return rememberImageActionPainter(request, imageLoader, filterQuality)
return rememberImagePainter(
request = request,
imageLoader = imageLoader,
filterQuality = filterQuality,
placeholderPainter = placeholderPainter,
errorPainter = errorPainter,
)
}

@Composable
fun rememberImageActionPainter(
fun rememberImagePainter(
resId: Int,
imageLoader: ImageLoader = LocalImageLoader.current,
filterQuality: FilterQuality = DrawScope.DefaultFilterQuality,
placeholderPainter: (@Composable () -> Painter)? = null,
errorPainter: (@Composable () -> Painter)? = null,
): Painter {
val request = remember { ImageRequest(resId) }
return rememberImageActionPainter(request, imageLoader, filterQuality)
return rememberImagePainter(
request = request,
imageLoader = imageLoader,
filterQuality = filterQuality,
placeholderPainter = placeholderPainter,
errorPainter = errorPainter,
)
}

@Composable
fun rememberImagePainter(
request: ImageRequest,
imageLoader: ImageLoader = LocalImageLoader.current,
filterQuality: FilterQuality = DrawScope.DefaultFilterQuality,
placeholderPainter: (@Composable () -> Painter)? = request.placeholderPainter,
errorPainter: (@Composable () -> Painter)? = request.errorPainter,
): Painter {
val action by rememberImageAction(request, imageLoader)
return rememberImageActionPainter(
action = action,
filterQuality = filterQuality,
placeholderPainter = placeholderPainter,
errorPainter = errorPainter,
)
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.seiko.imageloader.cache.memory

import com.seiko.imageloader.Bitmap
import com.seiko.imageloader.size

class MemoryCacheBuilder<K : Any, V : Any> internal constructor(
private val valueHashProvider: (V) -> Int,
Expand All @@ -26,11 +25,12 @@ class MemoryCacheBuilder<K : Any, V : Any> internal constructor(
}

internal fun build(): MemoryCache<K, V> {
val weakMemoryCache: WeakMemoryCache<K, V> = if (weakReferencesEnabled) {
RealWeakMemoryCache(valueHashProvider)
} else {
EmptyWeakMemoryCache()
}
val weakMemoryCache: WeakMemoryCache<K, V> =
if (weakReferencesEnabled) {
RealWeakMemoryCache(valueHashProvider)
} else {
EmptyWeakMemoryCache()
}
val strongMemoryCache: StrongMemoryCache<K, V> =
if (strongReferencesEnabled && maxSizeBytes > 0) {
RealStrongMemoryCache(maxSizeBytes, weakMemoryCache, valueSizeProvider)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@ class MappedInterceptor : Interceptor {
val logger = chain.logger

val mappedData = chain.components.map(request.data, options)
logger.d(
tag = "MappedInterceptor",
data = request.data,
) { "map -> $mappedData" }
if (mappedData !== request.data) {
logger.d(
tag = "MappedInterceptor",
data = request.data,
) { "map -> $mappedData" }
}

val newRequest = request.newBuilder { data(mappedData) }
return chain.proceed(newRequest)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.seiko.imageloader

import androidx.compose.ui.graphics.FilterQuality
import androidx.compose.ui.graphics.painter.BitmapPainter
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.graphics.toComposeImageBitmap

actual typealias Image = org.jetbrains.skia.Image

actual fun Image.toPainter(filterQuality: FilterQuality): Painter {
actual fun Image.toPainter(): Painter {
return BitmapPainter(toComposeImageBitmap())
}

0 comments on commit a8433fa

Please sign in to comment.