Files
jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ApplicationInfo.java
2025-05-26 07:41:42 +02:00

193 lines
5.1 KiB
Java

/*
* Copyright (C) 2010-2025 JPEXS, All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
*/
package com.jpexs.decompiler.flash;
import java.io.IOException;
import java.util.Properties;
/**
* Application information
*
* @author JPEXS
*/
public class ApplicationInfo {
/**
* Application name
*/
public static final String APPLICATION_NAME = "JPEXS Free Flash Decompiler";
/**
* CLI application name
*/
public static final String CLI_APPLICATION_NAME = "@|blue JPEXS|@ @|green Free|@ @|red Flash Decompiler|@";
/**
* Short application name
*/
public static final String SHORT_APPLICATION_NAME = "FFDec";
/**
* Vendor
*/
public static final String VENDOR = "JPEXS";
/**
* Library version
*/
public static String libraryVersion = "";
/**
* Version
*/
public static String version = "";
/**
* Revision
*/
public static String revision = "";
/**
* Version major
*/
public static int version_major = 4;
/**
* Version minor
*/
public static int version_minor = 0;
/**
* Version release
*/
public static int version_release = 0;
/**
* Version build
*/
public static int version_build = 0;
/**
* Nightly
*/
public static boolean nightly = false;
/**
* CLI application version name
*/
public static String cliApplicationVerName;
/**
* Application version name
*/
public static String applicationVerName;
/**
* Short application version name
*/
public static String shortApplicationVerName;
/**
* Git hub project
*/
public static final String GIT_HUB_PROJECT = "jindrapetrik/jpexs-decompiler";
/**
* Project page
*/
public static final String PROJECT_PAGE = "https://github.com/" + GIT_HUB_PROJECT;
/**
* Project Wiki
*/
public static final String WIKI_PAGE = PROJECT_PAGE + "/wiki";
/**
* URL for checking new updates
*/
public static final String GITHUB_RELEASES_LATEST_URL = "https://api.github.com/repos/" + GIT_HUB_PROJECT + "/releases/latest";
/**
* URL for checking new updates
*/
public static final String GITHUB_RELEASES_URL = "https://api.github.com/repos/" + GIT_HUB_PROJECT + "/releases";
/**
* URL for doing update
*/
public static String UPDATE_URL = PROJECT_PAGE;
static {
loadProperties();
loadLibraryVersion();
}
/**
* Constructor.
*/
public ApplicationInfo() {
}
/**
* Loads library version
*/
private static void loadLibraryVersion() {
Properties prop = new Properties();
try {
prop.load(SWF.class.getResourceAsStream("/project.properties"));
String version = prop.getProperty("version");
int version_build = Integer.parseInt(prop.getProperty("version.build"));
boolean nightly = prop.getProperty("nightly").equals("true");
if (nightly) {
version = version + " nightly build " + version_build;
}
libraryVersion = version;
} catch (IOException | NullPointerException | NumberFormatException ex) {
// ignore
libraryVersion = "unknown";
}
}
/**
* Loads properties.
*/
private static void loadProperties() {
Properties prop = new Properties();
try {
prop.load(ApplicationInfo.class.getResourceAsStream("/project.properties"));
version = prop.getProperty("version");
revision = prop.getProperty("build");
version_major = Integer.parseInt(prop.getProperty("version.major"));
version_minor = Integer.parseInt(prop.getProperty("version.minor"));
version_release = Integer.parseInt(prop.getProperty("version.release"));
version_build = Integer.parseInt(prop.getProperty("version.build"));
nightly = prop.getProperty("nightly").equals("true");
if (nightly) {
version = version + " nightly build " + version_build;
}
} catch (IOException | NullPointerException | NumberFormatException ex) {
// ignore
version = "unknown";
}
cliApplicationVerName = CLI_APPLICATION_NAME + " v." + version;
applicationVerName = APPLICATION_NAME + " v." + version;
shortApplicationVerName = SHORT_APPLICATION_NAME + " v." + version;
}
}