Skip to content
This repository has been archived by the owner on Nov 20, 2024. It is now read-only.

Commit

Permalink
Update to 2024.7-beta.8: Add first run wizard
Browse files Browse the repository at this point in the history
  • Loading branch information
danieldieeins committed Jun 27, 2024
1 parent 1f6558e commit 2ac72da
Show file tree
Hide file tree
Showing 31 changed files with 683 additions and 103 deletions.
31 changes: 2 additions & 29 deletions application-main/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</parent>

<artifactId>application-main</artifactId>
<version>2024.7-beta.7</version>
<version>2024.7-beta.8</version>

<properties>
<maven.compiler.source>17</maven.compiler.source>
Expand All @@ -21,37 +21,10 @@
<dependencies>
<dependency>
<groupId>com.zyneonstudios</groupId>
<artifactId>nexus-auth</artifactId>
<artifactId>nexus-smblib</artifactId>
<version>2024.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.zyneonstudios</groupId>
<artifactId>verget-all</artifactId>
<version>2024.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.zyneonstudios</groupId>
<artifactId>nexus-zyndex</artifactId>
<version>2024.6</version>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>fr.flowarg</groupId>
<artifactId>azuljavadownloader</artifactId>
<version>LATEST</version>
<scope>compile</scope>
</dependency>

<!--Dependencies to fix other dependencies-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>LATEST</version>
<scope>compile</scope>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
public class FrameConnector {

private final ApplicationFrame frame;
private ModuleSearch moduleSearch = new ModuleSearch("https://raw.githubusercontent.com/zyneonstudios/nexus-nex/main/zyndex/index.json");
private final ModuleSearch moduleSearch = new ModuleSearch("https://raw.githubusercontent.com/zyneonstudios/nexus-nex/main/zyndex/index.json");
private final NexusApplication application;

public FrameConnector(ApplicationFrame frame,NexusApplication application) {
Expand Down Expand Up @@ -108,19 +108,47 @@ private void sync(String request) {
}
String title = request_[1];
frame.setTitlebar(title,background,foreground);
} else if(request.startsWith("firstrun.")) {
request = request.replaceFirst("firstrun.","");
if(request.equals("theme")) {
frame.executeJavaScript("initThemeWizard();");
if(ApplicationConfig.getOS().startsWith("Linux")) {
boolean customFrame = true;
if(ApplicationConfig.getSettings().get("settings.linux.customFrame")!=null) {
try {
customFrame = ApplicationConfig.getSettings().getBool("settings.linux.customFrame");
} catch (Exception ignore) {}
}
frame.executeJavaScript("initLinuxWizard('"+customFrame+"');");
}
} else if(request.startsWith("linuxFrame.")) {
request = request.replace("linuxFrame.","");
boolean frame = request.equals("on");
ApplicationConfig.getSettings().set("settings.linux.customFrame",frame);
ApplicationConfig.getSettings().set("cache.restartPage","firstrun.html?theme.colors="+ApplicationConfig.theme+"#linux");
application.restart(true);
} else if(request.equals("finished")) {
ApplicationConfig.getSettings().set("settings.setupFinished",true);
}
} else if(request.equals("exit")) {
NexusApplication.stop();
} else if(request.equals("refresh")) {
frame.getBrowser().loadURL(ApplicationConfig.urlBase+ApplicationConfig.language+"/"+ApplicationConfig.startPage);
} else if(request.equals("restart")) {
application.restart();
application.restart(false);
} else if(request.startsWith("settings.")) {
syncSettings(request.replaceFirst("settings.",""));
} else if(request.startsWith("autoUpdates.")) {
request = request.replace("autoUpdates.","");
boolean update = request.equals("on");
ApplicationConfig.getUpdateSettings().set("updater.settings.autoUpdate",update);
frame.executeJavaScript("document.getElementById('updater-settings-enable-updates').checked = "+update+";");
} else if(request.startsWith("linuxFrame.")) {
request = request.replace("linuxFrame.","");
boolean frame = request.equals("on");
ApplicationConfig.getSettings().set("settings.linux.customFrame",frame);
ApplicationConfig.getSettings().set("cache.restartPage","settings.html");
application.restart(true);
} else if(request.startsWith("discover.")) {
syncDiscover(request.replaceFirst("discover.",""));
} else if(request.startsWith("updateChannel.")) {
Expand All @@ -146,6 +174,13 @@ private void syncSettings(String request) {
if(ApplicationConfig.getUpdateSettings().getString("updater.settings.updateChannel")!=null) {
channel = ApplicationConfig.getUpdateSettings().getString("updater.settings.updateChannel");
}
if(ApplicationConfig.getOS().startsWith("Linux")) {
boolean linuxCustomFrame = true;
if (ApplicationConfig.getSettings().get("settings.linux.customFrame") != null) {
linuxCustomFrame = ApplicationConfig.getSettings().getBool("settings.linux.customFrame");
}
frame.executeJavaScript("document.getElementById('linux-settings-custom-frame').style.display = 'inherit'; linuxFrame = "+linuxCustomFrame+"; document.getElementById('linux-settings-enable-custom-frame').checked = linuxFrame;");
}
frame.executeJavaScript("updates = "+autoUpdate+"; document.getElementById('updater-settings-enable-updates').checked = updates; document.getElementById('updater-settings-update-channel').value = \""+channel+"\"; document.getElementById('updater-settings').style.display = 'inherit'; document.getElementById('general-settings-start-page').value = '"+ApplicationConfig.startPage+"'; document.getElementById('updater-settings').style.display = 'inherit';");
} else if(request.equals("about")) {
frame.executeJavaScript("document.getElementById('settings-global-application-version').innerText = \""+ApplicationConfig.getApplicationVersion()+"\"");
Expand Down Expand Up @@ -186,6 +221,7 @@ private void syncDiscover(String request) {
}
}

@SuppressWarnings("all")
private void initDetails(String name, String id, String type, String version, String summary, String authors, boolean isHidden, String tags, String description, String changelog, String versions, String customInfoHTML, String customInfoCardHTML, String background, String icon, String logo) {
String url = ApplicationConfig.urlBase+ApplicationConfig.language+"/sub-details.html";
if(name!=null) {
Expand Down Expand Up @@ -232,7 +268,6 @@ private void initDetails(String name, String id, String type, String version, St
if(background!=null) {
String b = "&background="+formatForDetails(background);
url = url+b;
System.out.println(b);
}
if(icon!=null) {
url = url+"&icon="+formatForDetails(icon);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@
import java.awt.*;
import java.util.concurrent.CompletableFuture;

@SuppressWarnings("unused")
public class ApplicationFrame extends WebFrame {

private final FrameConnector connector;
private final NexusApplication application;

public ApplicationFrame(NexusApplication application, String url, String jcefPath) {
super(url, jcefPath, application);
this.application = application;
this.connector = new FrameConnector(this,application);
getClient().addDisplayHandler(new CefDisplayHandlerAdapter() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class CustomApplicationFrame extends ApplicationFrame {
public CustomApplicationFrame(NexusApplication application, String url, String jcefPath) {
super(application,url,jcefPath);
setUndecorated(true);
title = " Zyneon Application (v"+ApplicationConfig.getApplicationVersion()+")";
title = " Zyneon Application (v"+ApplicationConfig.getApplicationVersion()+", "+ApplicationConfig.getOS()+")";
JPanel customTitleBar = createCustomTitleBar();
getContentPane().add(customTitleBar, BorderLayout.NORTH);
addDragAndDropFunctionality();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.zyneonstudios.application.frame.web;

import com.zyneonstudios.application.main.ApplicationConfig;
import com.zyneonstudios.application.main.NexusApplication;
import live.nerotv.shademebaby.ShadeMeBaby;
import me.friwi.jcefmaven.CefAppBuilder;
Expand All @@ -22,6 +23,7 @@
import java.io.IOException;
import java.util.Objects;

@SuppressWarnings("unused")
public class WebFrame extends JFrame {

private CefApp app;
Expand Down Expand Up @@ -64,6 +66,11 @@ public void stateHasChanged(CefApp.CefAppState state) {
if (state == CefApp.CefAppState.TERMINATED) {
NexusApplication.stop();
}
if(!ApplicationConfig.getOS().startsWith("Windows")) {
if(state == CefApp.CefAppState.SHUTTING_DOWN) {
NexusApplication.stop();
}
}
}
});
setIconImage(ImageIO.read(Objects.requireNonNull(getClass().getResource("/logo.png"))).getScaledInstance(32, 32, Image.SCALE_SMOOTH));
Expand All @@ -76,9 +83,17 @@ public void stateHasChanged(CefApp.CefAppState state) {
app = builder.build();
client = app.createClient();
CefMessageRouter messageRouter = CefMessageRouter.create();
if(client==null) {
NexusApplication.getLogger().error("[WEBFRAME] Couldn't initialize WebFrame: CefClient client can't be null!");
System.exit(-1); return;
}
client.addMessageRouter(messageRouter);
browser = client.createBrowser(url, false, false);
client.addDragHandler((cefBrowser, dragData, i) -> dragData.isFile());
if(browser==null) {
NexusApplication.getLogger().error("[WEBFRAME] Couldn't initialize WebFrame: CefBrowser browser can't be null!");
System.exit(-1); return;
}
Component ui = browser.getUIComponent();
client.addFocusHandler(new CefFocusHandlerAdapter() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import java.util.Locale;
import java.util.UUID;

@SuppressWarnings("unused")
public record ApplicationConfig(String[] args) {

public static String language = "en";
Expand All @@ -27,7 +28,6 @@ public record ApplicationConfig(String[] args) {
private static Config configuration = null;
private static String os = null;
private static Config updateConfig = null;
private static Config properties = null;
private static String[] arguments = null;

public ApplicationConfig(String[] args) {
Expand Down Expand Up @@ -56,7 +56,7 @@ else if(arg.startsWith("--test")) {
NexusApplication.getLogger().debug("[CONFIG] Deleted old properties: "+new File(getApplicationPath() + "temp/nexus.json").delete());
}
FileUtil.extractResourceFile("nexus.json",getApplicationPath()+"temp/nexus.json", Main.class);
properties = new Config(new File(getApplicationPath() + "temp/nexus.json"));
Config properties = new Config(new File(getApplicationPath() + "temp/nexus.json"));
applicationVersion = properties.getString("version");

String lang = Locale.getDefault().toLanguageTag();
Expand Down
Loading

0 comments on commit 2ac72da

Please sign in to comment.