From 9c5bfb3bf5a8d362b39e7ea5172a0cde957a511a Mon Sep 17 00:00:00 2001 From: Him188 <Him188@mamoe.net> Date: Sat, 25 Apr 2020 12:24:31 +0800 Subject: [PATCH] Fix #270 --- .../kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt | 2 +- .../kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt index 6df638cde..176447542 100644 --- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt +++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt @@ -40,7 +40,7 @@ class DefaultLoginSolver( private val delegate: LoginSolver init { - if (Desktop.isDesktopSupported()) { + if (WindowHelperJvm.isDesktopSupport) { delegate = SwingSolver } else { delegate = DefaultLoginSolverImpl(input, overrideLogger) diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt index de22d2b76..d45592bd4 100644 --- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt +++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt @@ -23,6 +23,16 @@ import java.awt.event.WindowEvent import javax.swing.JFrame import javax.swing.JTextField +// 隔离类代码 +internal object WindowHelperJvm { + internal val isDesktopSupport: Boolean = + kotlin.runCatching { + Desktop.isDesktopSupported() + }.getOrElse { + false + } +} + internal class WindowInitialzier(private val initializer: WindowInitialzier.(JFrame) -> Unit) { private lateinit var frame0: JFrame val frame: JFrame get() = frame0