|
@@ -24,12 +24,15 @@ import androidx.compose.ui.unit.dp
|
|
|
import androidx.tv.material3.CardDefaults
|
|
import androidx.tv.material3.CardDefaults
|
|
|
import androidx.tv.material3.CardScale
|
|
import androidx.tv.material3.CardScale
|
|
|
import androidx.tv.material3.ExperimentalTvMaterial3Api
|
|
import androidx.tv.material3.ExperimentalTvMaterial3Api
|
|
|
|
|
+import coil.ImageLoader
|
|
|
import org.mjdev.tvlib.annotations.Previews
|
|
import org.mjdev.tvlib.annotations.Previews
|
|
|
import org.mjdev.tvlib.extensions.ComposeExt
|
|
import org.mjdev.tvlib.extensions.ComposeExt
|
|
|
import org.mjdev.tvlib.extensions.ComposeExt.computeCardWidth
|
|
import org.mjdev.tvlib.extensions.ComposeExt.computeCardWidth
|
|
|
|
|
+import org.mjdev.tvlib.extensions.ComposeExt.isEditMode
|
|
|
import org.mjdev.tvlib.extensions.ComposeExt.isFocused
|
|
import org.mjdev.tvlib.extensions.ComposeExt.isFocused
|
|
|
import org.mjdev.tvlib.extensions.ComposeExt.rememberFocusRequester
|
|
import org.mjdev.tvlib.extensions.ComposeExt.rememberFocusRequester
|
|
|
import org.mjdev.tvlib.extensions.ComposeExt.rememberFocusState
|
|
import org.mjdev.tvlib.extensions.ComposeExt.rememberFocusState
|
|
|
|
|
+import org.mjdev.tvlib.extensions.ComposeExt.rememberImageLoader
|
|
|
import org.mjdev.tvlib.extensions.ModifierExt.recomposeHighlighter
|
|
import org.mjdev.tvlib.extensions.ModifierExt.recomposeHighlighter
|
|
|
import org.mjdev.tvlib.interfaces.ItemWithDescription
|
|
import org.mjdev.tvlib.interfaces.ItemWithDescription
|
|
|
import org.mjdev.tvlib.interfaces.ItemWithImage
|
|
import org.mjdev.tvlib.interfaces.ItemWithImage
|
|
@@ -44,7 +47,7 @@ fun PhotoCard(
|
|
|
modifier: Modifier = Modifier,
|
|
modifier: Modifier = Modifier,
|
|
|
contentScale: ContentScale = ContentScale.Crop,
|
|
contentScale: ContentScale = ContentScale.Crop,
|
|
|
textColor: Color = Color.White,
|
|
textColor: Color = Color.White,
|
|
|
- focused: Boolean = ComposeExt.isEditMode(),
|
|
|
|
|
|
|
+ focused: Boolean = isEditMode(),
|
|
|
focusState: MutableState<FocusState?> = rememberFocusState(
|
|
focusState: MutableState<FocusState?> = rememberFocusState(
|
|
|
item,
|
|
item,
|
|
|
FocusHelper(focused)
|
|
FocusHelper(focused)
|
|
@@ -54,6 +57,7 @@ fun PhotoCard(
|
|
|
contrast: Float = 5f,
|
|
contrast: Float = 5f,
|
|
|
@FloatRange(from = -255.0, to = 255.0)
|
|
@FloatRange(from = -255.0, to = 255.0)
|
|
|
brightness: Float = -255f,
|
|
brightness: Float = -255f,
|
|
|
|
|
+ imageLoader: ImageLoader = rememberImageLoader(),
|
|
|
imageRenderer: @Composable () -> Unit = {
|
|
imageRenderer: @Composable () -> Unit = {
|
|
|
PhotoImage(
|
|
PhotoImage(
|
|
|
modifier = Modifier.fillMaxSize(),
|
|
modifier = Modifier.fillMaxSize(),
|
|
@@ -61,6 +65,7 @@ fun PhotoCard(
|
|
|
contentScale = contentScale,
|
|
contentScale = contentScale,
|
|
|
contrast = contrast,
|
|
contrast = contrast,
|
|
|
brightness = brightness,
|
|
brightness = brightness,
|
|
|
|
|
+ imageLoader = imageLoader,
|
|
|
borderColor = if (focusState.isFocused) Color.Green else Color.Black,
|
|
borderColor = if (focusState.isFocused) Color.Green else Color.Black,
|
|
|
contentDescription = (item as? ItemWithDescription<*>)?.description?.toString(),
|
|
contentDescription = (item as? ItemWithDescription<*>)?.description?.toString(),
|
|
|
)
|
|
)
|
|
@@ -76,6 +81,7 @@ fun PhotoCard(
|
|
|
) {
|
|
) {
|
|
|
ItemCard(
|
|
ItemCard(
|
|
|
item = item,
|
|
item = item,
|
|
|
|
|
+ imageLoader = imageLoader,
|
|
|
modifier = modifier.recomposeHighlighter(),
|
|
modifier = modifier.recomposeHighlighter(),
|
|
|
contentScale = contentScale,
|
|
contentScale = contentScale,
|
|
|
textColor = textColor,
|
|
textColor = textColor,
|