diff --git a/src/main/kotlin/com/bolenpad/photophetch/ui/DensePhotoGrid.kt b/src/main/kotlin/com/bolenpad/photophetch/ui/DensePhotoGrid.kt index 100428a..6d9a15f 100644 --- a/src/main/kotlin/com/bolenpad/photophetch/ui/DensePhotoGrid.kt +++ b/src/main/kotlin/com/bolenpad/photophetch/ui/DensePhotoGrid.kt @@ -10,10 +10,12 @@ import androidx.compose.foundation.lazy.LazyListState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.CheckCircle import androidx.compose.material.icons.filled.Image +import androidx.compose.material.icons.filled.RadioButtonUnchecked import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.toComposeImageBitmap import androidx.compose.ui.layout.ContentScale @@ -255,14 +257,25 @@ private fun DenseThumb( Icon(Icons.Default.CheckCircle, contentDescription = null, tint = MaterialTheme.colorScheme.primary, modifier = Modifier.align(Alignment.TopEnd).padding(2.dp).size(16.dp)) + } else { + // Faint unchecked indicator so user knows cell is tappable + Icon(Icons.Default.RadioButtonUnchecked, contentDescription = null, + tint = Color.White.copy(alpha = 0.5f), + modifier = Modifier.align(Alignment.TopEnd).padding(2.dp).size(14.dp)) } // Bottom-left: LIVE badge or video size badge if (photo.isLivePhotoStill) { - Badge( - containerColor = MaterialTheme.colorScheme.secondary.copy(alpha = 0.85f), - modifier = Modifier.align(Alignment.BottomStart).padding(2.dp), - ) { Text("LIVE", style = MaterialTheme.typography.labelSmall) } + Box( + modifier = Modifier + .align(Alignment.BottomStart) + .padding(3.dp) + .background(Color(0xFF00C853), shape = MaterialTheme.shapes.extraSmall) + .padding(horizontal = 4.dp, vertical = 1.dp), + ) { + Text("LIVE", fontSize = 9.sp, fontWeight = FontWeight.Bold, + color = Color.White) + } } else if (photo.mediaType == MediaType.VIDEO) { val sizeLabel = if (photo.sizeBytes > 1024 * 1024) "▶ ${photo.sizeBytes / (1024 * 1024)}MB"