jean
05/30/2022, 6:10 PMLazyColumn
with coil
items(photos) { photo ->
Card(
modifier = Modifier.fillMaxWidth()
) {
Column {
Image(
painter = rememberAsyncImagePainter(model = photo.url),
contentDescription = "location image",
contentScale = ContentScale.Crop,
modifier = Modifier.fillMaxWidth()
.height(160.dp)
)
Text(
text = photo.title,
style = MaterialTheme.typography.h6,
modifier = Modifier.padding(8.dp)
)
Text(
text = "lat: ${photo.lat} / lon: ${photo.lon}",
modifier = Modifier.padding(start = 8.dp, bottom = 16.dp)
)
}
}
}
This is quite unstable, some picture loads and some doesn’t. Any idea what I’m doing wrong here?FunkyMuse
05/30/2022, 7:01 PMjean
05/30/2022, 7:05 PMLeland Richardson [G]
05/30/2022, 7:44 PMjean
05/30/2022, 8:00 PMLeland Richardson [G]
05/30/2022, 8:01 PMjean
05/30/2022, 8:12 PMLeland Richardson [G]
05/30/2022, 8:13 PMRonald Toshkollari
05/30/2022, 8:25 PMFunkyMuse
05/30/2022, 9:57 PMjean
05/30/2022, 10:01 PMStackLog:
[android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:3925)]
[android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:3967)]
[android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4349)]
[android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4319)]
[coil.network.RealNetworkObserver.<init>(NetworkObserver.kt:88)]
[coil.network.NetworkObserverKt.NetworkObserver(NetworkObserver.kt:33)]
[coil.util.SystemCallbacks.<init>(SystemCallbacks.kt:31)]
[coil.RealImageLoader.<init>(RealImageLoader.kt:79)]
[coil.ImageLoader$Builder.build(ImageLoader.kt:517)]
[coil.ImageLoaders.create(ImageLoaders.kt:16)]
[coil.Coil.newImageLoader(Coil.kt:64)]
[coil.Coil.imageLoader(Coil.kt:29)]
[coil.compose.ImageLoaderProvidableCompositionLocal.getCurrent(LocalImageLoader.kt:57)]
[coil.compose.SingletonAsyncImagePainterKt.rememberAsyncImagePainter-19ie5dc(SingletonAsyncImagePainter.kt:100)]
[com.jeantuffier.challenge.ui.screen.record.RecordScreenKt$ListOfPictures$1$2$1.invoke(RecordScreen.kt:125)]
[com.jeantuffier.challenge.ui.screen.record.RecordScreenKt$ListOfPictures$1$2$1.invoke(RecordScreen.kt:122)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)]
[androidx.compose.material.SurfaceKt$Surface$6.invoke(Surface.kt:268)]
[androidx.compose.material.SurfaceKt$Surface$6.invoke(Surface.kt:255)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)]
[androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)]
[androidx.compose.material.SurfaceKt.Surface-F-jzlyU(Surface.kt:252)]
[androidx.compose.material.SurfaceKt.Surface-F-jzlyU(Surface.kt:110)]
[androidx.compose.material.CardKt.Card-F-jzlyU(Card.kt:66)]
[com.jeantuffier.challenge.ui.screen.record.RecordScreenKt$ListOfPictures$1$invoke$$inlined$items$default$4.invoke(LazyDsl.kt:419)]
[com.jeantuffier.challenge.ui.screen.record.RecordScreenKt$ListOfPictures$1$invoke$$inlined$items$default$4.invoke(LazyDsl.kt:143)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)]
[androidx.compose.foundation.lazy.LazyListItemsSnapshot.Item(LazyListItemProviderImpl.kt:99)]
[androidx.compose.foundation.lazy.LazyListItemProviderImpl.Item(LazyListItemProviderImpl.kt:126)]
[androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1.invoke(LazyLayoutItemContentFactory.kt:119)]
[androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1$1.invoke(LazyLayoutItemContentFactory.kt:118)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)]
[androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)]
[androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)]
[androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1.invoke(LazyLayoutItemContentFactory.kt:118)]
[androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$createContentLambda$1.invoke(LazyLayoutItemContentFactory.kt:110)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)]
[androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)]
[androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:142)]
[androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2351)]
[androidx.compose.runtime.ComposerI
I will try with com.github.skydoves:landscapist-glide
and see if there’s any difference. @FunkyMuse I did and the pictures load just fine in my browser (firefox)jean
05/30/2022, 10:31 PMhttps://live.staticflickr.com/65535/52109739512_df27226ce9.jpg▾
https://live.staticflickr.com/65535/52109792312_2b2e795fb3.jpg▾
GlideImage
seems to work without any issue.
GlideImage(
imageModel = photo.url,
contentDescription = "location image",
contentScale = ContentScale.Crop,
modifier = Modifier
.fillMaxWidth()
.height(160.dp)
)
Leland Richardson [G]
05/30/2022, 10:37 PMLeland Richardson [G]
05/30/2022, 10:38 PMColin White
05/30/2022, 10:54 PMColin White
05/30/2022, 10:55 PMjean
05/31/2022, 8:04 AMGlideImage
I guess it is a coil
issue then. I’ll fill up a reportjean
05/31/2022, 8:34 AMlogger
function when configuring the image loader
ImageRequest.Builder(LocalContext.current)
.data(photo.url)
.logger(DebugLogger()) // that doesn't exist
.build()
Where is it supposed to be set?Colin White
05/31/2022, 6:31 PMImageRequest
. The ImageLoader
can be configured like this: https://coil-kt.github.io/coil/getting_started/#image-loadersColin White
05/31/2022, 8:35 PMjean
06/01/2022, 6:21 AMThat’s anRight, I guess I need a bit more sleep heheImageRequest