From 56c49914670aa88143009e795a0a3e9ce82788ae Mon Sep 17 00:00:00 2001 From: Barnabas Balogh Date: Fri, 1 May 2026 11:36:03 +0200 Subject: [PATCH] refactor: update MediaActionButton styles for improved consistency --- .../episode/components/EpisodeComponents.kt | 6 ++--- .../movie/components/MovieComponents.kt | 5 ++--- .../purefin/ui/screen/series/SeriesScreen.kt | 3 +-- .../series/components/SeriesComponents.kt | 8 +++---- .../ui/common/button/CircularIconButton.kt | 22 +++++++++---------- .../ui/common/button/MediaActionButton.kt | 4 ++-- 6 files changed, 22 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt index 5a06efa8..591d08de 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/episode/components/EpisodeComponents.kt @@ -142,15 +142,15 @@ internal fun EpisodeDetails( ) VerticalDivider( color = MaterialTheme.colorScheme.secondary, - thickness = 4.dp, + thickness = 2.dp, modifier = Modifier .height(48.dp) .padding(horizontal = 16.dp, vertical = 8.dp) ) Row() { MediaActionButton( - backgroundColor = MaterialTheme.colorScheme.secondary, - iconColor = MaterialTheme.colorScheme.onSecondary, + backgroundColor = MaterialTheme.colorScheme.surface, + iconColor = MaterialTheme.colorScheme.onSurface, icon = when (downloadState) { is DownloadState.NotDownloaded -> Icons.Outlined.Download is DownloadState.Downloading -> Icons.Outlined.Close diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt index 1deb0f96..429310e1 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/movie/components/MovieComponents.kt @@ -45,7 +45,6 @@ internal fun MovieTopBar( onBack: () -> Unit, modifier: Modifier = Modifier ) { - val scheme = MaterialTheme.colorScheme Row( modifier = modifier .fillMaxWidth() @@ -107,8 +106,8 @@ internal fun MovieDetails( ) Row() { MediaActionButton( - backgroundColor = MaterialTheme.colorScheme.secondary, - iconColor = MaterialTheme.colorScheme.onSecondary, + backgroundColor = MaterialTheme.colorScheme.surface, + iconColor = MaterialTheme.colorScheme.onSurface, icon = when (downloadState) { is DownloadState.NotDownloaded -> Icons.Outlined.Download is DownloadState.Downloading -> Icons.Outlined.Close diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt index 4009ff02..5fdf3316 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/series/SeriesScreen.kt @@ -103,7 +103,6 @@ private fun SeriesScreenInternal( modifier: Modifier = Modifier, ) { val scheme = MaterialTheme.colorScheme - val textMutedStrong = scheme.onSurfaceVariant.copy(alpha = 0.7f) fun getDefaultSeason() : Season { for (season in series.seasons) { @@ -162,7 +161,7 @@ private fun SeriesScreenInternal( Spacer(modifier = Modifier.height(24.dp)) MediaSynopsis( synopsis = series.synopsis, - bodyColor = textMutedStrong, + bodyColor = scheme.onSurface, bodyFontSize = 13.sp, bodyLineHeight = null, titleSpacing = 8.dp diff --git a/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt b/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt index 3745b725..ed103521 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/screen/series/components/SeriesComponents.kt @@ -151,15 +151,15 @@ internal fun SeriesActionButtons( Spacer(modifier = Modifier.width(12.dp)) } MediaActionButton( - backgroundColor = MaterialTheme.colorScheme.secondary, - iconColor = MaterialTheme.colorScheme.onSecondary, + backgroundColor = MaterialTheme.colorScheme.surface, + iconColor = MaterialTheme.colorScheme.onSurface, icon = Icons.Outlined.Add, height = 48.dp ) Spacer(modifier = Modifier.width(12.dp)) MediaActionButton( - backgroundColor = scheme.secondary, - iconColor = scheme.onSecondary, + backgroundColor = MaterialTheme.colorScheme.surface, + iconColor = MaterialTheme.colorScheme.onSurface, icon = when { seriesDownloadState is DownloadState.Downloading -> Icons.Outlined.Close seriesDownloadState is DownloadState.Downloaded -> Icons.Outlined.DownloadDone diff --git a/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/CircularIconButton.kt b/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/CircularIconButton.kt index 721a1444..a926c112 100644 --- a/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/CircularIconButton.kt +++ b/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/CircularIconButton.kt @@ -2,21 +2,18 @@ package hu.bbara.purefin.ui.common.button import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.foundation.background import androidx.compose.foundation.border -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.FilledIconButton import androidx.compose.material3.Icon +import androidx.compose.material3.IconButtonDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.graphicsLayer @@ -51,7 +48,13 @@ internal fun CircularIconButton( label = "background" ) - Box( + FilledIconButton( + onClick = onClick, + colors = IconButtonDefaults.filledIconButtonColors( + containerColor = backgroundColor, + contentColor = iconColor + ), + shape = CircleShape, modifier = modifier .graphicsLayer { scaleX = scale; scaleY = scale } .size(size) @@ -60,16 +63,11 @@ internal fun CircularIconButton( color = borderColor, shape = CircleShape ) - .clip(CircleShape) - .background(backgroundColor) .onFocusChanged { isFocused = it.isFocused || it.hasFocus } - .clickable { onClick() }, - contentAlignment = Alignment.Center ) { Icon( imageVector = icon, - contentDescription = contentDescription, - tint = iconColor + contentDescription = contentDescription ) } } diff --git a/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/MediaActionButton.kt b/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/MediaActionButton.kt index 009b9539..534cf3fa 100644 --- a/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/MediaActionButton.kt +++ b/core-ui/src/main/java/hu/bbara/purefin/ui/common/button/MediaActionButton.kt @@ -23,8 +23,8 @@ fun MediaActionButton( CircularIconButton( icon = icon, contentDescription = null, - containerColor = backgroundColor.copy(alpha = 0.6f), - focusedBackgroundColor = focusedBackgroundColor ?: backgroundColor.copy(alpha = 0.6f), + containerColor = backgroundColor, + focusedBackgroundColor = focusedBackgroundColor ?: backgroundColor, iconColor = iconColor, size = height, onClick = onClick,