diff --git a/app/src/main/kotlin/com/subtracks/ui/library/ArtistDetailScreen.kt b/app/src/main/kotlin/com/subtracks/ui/library/ArtistDetailScreen.kt index 22ade453..84b02e58 100644 --- a/app/src/main/kotlin/com/subtracks/ui/library/ArtistDetailScreen.kt +++ b/app/src/main/kotlin/com/subtracks/ui/library/ArtistDetailScreen.kt @@ -363,42 +363,47 @@ fun ArtistDetailScreen( } } } - Row( - modifier = Modifier.fillMaxWidth().padding(start = 16.dp, end = 8.dp, top = 34.dp, bottom = 0.dp), - verticalAlignment = Alignment.CenterVertically, + Column( + modifier = Modifier.fillMaxWidth().padding(start = 16.dp, end = 8.dp, top = TITLE_INSET), ) { - Column(Modifier.weight(1f)) { - Text( - text = artistType, - style = MaterialTheme.typography.labelLarge, - color = MaterialTheme.colorScheme.onSurfaceVariant, - ) + Text( + text = artistType, + style = MaterialTheme.typography.labelLarge, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { Text( text = pluralStringResource(R.plurals.resources_album_count, albumCount.toInt(), albumCount), style = MaterialTheme.typography.bodyLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.weight(1f), ) - } - IconButton( - onClick = { onToggleStar?.invoke() }, - enabled = onToggleStar != null, - ) { - Icon( - imageVector = if (starred) Icons.Rounded.Star else Icons.Rounded.StarBorder, - contentDescription = - stringResource( - if (starred) R.string.actions_unstar else R.string.actions_star, - ), - tint = - if (starred) { - MaterialTheme.colorScheme.primary - } else { - MaterialTheme.colorScheme.onSurfaceVariant - }, - ) - } - IconButton(onClick = onMore) { - Icon(Icons.Rounded.MoreHoriz, contentDescription = stringResource(R.string.more_options)) + if (artist != null) { + IconButton( + onClick = { onToggleStar?.invoke() }, + enabled = onToggleStar != null, + ) { + Icon( + imageVector = if (starred) Icons.Rounded.Star else Icons.Rounded.StarBorder, + contentDescription = + stringResource( + if (starred) R.string.actions_unstar else R.string.actions_star, + ), + tint = + if (starred) { + MaterialTheme.colorScheme.primary + } else { + MaterialTheme.colorScheme.onSurfaceVariant + }, + ) + } + IconButton(onClick = onMore) { + Icon(Icons.Rounded.MoreHoriz, contentDescription = stringResource(R.string.more_options)) + } + } } } } diff --git a/app/src/test/kotlin/com/subtracks/ui/library/ArtistDetailScreenTest.kt b/app/src/test/kotlin/com/subtracks/ui/library/ArtistDetailScreenTest.kt index d0cf3035..bd9ee49a 100644 --- a/app/src/test/kotlin/com/subtracks/ui/library/ArtistDetailScreenTest.kt +++ b/app/src/test/kotlin/com/subtracks/ui/library/ArtistDetailScreenTest.kt @@ -1,8 +1,11 @@ package com.subtracks.ui.library import androidx.activity.ComponentActivity +import androidx.compose.ui.test.assertCountEquals import androidx.compose.ui.test.junit4.v2.createAndroidComposeRule +import androidx.compose.ui.test.onAllNodesWithContentDescription import androidx.compose.ui.test.onAllNodesWithText +import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithText import androidx.test.ext.junit.runners.AndroidJUnit4 import com.subtracks.data.model.Artist @@ -45,6 +48,7 @@ class ArtistDetailScreenTest { composeRule.onAllNodesWithText("Guest")[0].assertExists() composeRule.onNodeWithText("Artist").assertExists() + composeRule.onAllNodesWithContentDescription("More options").assertCountEquals(0) } @Test @@ -56,5 +60,6 @@ class ArtistDetailScreenTest { ) composeRule.onNodeWithText("Album artist").assertExists() + composeRule.onNodeWithContentDescription("More options").assertExists() } }