From 903a7961e3abdecea7c91ef98c8a568dc80a953c Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 28 May 2026 08:15:44 -0400 Subject: [PATCH] feat(android): "Change server URL" link on Login (parity map: Auth) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ports flutter_client/lib/auth/login_screen.dart:86-89 — a TextButton under the Sign-in button that routes to the ServerUrl screen, so a wrong server URL is recoverable pre-login without reinstalling or signing out from Settings. Disabled while a submit is in flight. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../com/fabledsword/minstrel/auth/ui/LoginScreen.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/auth/ui/LoginScreen.kt b/android/app/src/main/java/com/fabledsword/minstrel/auth/ui/LoginScreen.kt index 5fc956e0..3f3770a2 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/auth/ui/LoginScreen.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/auth/ui/LoginScreen.kt @@ -14,6 +14,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Surface import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -28,6 +29,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavHostController import com.fabledsword.minstrel.nav.Home import com.fabledsword.minstrel.nav.Login +import com.fabledsword.minstrel.nav.ServerUrl @Composable fun LoginScreen( @@ -55,6 +57,7 @@ fun LoginScreen( onUsernameChange = viewModel::setUsername, onPasswordChange = viewModel::setPassword, onSubmit = viewModel::submit, + onChangeServerUrl = { navController.navigate(ServerUrl) }, ) } } @@ -65,6 +68,7 @@ private fun LoginForm( onUsernameChange: (String) -> Unit, onPasswordChange: (String) -> Unit, onSubmit: () -> Unit, + onChangeServerUrl: () -> Unit, ) { Column( modifier = Modifier @@ -112,6 +116,12 @@ private fun LoginForm( ) } SubmitButton(state = state, onSubmit = onSubmit) + TextButton( + onClick = onChangeServerUrl, + enabled = !state.isSubmitting, + ) { + Text("Change server URL") + } } }