consola: botón "copiar" en el panel de diagnóstico
Vuelca DebugLog.dump() al portapapeles para compartir el log de conexión (URL, handshake WS, errores) sin adb. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Semantic delta
No definition changed: this change is text, documentation or data.
1 files · +12 −0
diff --git a/consola/src/main/java/com/rizoma/consola/ui/TerminalScreen.kt b/consola/src/main/java/com/rizoma/consola/ui/TerminalScreen.kt
index a25ff0b..5073d36 100644
--- a/consola/src/main/java/com/rizoma/consola/ui/TerminalScreen.kt
+++ b/consola/src/main/java/com/rizoma/consola/ui/TerminalScreen.kt
@@ -41,11 +41,14 @@ import androidx.compose.ui.input.key.key
import androidx.compose.ui.input.key.onPreviewKeyEvent
import androidx.compose.ui.input.key.type
import androidx.compose.ui.layout.onSizeChanged
+import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import com.rizoma.consola.DebugLog
import com.rizoma.consola.TermStatus
import com.rizoma.consola.term.TerminalEmulator
import com.rizoma.consola.term.TerminalFrame
@@ -139,6 +142,15 @@ private fun DebugPanel(debug: List<String>, onClear: () -> Unit) {
verticalAlignment = Alignment.CenterVertically,
) {
Text("diagnóstico (${debug.size})", color = NeonCian, fontSize = 11.sp, modifier = Modifier.weight(1f))
+ val clipboard = LocalClipboardManager.current
+ Text(
+ "copiar",
+ color = NeonVerde,
+ fontSize = 11.sp,
+ modifier = Modifier
+ .clickable { clipboard.setText(AnnotatedString(DebugLog.dump())) }
+ .padding(end = 12.dp),
+ )
Text("limpiar", color = Tenue, fontSize = 11.sp, modifier = Modifier.clickable { onClear() })
}
val scroll = rememberScrollState()