diff --git a/app/src/main/java/io/xpipe/app/core/AppFont.java b/app/src/main/java/io/xpipe/app/core/AppFont.java index 8b19ae65..1ce1cd7a 100644 --- a/app/src/main/java/io/xpipe/app/core/AppFont.java +++ b/app/src/main/java/io/xpipe/app/core/AppFont.java @@ -58,7 +58,15 @@ public class AppFont { node.setStyle(node.getStyle() + "-fx-font-size: " + (baseSize + off) + "pt;"); } - public static void loadFonts() { + public static void verifyFontLoadingFunctional() { + try { + Font.getDefault(); + } catch (Throwable t) { + throw new IllegalStateException("Font loading is not working. Check whether your system is properly configured with fontconfig", t); + } + } + + public static void init() { TrackEvent.info("Loading fonts ..."); AppResources.with( AppResources.XPIPE_MODULE, diff --git a/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java b/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java index 25850bee..86059e11 100644 --- a/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java +++ b/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java @@ -102,6 +102,7 @@ public abstract class OperationMode { AppProperties.logSystemProperties(); AppProperties.logPassedProperties(); XPipeSystemId.init(); + AppFont.verifyFontLoadingFunctional(); TrackEvent.info("mode", "Finished initial setup"); } catch (Throwable ex) { ErrorEvent.fromThrowable(ex).term().handle(); diff --git a/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java b/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java index 40fd633e..12b1db6e 100644 --- a/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java +++ b/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java @@ -25,7 +25,7 @@ public abstract class PlatformMode extends OperationMode { TrackEvent.info("mode", "Platform mode initial setup"); PlatformState.initPlatformOrThrow(); - AppFont.loadFonts(); + AppFont.init(); AppTheme.init(); AppStyle.init(); AppImages.init();