From dd7c5544bf82cffac5b928f987cf4633b71b1373 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 27 May 2026 21:15:45 -0400 Subject: [PATCH] fix(android) detekt: extract SignOutConfirmDialog helper Sign-out confirm dialog landed inline in SettingsScreen and pushed it past the 60-line cap (93/60). Same pattern as other dialog extractions in the project. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../minstrel/settings/ui/SettingsScreen.kt | 54 +++++++++++-------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/settings/ui/SettingsScreen.kt b/android/app/src/main/java/com/fabledsword/minstrel/settings/ui/SettingsScreen.kt index 4ae8f625..9d333af0 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/settings/ui/SettingsScreen.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/settings/ui/SettingsScreen.kt @@ -131,34 +131,42 @@ fun SettingsScreen( } } if (showSignOutConfirm) { - AlertDialog( - onDismissRequest = { showSignOutConfirm = false }, - title = { Text("Sign out?") }, - text = { - Text( - "Sign out of this server? Your downloaded music and " + - "settings on this device will be removed.", - ) - }, - confirmButton = { - Button( - onClick = { - showSignOutConfirm = false - viewModel.signOut() - }, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.errorContainer, - contentColor = MaterialTheme.colorScheme.onErrorContainer, - ), - ) { Text("Sign out") } - }, - dismissButton = { - TextButton(onClick = { showSignOutConfirm = false }) { Text("Cancel") } + SignOutConfirmDialog( + onConfirm = { + showSignOutConfirm = false + viewModel.signOut() }, + onDismiss = { showSignOutConfirm = false }, ) } } +@Composable +private fun SignOutConfirmDialog(onConfirm: () -> Unit, onDismiss: () -> Unit) { + AlertDialog( + onDismissRequest = onDismiss, + title = { Text("Sign out?") }, + text = { + Text( + "Sign out of this server? Your downloaded music and " + + "settings on this device will be removed.", + ) + }, + confirmButton = { + Button( + onClick = onConfirm, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.errorContainer, + contentColor = MaterialTheme.colorScheme.onErrorContainer, + ), + ) { Text("Sign out") } + }, + dismissButton = { + TextButton(onClick = onDismiss) { Text("Cancel") } + }, + ) +} + @Composable private fun NavTile( icon: ImageVector,