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