fix updater versionstring

This commit is contained in:
Anthony Calosa
2024-10-21 12:14:17 +08:00
parent 1979c23389
commit f82236cc4f
5 changed files with 24 additions and 6 deletions

View File

@@ -611,6 +611,11 @@ public class Main extends ForgeAndroidApplication {
return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"; return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
} }
@Override
public String getVersionString() {
return versionString;
}
@Override @Override
public boolean openFile(String filename) { public boolean openFile(String filename) {
try { try {

View File

@@ -73,6 +73,11 @@ public class Main extends IOSApplication.Delegate {
return new IOSFiles().getExternalStoragePath(); return new IOSFiles().getExternalStoragePath();
} }
@Override
public String getVersionString() {
return "0.0";
}
@Override @Override
public boolean openFile(final String filename) { public boolean openFile(final String filename) {
return new IOSFiles().local(filename).exists(); return new IOSFiles().local(filename).exists();

View File

@@ -2,6 +2,7 @@ package forge.app;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import forge.interfaces.IDeviceAdapter; import forge.interfaces.IDeviceAdapter;
import forge.util.BuildInfo;
import forge.util.FileUtil; import forge.util.FileUtil;
import forge.util.JVMOptions; import forge.util.JVMOptions;
import forge.util.OperatingSystem; import forge.util.OperatingSystem;
@@ -65,6 +66,11 @@ public class Main {
return System.getProperty("user.home") + "/Downloads/"; return System.getProperty("user.home") + "/Downloads/";
} }
@Override
public String getVersionString() {
return BuildInfo.getVersionString();
}
@Override @Override
public boolean openFile(String filename) { public boolean openFile(String filename) {
try { try {

View File

@@ -30,7 +30,8 @@ public class AssetsDownloader {
public static void checkForUpdates(final SplashScreen splashScreen) { public static void checkForUpdates(final SplashScreen splashScreen) {
if (Gdx.app.getType() == ApplicationType.Desktop && SHARE_DESKTOP_ASSETS) { return; } if (Gdx.app.getType() == ApplicationType.Desktop && SHARE_DESKTOP_ASSETS) { return; }
final boolean isSnapshots = Forge.CURRENT_VERSION.contains("SNAPSHOT"); final String versionString = Forge.getDeviceAdapter().getVersionString();
final boolean isSnapshots = versionString.contains("SNAPSHOT");
final String snapsURL = "https://downloads.cardforge.org/dailysnapshots/"; final String snapsURL = "https://downloads.cardforge.org/dailysnapshots/";
final String releaseURL = "https://releases.cardforge.org/forge/forge-gui-android/"; final String releaseURL = "https://releases.cardforge.org/forge/forge-gui-android/";
final String versionText = isSnapshots ? snapsURL + "version.txt" : releaseURL + "version.txt"; final String versionText = isSnapshots ? snapsURL + "version.txt" : releaseURL + "version.txt";
@@ -45,11 +46,11 @@ public class AssetsDownloader {
String version = FileUtil.readFileToString(versionUrl); String version = FileUtil.readFileToString(versionUrl);
String filename = "forge-android-" + version + "-signed-aligned.apk"; String filename = "forge-android-" + version + "-signed-aligned.apk";
String apkURL = isSnapshots ? snapsURL + filename : releaseURL + version + "/" + filename; String apkURL = isSnapshots ? snapsURL + filename : releaseURL + version + "/" + filename;
if (!StringUtils.isEmpty(version) && !Forge.CURRENT_VERSION.equals(version)) { if (!StringUtils.isEmpty(version) && !versionString.equals(version)) {
splashScreen.prepareForDialogs(); splashScreen.prepareForDialogs();
message = "A new version of Forge is available (" + version + ").\n" + message = "A new version of Forge is available (" + version + ").\n" +
"You are currently on an older version (" + Forge.CURRENT_VERSION + ").\n\n" + "You are currently on an older version (" + versionString + ").\n\n" +
"Would you like to update to the new version now?"; "Would you like to update to the new version now?";
if (!Forge.getDeviceAdapter().isConnectedToWifi()) { if (!Forge.getDeviceAdapter().isConnectedToWifi()) {
message += " If so, you may want to connect to wifi first. The download is around 12MB."; message += " If so, you may want to connect to wifi first. The download is around 12MB.";
@@ -85,7 +86,7 @@ public class AssetsDownloader {
return; return;
} }
} }
else if (Forge.CURRENT_VERSION.equals(FileUtil.readFileToString(versionFile)) && FSkin.getSkinDir() != null) { else if (versionString.equals(FileUtil.readFileToString(versionFile)) && FSkin.getSkinDir() != null) {
return; //if version matches what had been previously saved and FSkin isn't requesting assets download, no need to download assets return; //if version matches what had been previously saved and FSkin isn't requesting assets download, no need to download assets
} }
@@ -143,7 +144,7 @@ public class AssetsDownloader {
//allow deletion on Android 10 or if using app-specific directory //allow deletion on Android 10 or if using app-specific directory
boolean allowDeletion = Forge.androidVersion < 30 || GuiBase.isUsingAppDirectory(); boolean allowDeletion = Forge.androidVersion < 30 || GuiBase.isUsingAppDirectory();
String assetURL = isSnapshots ? snapsURL + "assets.zip" : releaseURL + Forge.CURRENT_VERSION + "/" + "assets.zip"; String assetURL = isSnapshots ? snapsURL + "assets.zip" : releaseURL + versionString + "/" + "assets.zip";
new GuiDownloadZipService("", "resource files", assetURL, new GuiDownloadZipService("", "resource files", assetURL,
ForgeConstants.ASSETS_DIR, ForgeConstants.RES_DIR, splashScreen.getProgressBar(), allowDeletion).downloadAndUnzip(); ForgeConstants.ASSETS_DIR, ForgeConstants.RES_DIR, splashScreen.getProgressBar(), allowDeletion).downloadAndUnzip();
@@ -158,7 +159,7 @@ public class AssetsDownloader {
//save version string to file once assets finish downloading //save version string to file once assets finish downloading
//so they don't need to be re-downloaded until you upgrade again //so they don't need to be re-downloaded until you upgrade again
FileUtil.writeFile(versionFile, Forge.CURRENT_VERSION); FileUtil.writeFile(versionFile, versionString);
//add restart after assets update //add restart after assets update
String msg = allowDeletion ? "Resource update finished..." : "Forge misses some files for deletion.\nIf you encounter issues, try deleting the Forge/res folder and/or deleting Forge/cache/fonts folder and try to download and update the assets."; String msg = allowDeletion ? "Resource update finished..." : "Forge misses some files for deletion.\nIf you encounter issues, try deleting the Forge/res folder and/or deleting Forge/cache/fonts folder and try to download and update the assets.";

View File

@@ -12,6 +12,7 @@ public interface IDeviceAdapter {
boolean isConnectedToWifi(); boolean isConnectedToWifi();
boolean isTablet(); boolean isTablet();
String getDownloadsDir(); String getDownloadsDir();
String getVersionString();
boolean openFile(String filename); boolean openFile(String filename);
void setLandscapeMode(boolean landscapeMode); void setLandscapeMode(boolean landscapeMode);
void preventSystemSleep(boolean preventSleep); void preventSystemSleep(boolean preventSleep);