From 5b3ff068de66bd651d46398e11602868fa16ac56 Mon Sep 17 00:00:00 2001 From: Damontecres Date: Tue, 6 Jan 2026 19:34:28 -0500 Subject: [PATCH] UI adjustments --- .../discover/ExpandableDiscoverButtons.kt | 9 ++-- .../wholphin/ui/setup/seerr/AddSeerrServer.kt | 44 ++++++++++++++++--- app/src/main/res/values/strings.xml | 3 ++ 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/ExpandableDiscoverButtons.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/ExpandableDiscoverButtons.kt index 5b6b44c0..4ac175c1 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/ExpandableDiscoverButtons.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/ExpandableDiscoverButtons.kt @@ -20,6 +20,7 @@ import com.github.damontecres.wholphin.R import com.github.damontecres.wholphin.data.model.SeerrAvailability import com.github.damontecres.wholphin.ui.components.ExpandableFaButton import com.github.damontecres.wholphin.ui.components.ExpandablePlayButton +import com.github.damontecres.wholphin.ui.tryRequestFocus import kotlin.time.Duration @Composable @@ -106,13 +107,15 @@ fun ExpandableDiscoverButtons( ) } - if (availability == SeerrAvailability.PENDING || availability == SeerrAvailability.PROCESSING) { - // TODO should only show if user can cancel + if (canCancel) { item("cancel") { ExpandablePlayButton( title = R.string.cancel, icon = Icons.Default.Delete, - onClick = { cancelOnClick.invoke() }, + onClick = { + firstFocus.tryRequestFocus() + cancelOnClick.invoke() + }, resume = Duration.ZERO, enabled = canCancel, modifier = diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/setup/seerr/AddSeerrServer.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/setup/seerr/AddSeerrServer.kt index 784b7081..0c74f715 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/setup/seerr/AddSeerrServer.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/setup/seerr/AddSeerrServer.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions @@ -19,6 +20,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType @@ -27,9 +29,11 @@ import androidx.compose.ui.unit.dp import androidx.tv.material3.MaterialTheme import androidx.tv.material3.Text import com.github.damontecres.wholphin.R +import com.github.damontecres.wholphin.ui.PreviewTvSpec import com.github.damontecres.wholphin.ui.components.EditTextBox import com.github.damontecres.wholphin.ui.components.TextButton import com.github.damontecres.wholphin.ui.isNotNullOrBlank +import com.github.damontecres.wholphin.ui.theme.WholphinTheme import com.github.damontecres.wholphin.ui.tryRequestFocus import com.github.damontecres.wholphin.util.LoadingState @@ -162,19 +166,24 @@ fun AddSeerrServerUsername( val passwordFocusRequester = remember { FocusRequester() } LaunchedEffect(Unit) { focusRequester.tryRequestFocus() } Text( - text = "Enter URL, username, & password", + text = stringResource(R.string.username_or_password), style = MaterialTheme.typography.titleMedium, color = MaterialTheme.colorScheme.onSurface, textAlign = TextAlign.Center, modifier = Modifier.fillMaxWidth(), ) + val labelWidth = 90.dp Row( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.align(Alignment.CenterHorizontally), ) { Text( - text = "URL", - modifier = Modifier.padding(end = 8.dp), + text = stringResource(R.string.url), + color = MaterialTheme.colorScheme.onSurface, + modifier = + Modifier + .width(labelWidth) + .padding(end = 8.dp), ) EditTextBox( value = url, @@ -204,8 +213,12 @@ fun AddSeerrServerUsername( modifier = Modifier.align(Alignment.CenterHorizontally), ) { Text( - text = "Username", - modifier = Modifier.padding(end = 8.dp), + text = stringResource(R.string.username), + color = MaterialTheme.colorScheme.onSurface, + modifier = + Modifier + .width(labelWidth) + .padding(end = 8.dp), ) EditTextBox( value = username, @@ -235,8 +248,12 @@ fun AddSeerrServerUsername( modifier = Modifier.align(Alignment.CenterHorizontally), ) { Text( - text = "Password", - modifier = Modifier.padding(end = 8.dp), + text = stringResource(R.string.password), + color = MaterialTheme.colorScheme.onSurface, + modifier = + Modifier + .width(labelWidth) + .padding(end = 8.dp), ) EditTextBox( value = password, @@ -274,3 +291,16 @@ fun AddSeerrServerUsername( ) } } + +@PreviewTvSpec +@Composable +private fun AddSeerrServerUsernamePreview() { + WholphinTheme { + AddSeerrServerUsername( + onSubmit = { string: String, string1: String, string2: String -> }, + username = "test", + status = LoadingState.Pending, + modifier = Modifier, + ) + } +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3871c809..c5fef869 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -425,6 +425,9 @@ Pending Seerr integration Remove Seerr Server + Password + Username + URL Disabled