From b9a3ae5ed0ab0eaff81fe9df871a681b288d29fb Mon Sep 17 00:00:00 2001 From: austinried <4966622+austinried@users.noreply.github.com> Date: Wed, 21 Oct 2026 04:03:49 +0000 Subject: [PATCH] ui: tighten the library tab bar and simplify the offline strip Drop the strip's divider and shorten its label to "Offline mode". Take the bar's horizontal inset off the scroll container so a tab that is scrolled half off is cut at the screen edge instead of stopping inside the bar's gutter; the gear keeps its end padding. --- .../com/subtracks/ui/library/LibraryScreen.kt | 68 +++++++++---------- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 33 insertions(+), 37 deletions(-) diff --git a/app/src/main/kotlin/com/subtracks/ui/library/LibraryScreen.kt b/app/src/main/kotlin/com/subtracks/ui/library/LibraryScreen.kt index 26d0f9fb..9637b9c9 100644 --- a/app/src/main/kotlin/com/subtracks/ui/library/LibraryScreen.kt +++ b/app/src/main/kotlin/com/subtracks/ui/library/LibraryScreen.kt @@ -50,7 +50,6 @@ import androidx.compose.material3.FilterChip import androidx.compose.material3.FilterChipDefaults import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.FloatingActionButtonDefaults -import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.LocalContentColor @@ -928,7 +927,7 @@ internal fun LibraryTabs( Modifier .fillMaxWidth() .background(headerColor) - .padding(horizontal = 8.dp, vertical = 2.dp), + .padding(top = 2.dp, end = 8.dp, bottom = 2.dp), ) { Row( modifier = Modifier.fillMaxWidth(), @@ -1015,41 +1014,38 @@ private fun OfflineStrip( onGoOnline: () -> Unit, modifier: Modifier = Modifier, ) { - Column(modifier.fillMaxWidth()) { - HorizontalDivider(color = MaterialTheme.colorScheme.outlineVariant) - Surface( - onClick = onGoOnline, - color = Color.Transparent, - contentColor = MaterialTheme.colorScheme.onBackground, - modifier = Modifier.fillMaxWidth(), + Surface( + onClick = onGoOnline, + color = Color.Transparent, + contentColor = MaterialTheme.colorScheme.onBackground, + modifier = modifier.fillMaxWidth(), + ) { + Row( + modifier = + Modifier + .fillMaxWidth() + .heightIn(min = 44.dp) + .padding(horizontal = 16.dp, vertical = 6.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp), ) { - Row( - modifier = - Modifier - .fillMaxWidth() - .heightIn(min = 44.dp) - .padding(horizontal = 16.dp, vertical = 6.dp), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.spacedBy(8.dp), - ) { - Icon( - imageVector = Icons.Rounded.CloudOff, - contentDescription = null, - tint = MaterialTheme.colorScheme.primary, - modifier = Modifier.size(18.dp), - ) - Text( - text = stringResource(R.string.offline_mode_banner), - style = MaterialTheme.typography.bodyMedium, - maxLines = 2, - modifier = Modifier.weight(1f), - ) - Text( - text = stringResource(R.string.offline_go_online), - style = MaterialTheme.typography.labelLarge, - color = MaterialTheme.colorScheme.primary, - ) - } + Icon( + imageVector = Icons.Rounded.CloudOff, + contentDescription = null, + tint = MaterialTheme.colorScheme.primary, + modifier = Modifier.size(18.dp), + ) + Text( + text = stringResource(R.string.offline_mode_banner), + style = MaterialTheme.typography.bodyMedium, + maxLines = 2, + modifier = Modifier.weight(1f), + ) + Text( + text = stringResource(R.string.offline_go_online), + style = MaterialTheme.typography.labelLarge, + color = MaterialTheme.colorScheme.primary, + ) } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 012e119e..ed5b5a0d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -175,7 +175,7 @@ Filters Downloaded Close search - Offline mode — downloads only + Offline mode Go online Shuffle artist