Skip to content

Commit d8fd492

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents 7dfb8be + e366e6c commit d8fd492

16 files changed

Lines changed: 177 additions & 31 deletions

.run/DemoAdaptivePosition.run.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="DemoAdaptivePosition" type="GradleRunConfiguration" factoryName="Gradle">
3+
<ExternalSystemSettings>
4+
<option name="executionName" />
5+
<option name="externalProjectPath" value="$PROJECT_DIR$/demo" />
6+
<option name="externalSystemIdString" value="GRADLE" />
7+
<option name="scriptParameters" value="-DmainClass=com.kdroid.composetray.demo.DemoAdaptivePositionWindowsKt --quiet" />
8+
<option name="taskDescriptions">
9+
<list />
10+
</option>
11+
<option name="taskNames">
12+
<list>
13+
<option value="jvmRun" />
14+
</list>
15+
</option>
16+
<option name="vmOptions" />
17+
</ExternalSystemSettings>
18+
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
19+
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
20+
<DebugAllEnabled>false</DebugAllEnabled>
21+
<RunAsTest>false</RunAsTest>
22+
<method v="2" />
23+
</configuration>
24+
</component>

.run/DemoDynamicTray.run.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="DemoDynamicTray" type="GradleRunConfiguration" factoryName="Gradle">
3+
<ExternalSystemSettings>
4+
<option name="executionName" />
5+
<option name="externalProjectPath" value="$PROJECT_DIR$/demo" />
6+
<option name="externalSystemIdString" value="GRADLE" />
7+
<option name="scriptParameters" value="" />
8+
<option name="taskDescriptions">
9+
<list />
10+
</option>
11+
<option name="taskNames">
12+
<list>
13+
<option value="run" />
14+
</list>
15+
</option>
16+
<option name="vmOptions" />
17+
</ExternalSystemSettings>
18+
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
19+
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
20+
<DebugAllEnabled>false</DebugAllEnabled>
21+
<RunAsTest>false</RunAsTest>
22+
<method v="2" />
23+
</configuration>
24+
</component>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="DemoWithoutContextMenu" type="GradleRunConfiguration" factoryName="Gradle">
3+
<ExternalSystemSettings>
4+
<option name="executionName" />
5+
<option name="externalProjectPath" value="$PROJECT_DIR$/demo" />
6+
<option name="externalSystemIdString" value="GRADLE" />
7+
<option name="scriptParameters" value="-DmainClass=com.kdroid.composetray.demo.DemoWithoutContextMenuKt --quiet" />
8+
<option name="taskDescriptions">
9+
<list />
10+
</option>
11+
<option name="taskNames">
12+
<list>
13+
<option value="jvmRun" />
14+
</list>
15+
</option>
16+
<option name="vmOptions" />
17+
</ExternalSystemSettings>
18+
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
19+
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
20+
<DebugAllEnabled>false</DebugAllEnabled>
21+
<RunAsTest>false</RunAsTest>
22+
<method v="2" />
23+
</configuration>
24+
</component>

demo/build.gradle.kts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,11 @@ compose.desktop {
3232
packageName = "tray-demo"
3333
packageVersion = "1.0.0"
3434
}
35+
buildTypes.release.proguard {
36+
isEnabled = true
37+
obfuscate.set(false)
38+
optimize.set(true)
39+
configurationFiles.from(project.file("proguard-rules.pro"))
40+
}
3541
}
36-
}
42+
}

