diff --git a/app/src/main/kotlin/com/subtracks/ui/settings/SettingsScreen.kt b/app/src/main/kotlin/com/subtracks/ui/settings/SettingsScreen.kt index b82ab683..7f8f975e 100644 --- a/app/src/main/kotlin/com/subtracks/ui/settings/SettingsScreen.kt +++ b/app/src/main/kotlin/com/subtracks/ui/settings/SettingsScreen.kt @@ -62,6 +62,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalResources import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -780,6 +781,7 @@ private fun ReplayGainPreampDialog( style = MaterialTheme.typography.titleSmall, color = MaterialTheme.colorScheme.primary, ) + Spacer(Modifier.height(16.dp)) Row(verticalAlignment = Alignment.CenterVertically) { IconButton( onClick = { draft = stepReplayGainPreampDb(draft, -1) }, @@ -807,29 +809,31 @@ private fun ReplayGainPreampDialog( ) } } - Row( - verticalAlignment = Alignment.CenterVertically, + Text( + replayGainPreampLabel(resources, draft), + textAlign = TextAlign.Center, modifier = Modifier.fillMaxWidth(), - ) { - Text(replayGainPreampLabel(resources, draft)) - Spacer(Modifier.weight(1f)) - TextButton( - onClick = { draft = 0f }, - enabled = draft != 0f, - ) { Text(stringResource(R.string.settings_replay_gain_preamp_reset)) } - } + ) } }, confirmButton = { - TextButton( - onClick = { - onSelect(draft) - onDismiss() - }, - ) { Text(stringResource(R.string.action_done)) } - }, - dismissButton = { - TextButton(onClick = onDismiss) { Text(stringResource(R.string.actions_cancel)) } + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxWidth(), + ) { + TextButton( + onClick = { draft = 0f }, + enabled = draft != 0f, + ) { Text(stringResource(R.string.settings_replay_gain_preamp_reset)) } + Spacer(Modifier.weight(1f)) + TextButton(onClick = onDismiss) { Text(stringResource(R.string.actions_cancel)) } + TextButton( + onClick = { + onSelect(draft) + onDismiss() + }, + ) { Text(stringResource(R.string.action_done)) } + } }, ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 439d8c73..be037408 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -79,12 +79,12 @@ Track gain Lower preamp Raise preamp - Adjust level on top of the replay gain + Adjust level on top of the ReplayGain Reset Preamp %1$s dB - Normalise loudness using the gain from the server - Replay gain + Normalise loudness with the server\'s ReplayGain + ReplayGain Network Stream quality: Mobile Stream quality: Wi-Fi diff --git a/app/src/test/kotlin/com/subtracks/ui/AppScreenshotTest.kt b/app/src/test/kotlin/com/subtracks/ui/AppScreenshotTest.kt index c6635480..a6c6961e 100644 --- a/app/src/test/kotlin/com/subtracks/ui/AppScreenshotTest.kt +++ b/app/src/test/kotlin/com/subtracks/ui/AppScreenshotTest.kt @@ -12,11 +12,15 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.test.assertCountEquals +import androidx.compose.ui.test.hasScrollAction +import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.v2.createAndroidComposeRule import androidx.compose.ui.test.onAllNodesWithContentDescription import androidx.compose.ui.test.onAllNodesWithTag import androidx.compose.ui.test.onAllNodesWithText import androidx.compose.ui.test.onRoot +import androidx.compose.ui.test.performClick +import androidx.compose.ui.test.performScrollToNode import androidx.compose.ui.test.performTouchInput import androidx.compose.ui.test.swipeUp import androidx.paging.PagingData @@ -340,6 +344,21 @@ class AppScreenshotTest { @Test fun settings() { + setSettingsContent() + awaitText("Navidrome") + composeRule.onRoot().captureRoboImage("src/test/screenshots/settings.png") + } + + @Test + fun replayGainPreampDialog() { + setSettingsContent() + composeRule.onNode(hasScrollAction()).performScrollToNode(hasText("Preamp")) + composeRule.onAllNodesWithText("Preamp")[0].performClick() + composeRule.waitForIdle() + composeRule.onRoot().captureRoboImage("src/test/screenshots/replay_gain_preamp.png") + } + + private fun setSettingsContent() { composeRule.setContent { SubtracksTheme { SettingsScreen( @@ -367,8 +386,6 @@ class AppScreenshotTest { ) } } - awaitText("Navidrome") - composeRule.onRoot().captureRoboImage("src/test/screenshots/settings.png") } @Test