From 1f8eeb6f2bce67ecec581607e69cdf381d637a93 Mon Sep 17 00:00:00 2001 From: Owen LeJeune Date: Mon, 14 Mar 2022 21:31:28 -0400 Subject: [PATCH] update coil api --- .../tvtime/ui/components/Posters.kt | 93 +++++++++---------- .../tvtime/ui/components/Widgets.kt | 30 ++---- .../ui/screens/tabs/bottom/AccountTab.kt | 11 +-- 3 files changed, 57 insertions(+), 77 deletions(-) diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/components/Posters.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/components/Posters.kt index 6f9eae0..4d6d808 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/ui/components/Posters.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/ui/components/Posters.kt @@ -13,16 +13,16 @@ import androidx.compose.material.Card import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp -import androidx.core.content.ContextCompat -import coil.compose.rememberImagePainter -import coil.transform.RoundedCornersTransformation +import coil.compose.AsyncImage import com.google.accompanist.pager.ExperimentalPagerApi import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.rememberPagerState @@ -157,25 +157,30 @@ fun PosterItem( .size(width = width, height = height), shape = RoundedCornerShape(5.dp) ) { - Image( - painter = if (url != null) { - rememberImagePainter( - data = url ?: noDataImage, - builder = { - transformations(RoundedCornersTransformation(5f.dpToPx(context))) - placeholder(placeholder) - } - ) - } else { - rememberImagePainter(ContextCompat.getDrawable(context, R.drawable.placeholder)) - }, - contentDescription = contentDescription, - modifier = Modifier - .size(width = width, height = height) - .clickable( - onClick = onClick - ) - ) + if (url != null) { + AsyncImage( + modifier = Modifier + .size(width = width, height = height) + .clip(RoundedCornerShape(5f.dpToPx(context))) + .clickable( + onClick = onClick + ), + model = url, + placeholder = painterResource(id = placeholder), + contentDescription = contentDescription + ) + } else { + Image( + modifier = Modifier + .size(width = width, height = height) + .clip(RoundedCornerShape(5f.dpToPx(context))) + .clickable( + onClick = onClick + ), + painter = painterResource(id = noDataImage), + contentDescription = contentDescription + ) + } } } @@ -205,36 +210,28 @@ fun BackdropImage( val pagerState = rememberPagerState() HorizontalPager(count = collection.backdrops.size, state = pagerState) { page -> val backdrop = collection.backdrops[page] - Image( - painter = rememberImagePainter( - data = TmdbUtils.getFullBackdropPath(backdrop), - builder = { - placeholder(R.drawable.placeholder) - } - ), + AsyncImage( + model = TmdbUtils.getFullBackdropPath(backdrop), + placeholder = painterResource(id = R.drawable.placeholder), contentDescription = "", - modifier = Modifier.onGloballyPositioned { - sizeImage = it.size - } + modifier = Modifier.onGloballyPositioned { sizeImage = it.size } ) } } else { - Image( - painter = if (imageUrl != null) { - rememberImagePainter( - data = imageUrl, - builder = { - placeholder(R.drawable.placeholder) - } - ) - } else { - rememberImagePainter(ContextCompat.getDrawable(context, R.drawable.placeholder)) - }, - contentDescription = contentDescription, - modifier = Modifier.onGloballyPositioned { - sizeImage = it.size - } - ) + if (imageUrl != null) { + AsyncImage( + model = imageUrl, + placeholder = painterResource(id = R.drawable.placeholder), + contentDescription = contentDescription, + modifier = Modifier.onGloballyPositioned { sizeImage = it.size } + ) + } else { + Image( + painter = painterResource(id = R.drawable.placeholder), + contentDescription = contentDescription, + modifier = Modifier.onGloballyPositioned { sizeImage = it.size } + ) + } } Box( modifier = Modifier diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/components/Widgets.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/components/Widgets.kt index 29a4beb..e19e3e7 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/ui/components/Widgets.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/ui/components/Widgets.kt @@ -62,8 +62,7 @@ import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.core.text.HtmlCompat -import coil.compose.rememberImagePainter -import coil.transform.CircleCropTransformation +import coil.compose.AsyncImage import com.google.accompanist.flowlayout.FlowRow import com.owenlejeune.tvtime.R import com.owenlejeune.tvtime.api.tmdb.api.v3.model.AuthorDetails @@ -545,20 +544,14 @@ fun FullScreenThumbnailVideoPlayer( val showFullscreenView = remember { mutableStateOf(false) } - Image( + AsyncImage( modifier = modifier .clickable( - onClick = { - showFullscreenView.value = true - } + onClick = { showFullscreenView.value = true } ), - painter = rememberImagePainter( - data = "https://img.youtube.com/vi/${key}/hqdefault.jpg", - builder = { - placeholder(R.drawable.placeholder) - } - ), - contentDescription = "" + model = "https://img.youtube.com/vi/${key}/hqdefault.jpg", + contentDescription = "", + placeholder = painterResource(id = R.drawable.placeholder) ) if (showFullscreenView.value) { @@ -694,14 +687,9 @@ fun AvatarImage( modifier: Modifier = Modifier ) { if (author.avatarPath != null) { - Image( - modifier = modifier.size(size), - painter = rememberImagePainter( - data = TmdbUtils.getFullAvatarPath(author), - builder = { - transformations(CircleCropTransformation()) - } - ), + AsyncImage( + modifier = modifier.size(size).clip(CircleShape), + model = TmdbUtils.getFullAvatarPath(author), contentDescription = "" ) } else { diff --git a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt index f785ef1..5c3183d 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/ui/screens/tabs/bottom/AccountTab.kt @@ -1,6 +1,5 @@ package com.owenlejeune.tvtime.ui.screens.tabs.bottom -import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn @@ -23,7 +22,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavHostController import coil.compose.AsyncImage -import coil.compose.rememberImagePainter import com.google.accompanist.pager.ExperimentalPagerApi import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.PagerState @@ -208,13 +206,10 @@ private fun MediaItemRow( } ) ) { - Image( + AsyncImage( modifier = Modifier - .width(60.dp) - .height(80.dp), - painter = rememberImagePainter( - data = posterPath - ), + .size(width = 60.dp, height = 80.dp), + model = posterPath, contentDescription = "" )