demo/proguard-rules.pro

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
-keepclasseswithmembers public class com.kdroid.composetray.demo.DynamicTrayMenuKt { #
2+
public static void main(java.lang.String[]);
3+
}
4+
5+
-dontwarn kotlinx.coroutines.debug.*
6+
7+
-keep class kotlin.** { *; }
8+
-keep class kotlinx.** { *; }
9+
-keep class kotlinx.coroutines.** { *; }
10+
-keep class org.jetbrains.skia.** { *; }
11+
-keep class org.jetbrains.skiko.** { *; }
12+
-keep class com.sun.jna.** { *; }
13+
-keep class * implements com.sun.jna.** { *; }
14+
-keepclassmembers class * extends com.sun.jna.* { public *; }
15+
-keepclassmembers class * implements com.sun.jna.* { public *; }
16+
-dontwarn com.sun.jna.**
17+
18+
# Keep specific JNA Platform classes used in the project
19+
-keep class com.sun.jna.platform.** { *; }
20+
-keep class com.sun.jna.win32.** { *; }
21+
-dontwarn com.sun.jna.platform.**
22+
23+
24+
-keep class com.kdroid.composetray.** { *; }
25+
26+
-assumenosideeffects public class androidx.compose.runtime.ComposerKt {
27+
void sourceInformation(androidx.compose.runtime.Composer,java.lang.String);
28+
void sourceInformationMarkerStart(androidx.compose.runtime.Composer,int,java.lang.String);
29+
void sourceInformationMarkerEnd(androidx.compose.runtime.Composer);
30+
}
31+
32+
# Keep `Companion` object fields of serializable classes.
33+
# This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects.
34+
-if @kotlinx.serialization.Serializable class **
35+
-keepclassmembers class <1> {
36+
static <1>$Companion Companion;
37+
}
38+
39+
# Keep `serializer()` on companion objects (both default and named) of serializable classes.
40+
-if @kotlinx.serialization.Serializable class ** {
41+
static **$* *;
42+
}
43+
-keepclassmembers class <2>$<3> {
44+
kotlinx.serialization.KSerializer serializer(...);
45+
}
46+
47+
# Keep `INSTANCE.serializer()` of serializable objects.
48+
-if @kotlinx.serialization.Serializable class ** {
49+
public static ** INSTANCE;
50+
}
51+
-keepclassmembers class <1> {
52+
public static <1> INSTANCE;
53+
kotlinx.serialization.KSerializer serializer(...);
54+
}
55+
56+
# @Serializable and @Polymorphic are used at runtime for polymorphic serialization.
57+
-keepattributes RuntimeVisibleAnnotations,AnnotationDefault
58+
59+
-keepattributes *Annotation*, InnerClasses
60+
-dontnote kotlinx.serialization.AnnotationsKt # core serialization annotations
61+
-dontnote kotlinx.serialization.SerializationKt
62+
63+
64+
# OkHttp platform used only on JVM and when Conscrypt and other security providers are available.
65+
-dontwarn okhttp3.internal.platform.**
66+
-dontwarn org.conscrypt.**
67+
-dontwarn org.bouncycastle.**
68+
-dontwarn org.openjsse.**
69+
#################################### SLF4J #####################################
70+
-dontwarn org.slf4j.**
71+
72+
# Prevent runtime crashes from use of class.java.getName()
73+
-dontwarn javax.naming.**
74+
75+
# Ignore warnings and Don't obfuscate for now
76+
-dontobfuscate
77+
-ignorewarnings

demo/src/jvmMain/kotlin/com/kdroid/composetray/demo/DemoAdaptivePositionWindows.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ import com.kdroid.composetray.utils.getTrayWindowPosition
2222
import com.kdroid.kmplog.Log
2323
import com.kdroid.kmplog.d
2424
import com.kdroid.kmplog.i
25+
import composenativetray.demo.generated.resources.Res
26+
import composenativetray.demo.generated.resources.icon
27+
import org.jetbrains.compose.resources.painterResource
2528

