From fa05241d1d7712492a8c2e4361f1d4de641b6178 Mon Sep 17 00:00:00 2001 From: Yiqun Zhang Date: Mon, 21 Oct 2024 14:19:23 +0800 Subject: [PATCH] :bug: Fix icon path error issue on Linux (#2102) --- .../desktopMain/kotlin/com/crosspaste/ui/LinuxTrayView.kt | 7 +++++-- .../kotlin/com/crosspaste/utils/DesktopResourceUtils.kt | 7 ++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composeApp/src/desktopMain/kotlin/com/crosspaste/ui/LinuxTrayView.kt b/composeApp/src/desktopMain/kotlin/com/crosspaste/ui/LinuxTrayView.kt index f296a8c0..68fe3cf1 100644 --- a/composeApp/src/desktopMain/kotlin/com/crosspaste/ui/LinuxTrayView.kt +++ b/composeApp/src/desktopMain/kotlin/com/crosspaste/ui/LinuxTrayView.kt @@ -13,7 +13,7 @@ import com.crosspaste.app.AppLaunchState import com.crosspaste.app.DesktopAppSize import com.crosspaste.app.DesktopAppWindowManager import com.crosspaste.app.ExitMode -import com.crosspaste.utils.DesktopResourceUtils +import com.crosspaste.composeapp.generated.resources.Res import com.crosspaste.utils.GlobalCoroutineScopeImpl.mainCoroutineDispatcher import dorkbox.systemTray.MenuItem import dorkbox.systemTray.SystemTray @@ -21,14 +21,17 @@ import dorkbox.systemTray.SystemTray.TrayType import io.github.oshai.kotlinlogging.KotlinLogging import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.launch +import org.jetbrains.compose.resources.ExperimentalResourceApi import org.koin.compose.koinInject import java.awt.GraphicsEnvironment import java.awt.Toolkit +import java.net.URL object LinuxTrayView { val logger = KotlinLogging.logger {} + @OptIn(ExperimentalResourceApi::class) @Composable fun Tray() { val applicationExit = LocalExitApplication.current @@ -50,7 +53,7 @@ object LinuxTrayView { } LaunchedEffect(Unit) { - tray?.setImage(DesktopResourceUtils.resourceInputStream("icon/crosspaste.png")) + tray?.setImage(URL(Res.getUri("drawable/crosspaste.png")).openStream()) tray?.setTooltip("CrossPaste") tray?.menu?.add( MenuItem("Open CrossPaste") { diff --git a/composeApp/src/desktopMain/kotlin/com/crosspaste/utils/DesktopResourceUtils.kt b/composeApp/src/desktopMain/kotlin/com/crosspaste/utils/DesktopResourceUtils.kt index 0228dc6d..e059e793 100644 --- a/composeApp/src/desktopMain/kotlin/com/crosspaste/utils/DesktopResourceUtils.kt +++ b/composeApp/src/desktopMain/kotlin/com/crosspaste/utils/DesktopResourceUtils.kt @@ -7,13 +7,10 @@ import java.util.Properties object DesktopResourceUtils { - fun resourceInputStream(fileName: String): InputStream { - return ClassLoaderResourceLoader.load(fileName) - } - fun loadProperties(fileName: String): Properties { val properties = Properties() - InputStreamReader(resourceInputStream(fileName), StandardCharsets.UTF_8).use { inputStreamReader -> + val inputStream = ClassLoaderResourceLoader.load(fileName) + InputStreamReader(inputStream, StandardCharsets.UTF_8).use { inputStreamReader -> properties.load(inputStreamReader) } return properties