From 43c4ec10897d6c78cd7ffcc070d1332af4a11322 Mon Sep 17 00:00:00 2001
From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com.>
Date: Fri, 13 Dec 2024 11:31:49 +0000
Subject: [PATCH] fixes!

---
 build.gradle                                       | 11 ++++++++---
 .../stirling/software/SPDF/SPdfApplication.java    | 14 +++++++++-----
 .../software/SPDF/UI/impl/DesktopBrowser.java      | 14 +++++++++-----
 3 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/build.gradle b/build.gradle
index 24e23523..8d841aa2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -27,7 +27,7 @@ ext {
 }
 
 group = "stirling.software"
-version = "0.36.0"
+version = "0.36.1"
 
 
 java {
@@ -117,7 +117,11 @@ jpackage {
     // JVM Options
     javaOptions = [
         "-DBROWSER_OPEN=true",
-        "-DSTIRLING_PDF_DESKTOP_UI=true"
+        "-DSTIRLING_PDF_DESKTOP_UI=true",
+        "-Djava.awt.headless=false",
+        "--add-opens", "java.base/java.lang=ALL-UNNAMED",
+        "--add-opens", "java.desktop/java.awt.event=ALL-UNNAMED",
+        "--add-opens", "java.desktop/sun.awt=ALL-UNNAMED"
     ]
 
     // Enable verbose output
@@ -127,8 +131,9 @@ jpackage {
 
     // Windows-specific configuration
     windows {
+    	launcherAsService = false
     	appVersion = project.version
-        winConsole = true
+        winConsole = false
         winDirChooser = true
         winMenu = true
         winShortcut = true
diff --git a/src/main/java/stirling/software/SPDF/SPdfApplication.java b/src/main/java/stirling/software/SPDF/SPdfApplication.java
index f39c0e18..bb977c6b 100644
--- a/src/main/java/stirling/software/SPDF/SPdfApplication.java
+++ b/src/main/java/stirling/software/SPDF/SPdfApplication.java
@@ -79,11 +79,11 @@ public class SPdfApplication {
 
         Properties props = new Properties();
 
-        if ("true".equals(System.getenv("STIRLING_PDF_DESKTOP_UI"))) {
+        if (Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) {
             System.setProperty("java.awt.headless", "false");
             app.setHeadless(false);
-            //            props.put("java.awt.headless", "false");
-            //            props.put("spring.main.web-application-type", "servlet");
+            props.put("java.awt.headless", "false");
+            props.put("spring.main.web-application-type", "servlet");
         }
 
         app.setAdditionalProfiles("default");
@@ -118,7 +118,7 @@ public class SPdfApplication {
                             propertyFiles.get("spring.config.additional-location")));
         }
 
-        if (props.isEmpty()) {
+        if (!props.isEmpty()) {
             finalProps.putAll(props);
         }
         app.setDefaultProperties(finalProps);
@@ -147,9 +147,13 @@ public class SPdfApplication {
 
     @PostConstruct
     public void init() {
+        log.info(
+                "1 STIRLING_PDF_DESKTOP_UI={}",
+                Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false")));
         baseUrlStatic = this.baseUrl;
         String url = baseUrl + ":" + getStaticPort();
-        if (webBrowser != null && "true".equals(System.getenv("STIRLING_PDF_DESKTOP_UI"))) {
+        if (webBrowser != null
+                && Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) {
 
             webBrowser.initWebUI(url);
         }
diff --git a/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java b/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java
index 835c36a9..1090103d 100644
--- a/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java
+++ b/src/main/java/stirling/software/SPDF/UI/impl/DesktopBrowser.java
@@ -58,10 +58,12 @@ public class DesktopBrowser implements WebBrowser {
     private static SystemTray systemTray;
 
     public DesktopBrowser() {
+        log.info("DesktopBrowser 1");
         SwingUtilities.invokeLater(
                 () -> {
                     loadingWindow = new LoadingWindow(null, "Initializing...");
                     loadingWindow.setVisible(true);
+                    log.info("DesktopBrowser 2");
                 });
     }
 
@@ -69,6 +71,7 @@ public class DesktopBrowser implements WebBrowser {
         CompletableFuture.runAsync(
                 () -> {
                     try {
+                        log.info("DesktopBrowser 4");
                         CefAppBuilder builder = new CefAppBuilder();
                         configureCefSettings(builder);
 
@@ -91,7 +94,7 @@ public class DesktopBrowser implements WebBrowser {
                                     // Show the frame immediately but transparent
                                     frame.setVisible(true);
                                 });
-
+                        log.info("DesktopBrowser 5");
                     } catch (Exception e) {
                         log.error("Error initializing JCEF browser: ", e);
                         cleanup();
@@ -153,27 +156,28 @@ public class DesktopBrowser implements WebBrowser {
                 Objects.requireNonNull(state, "state cannot be null");
                 SwingUtilities.invokeLater(
                         () -> {
+                            log.info("state {}", state.name());
                             if (loadingWindow != null) {
                                 switch (state) {
                                     case LOCATING:
-                                        loadingWindow.setStatus("Locating Chromium...");
+                                        loadingWindow.setStatus("Locating Files...");
                                         loadingWindow.setProgress(0);
                                         break;
                                     case DOWNLOADING:
                                         if (percent >= 0) {
                                             loadingWindow.setStatus(
                                                     String.format(
-                                                            "Downloading Chromium: %.0f%%",
+                                                            "Downloading additional files: %.0f%%",
                                                             percent));
                                             loadingWindow.setProgress((int) percent);
                                         }
                                         break;
                                     case EXTRACTING:
-                                        loadingWindow.setStatus("Extracting Chromium...");
+                                        loadingWindow.setStatus("Extracting files...");
                                         loadingWindow.setProgress(60);
                                         break;
                                     case INITIALIZING:
-                                        loadingWindow.setStatus("Initializing browser...");
+                                        loadingWindow.setStatus("Initializing UI...");
                                         loadingWindow.setProgress(80);
                                         break;
                                     case INITIALIZED: