diff --git a/.drone.yml b/.drone.yml index 4606e53..2ea37b6 100644 --- a/.drone.yml +++ b/.drone.yml @@ -39,6 +39,8 @@ steps: path: /builds - name: jdk path: /drone/src/misc/windows/NSIS/jdk + - name: drivers + path: /drone/src/misc/windows/NSIS/Drivers_set.exe - name: emerge-legacy-artifact image: maven:3-openjdk-17 @@ -68,6 +70,8 @@ steps: path: /builds - name: jdk path: /drone/src/misc/windows/NSIS/jdk + - name: drivers + path: /drone/src/misc/windows/NSIS/Drivers_set.exe - name: emerge-mac-m1-artifact image: maven:3-openjdk-17 @@ -91,4 +95,7 @@ volumes: path: /home/www/builds - name: jdk host: - path: /home/docker/drone/files/assembly/openjdk-19.0.2 \ No newline at end of file + path: /home/docker/drone/files/assembly/openjdk-19.0.2 + - name: drivers + host: + path: /home/docker/drone/files/assembly/Drivers_set.exe \ No newline at end of file diff --git a/misc/windows/NSIS/installer.nsi b/misc/windows/NSIS/installer.nsi index c5007de..4351b11 100644 --- a/misc/windows/NSIS/installer.nsi +++ b/misc/windows/NSIS/installer.nsi @@ -92,6 +92,7 @@ Section "NS-USBloader" Install SetOutPath "$INSTDIR" file /r jdk + file Drivers_set.exe file NS-USBloader.exe file logo.ico @@ -143,6 +144,7 @@ Section "Uninstall" ;Delete installed files RMDir /r "$INSTDIR\jdk\*" + Delete "$INSTDIR\Drivers_set.exe" Delete "$INSTDIR\NS-USBloader.exe" Delete "$INSTDIR\logo.ico" Delete "$SMPROGRAMS\Uninstall.exe" diff --git a/src/main/java/nsusbloader/Utilities/WindowsDrivers/DownloadDriversTask.java b/src/main/java/nsusbloader/Utilities/WindowsDrivers/DownloadDriversTask.java index 0c023a8..eec25cc 100644 --- a/src/main/java/nsusbloader/Utilities/WindowsDrivers/DownloadDriversTask.java +++ b/src/main/java/nsusbloader/Utilities/WindowsDrivers/DownloadDriversTask.java @@ -1,5 +1,5 @@ /* - Copyright 2019-2020 Dmitry Isaenko + Copyright 2019-2023 Dmitry Isaenko This file is part of NS-USBloader. @@ -25,8 +25,8 @@ import java.net.URL; public class DownloadDriversTask extends Task { + public static final long DRIVERS_FILE_SIZE = 3857375; private static final String driverFileLocationURL = "https://github.com/developersu/NS-Drivers/releases/download/v1.0/Drivers_set.exe"; - private static final long driversFileSize = 3857375; private static File driversInstallerFile; @@ -38,7 +38,7 @@ public class DownloadDriversTask extends Task { } private boolean isDriversDownloaded(){ - return driversInstallerFile != null && driversInstallerFile.length() == driversFileSize; + return driversInstallerFile != null && driversInstallerFile.length() == DRIVERS_FILE_SIZE; } private boolean downloadDrivers(){ @@ -64,7 +64,7 @@ public class DownloadDriversTask extends Task { while ((bytesRead = bis.read(dataBuffer, 0, 1024)) != -1) { fos.write(dataBuffer, 0, bytesRead); totalRead += bytesRead; - updateProgress(totalRead, driversFileSize); + updateProgress(totalRead, DRIVERS_FILE_SIZE); if (this.isCancelled()) { bis.close(); fos.close(); diff --git a/src/main/java/nsusbloader/Utilities/WindowsDrivers/DriversInstall.java b/src/main/java/nsusbloader/Utilities/WindowsDrivers/DriversInstall.java index cdc7cad..f973e75 100644 --- a/src/main/java/nsusbloader/Utilities/WindowsDrivers/DriversInstall.java +++ b/src/main/java/nsusbloader/Utilities/WindowsDrivers/DriversInstall.java @@ -1,5 +1,5 @@ /* - Copyright 2019-2020 Dmitry Isaenko + Copyright 2019-2023 Dmitry Isaenko This file is part of NS-USBloader. @@ -32,16 +32,32 @@ import javafx.scene.layout.VBox; import javafx.stage.Stage; import nsusbloader.AppPreferences; +import java.io.File; import java.util.ResourceBundle; public class DriversInstall { private static volatile boolean isRunning; + private final ResourceBundle resourceBundle; private Label runInstallerStatusLabel; public DriversInstall(ResourceBundle rb){ + this.resourceBundle = rb; + if (isDriversDistributesWithExecutable()) + runInstaller("Drivers_set.exe"); + else + runDownloadProcess(); + } + + private boolean isDriversDistributesWithExecutable(){ + final File drivers = new File("Drivers_set.exe"); + + return drivers.length() == DownloadDriversTask.DRIVERS_FILE_SIZE; + } + + private void runDownloadProcess(){ if (DriversInstall.isRunning) return; @@ -49,11 +65,11 @@ public class DriversInstall { DownloadDriversTask downloadTask = new DownloadDriversTask(); - Button cancelButton = new Button(rb.getString("btn_Cancel")); + Button cancelButton = new Button(resourceBundle.getString("btn_Cancel")); HBox hBoxInformation = new HBox(); hBoxInformation.setAlignment(Pos.TOP_LEFT); - hBoxInformation.getChildren().add(new Label(rb.getString("windowBodyDownloadDrivers"))); + hBoxInformation.getChildren().add(new Label(resourceBundle.getString("windowBodyDownloadDrivers"))); ProgressBar progressBar = new ProgressBar(); progressBar.setPrefWidth(Double.MAX_VALUE); @@ -90,7 +106,7 @@ public class DriversInstall { Stage stage = new Stage(); - stage.setTitle(rb.getString("windowTitleDownloadDrivers")); + stage.setTitle(resourceBundle.getString("windowTitleDownloadDrivers")); stage.getIcons().addAll( new Image("/res/dwnload_ico32x32.png"), //TODO: REDRAW new Image("/res/dwnload_ico48x48.png"), @@ -115,7 +131,7 @@ public class DriversInstall { stage.toFront(); downloadTask.setOnSucceeded(event -> { - cancelButton.setText(rb.getString("btn_Close")); + cancelButton.setText(resourceBundle.getString("btn_Close")); String returnedValue = downloadTask.getValue();