Coverage Summary for Class: LogShareUtil_jvmKt (dev.skymansandy.wiretap.helper.util)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| LogShareUtil_jvmKt |
0%
(0/2)
|
|
0%
(0/6)
|
0%
(0/34)
|
| LogShareUtil_jvmKt$shareLogAsFile$1 |
0%
(0/1)
|
0%
(0/4)
|
0%
(0/5)
|
0%
(0/36)
|
| Total |
0%
(0/3)
|
0%
(0/4)
|
0%
(0/11)
|
0%
(0/70)
|
/*
* Copyright (c) 2026 skymansandy. All rights reserved.
*/
package dev.skymansandy.wiretap.helper.util
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.awt.Desktop
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection
import java.io.File
internal actual fun shareLogText(subject: String, text: String): String? {
return try {
val clipboard = Toolkit.getDefaultToolkit().systemClipboard
clipboard.setContents(StringSelection(text), null)
"Copied to clipboard"
} catch (_: Exception) {
null
}
}
internal actual fun shareLogAsFile(content: String, fileName: String): String? {
CoroutineScope(Dispatchers.IO).launch {
try {
val shareDir = File(System.getProperty("java.io.tmpdir"), SHARE_DIR_NAME).apply { mkdirs() }
val file = File(shareDir, fileName)
file.writeText(content, Charsets.UTF_8)
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
Desktop.getDesktop().open(file)
}
} catch (_: Exception) {
// Silently fail -- never crash the host app
}
}
return null
}