2629
fun main() = application {
2730
Log.setDevelopmentMode(true)
@@ -134,7 +137,7 @@ fun main() = application {
134137
),
135138
title = "Compose Desktop Application with Two Screens",
136139
visible = isWindowVisible,
137-
icon = painterResource("icon.png") // Optional: Set window icon
140+
icon = painterResource(Res.drawable.icon) // Optional: Set window icon
138141
) {
139142
App(textVisible, alwaysShowTray, hideOnClose) { alwaysShow, hideOnCloseState ->
140143
alwaysShowTray = alwaysShow

demo/src/jvmMain/kotlin/com/kdroid/composetray/demo/DemoWithContextMenu.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import androidx.compose.runtime.remember
1010
import androidx.compose.runtime.setValue
1111
import androidx.compose.ui.Modifier
1212
import androidx.compose.ui.graphics.Color
13-
import androidx.compose.ui.res.painterResource
1413
import androidx.compose.ui.window.Window
1514
import androidx.compose.ui.window.application
1615
import com.kdroid.composetray.tray.api.Tray
@@ -19,6 +18,8 @@ import com.kdroid.composetray.utils.getTrayPosition
1918
import com.kdroid.kmplog.Log
2019
import com.kdroid.kmplog.d
2120
import com.kdroid.kmplog.i
21+
import composenativetray.demo.generated.resources.Res
22+
import composenativetray.demo.generated.resources.icon
2223

2324
fun main() = application {
2425
Log.setDevelopmentMode(true)
@@ -144,7 +145,7 @@ fun main() = application {
144145
},
145146
title = "Compose Desktop Application with Two Screens",
146147
visible = isWindowVisible,
147-
icon = painterResource("icon.png") // Optional: Set window icon
148+
icon = org.jetbrains.compose.resources.painterResource(Res.drawable.icon) // Optional: Set window icon
148149
) {
149150
App(textVisible, alwaysShowTray, hideOnClose) { alwaysShow, hideOnCloseState ->
150151
alwaysShowTray = alwaysShow

demo/src/jvmMain/kotlin/com/kdroid/composetray/demo/DemoWithoutContextMenu.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import com.kdroid.composetray.utils.getTrayPosition
2020
import com.kdroid.kmplog.Log
2121
import com.kdroid.kmplog.d
2222
import com.kdroid.kmplog.i
23+
import composenativetray.demo.generated.resources.Res
24+
import composenativetray.demo.generated.resources.icon
2325

2426
fun main() = application {
2527
Log.setDevelopmentMode(true)
@@ -66,7 +68,7 @@ fun main() = application {
6668
},
6769
title = "Compose Desktop Application with Two Screens",
6870
visible = isWindowVisible,
69-
icon = painterResource("icon.png") // Optional: Set window icon
71+
icon = org.jetbrains.compose.resources.painterResource(Res.drawable.icon) // Optional: Set window icon
7072
) {
7173
App(textVisible, alwaysShowTray, hideOnClose) { alwaysShow, hideOnCloseState ->
7274
alwaysShowTray = alwaysShow

demo/src/jvmMain/kotlin/com/kdroid/composetray/demo/DynamicTrayMenu.kt

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
11
package com.kdroid.composetray.demo
22

33
import androidx.compose.foundation.Image
4-
import androidx.compose.foundation.background
5-
import androidx.compose.foundation.layout.Box
6-
import androidx.compose.foundation.layout.fillMaxSize
7-
import androidx.compose.foundation.shape.RoundedCornerShape
84
import androidx.compose.runtime.getValue
95
import androidx.compose.runtime.mutableStateOf
106
import androidx.compose.runtime.remember
117
import androidx.compose.runtime.setValue
12-
import androidx.compose.ui.Modifier
13-
import androidx.compose.ui.draw.clip
14-
import androidx.compose.ui.graphics.Color
15-
import androidx.compose.ui.res.painterResource
16-
import androidx.compose.ui.unit.dp
178
import androidx.compose.ui.window.Window
189
import androidx.compose.ui.window.application
1910
import com.kdroid.composetray.tray.api.Tray
@@ -53,7 +44,7 @@ fun main() = application {
5344
}
5445

5546
val running = serviceStatus == ServiceStatus.RUNNING
56-
var icon by mutableStateOf(Res.drawable.icon)
47+
var icon by remember { mutableStateOf(Res.drawable.icon) }
5748

5849
if (alwaysShowTray || !isWindowVisible) {
5950
Tray(

settings.gradle.kts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,4 @@ dependencyResolutionManagement {
3232
}
3333
}
3434

35-
plugins {
36-
id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0"
37-
}
38-
39-
4035
include(":demo")

0 commit comments

Comments
 (0)