Refactor save button to use Surface and Row

This commit is contained in:
AdityasahuX07 2026-04-25 11:35:23 +05:30 committed by GitHub
parent 9affc87efd
commit 83b5a6c94c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -17,9 +17,9 @@ import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.ui.graphics.Color
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -40,6 +40,7 @@ fun DetailActionButtons(
onPlayClick: () -> Unit = {}, onPlayClick: () -> Unit = {},
onPlayLongClick: (() -> Unit)? = null, onPlayLongClick: (() -> Unit)? = null,
onSaveClick: () -> Unit = {}, onSaveClick: () -> Unit = {},
onSaveLongClick: (() -> Unit)? = null,
) { ) {
val playPainter = appIconPainter(AppIconResource.PlayerPlay) val playPainter = appIconPainter(AppIconResource.PlayerPlay)
val libraryAddPainter = appIconPainter(AppIconResource.LibraryAddPlus) val libraryAddPainter = appIconPainter(AppIconResource.LibraryAddPlus)
@ -92,35 +93,49 @@ fun DetailActionButtons(
} }
} }
OutlinedButton( Surface(
onClick = onSaveClick,
modifier = rowButtonModifier.height(50.dp), modifier = rowButtonModifier.height(50.dp),
shape = RoundedCornerShape(40.dp), shape = RoundedCornerShape(40.dp),
color = Color.Transparent,
contentColor = MaterialTheme.colorScheme.onSurface,
border = BorderStroke(1.dp, MaterialTheme.colorScheme.outline), border = BorderStroke(1.dp, MaterialTheme.colorScheme.outline),
) { ) {
if (isSaved) { Row(
Icon( modifier = Modifier
imageVector = Icons.Default.Check, .fillMaxWidth()
contentDescription = null, .combinedClickable(
modifier = Modifier.size(20.dp), onClick = onSaveClick,
tint = MaterialTheme.colorScheme.onSurface, onLongClick = onSaveLongClick,
) role = Role.Button,
} else { )
Icon( .height(50.dp),
painter = libraryAddPainter, horizontalArrangement = Arrangement.Center,
contentDescription = null, verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.size(18.dp), ) {
tint = MaterialTheme.colorScheme.onSurface, if (isSaved) {
Icon(
imageVector = Icons.Default.Check,
contentDescription = null,
modifier = Modifier.size(20.dp),
tint = MaterialTheme.colorScheme.onSurface,
)
} else {
Icon(
painter = libraryAddPainter,
contentDescription = null,
modifier = Modifier.size(18.dp),
tint = MaterialTheme.colorScheme.onSurface,
)
}
Spacer(modifier = Modifier.width(6.dp))
Text(
text = saveLabel,
style = MaterialTheme.typography.titleMedium,
color = MaterialTheme.colorScheme.onSurface,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
) )
} }
Spacer(modifier = Modifier.width(6.dp))
Text(
text = saveLabel,
style = MaterialTheme.typography.titleMedium,
color = MaterialTheme.colorScheme.onSurface,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
} }
} }
} }