Skip to content

Commit adde38c

Browse files
committed
feat(theme): Add exception handling for dark theme detection
1 parent 6029878 commit adde38c

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

composeApp/src/jvmMain/kotlin/com/jankinwu/fntv/client/utils/DarkThemeMode.jvm.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.compose.runtime.Composable
55
import androidx.compose.runtime.DisposableEffect
66
import androidx.compose.runtime.mutableStateOf
77
import androidx.compose.runtime.remember
8+
import co.touchlab.kermit.Logger
89
import com.jthemedetecor.OsThemeDetector
910
import java.util.function.Consumer
1011

@@ -17,10 +18,15 @@ actual fun isSystemInDarkMode(): Boolean {
1718
val listener = Consumer<Boolean> {
1819
isSystemInDarkTheme.value = it
1920
}
20-
val detector = OsThemeDetector.getDetector()
21-
detector.registerListener(listener)
21+
var detector: OsThemeDetector? = null
22+
try {
23+
detector = OsThemeDetector.getDetector()
24+
detector.registerListener(listener)
25+
} catch (e: Exception) {
26+
Logger.withTag("DarkThemeMode").e("Failed to register dark theme listener", e)
27+
}
2228
onDispose {
23-
detector.removeListener(listener)
29+
detector?.removeListener(listener)
2430
}
2531
}
2632
return isSystemInDarkTheme.value

0 commit comments

Comments
 (0)