Merge branch 'main' of https://github.com/FCL-Team/FoldCraftLauncher
This commit is contained in:
commit
ee97d6ebfa
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
1
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
||||||
2
|
3
|
|
@ -50,24 +50,9 @@ public class ShellActivity extends FCLActivity {
|
||||||
if (cmd.endsWith("\n")) {
|
if (cmd.endsWith("\n")) {
|
||||||
logWindow.appendLog("->" + cmd);
|
logWindow.appendLog("->" + cmd);
|
||||||
editText.setText("");
|
editText.setText("");
|
||||||
String javaDir = FCLPath.RUNTIME_DIR + "/java";
|
|
||||||
if (cmd.contains("clear")) {
|
if (cmd.contains("clear")) {
|
||||||
logWindow.cleanLog();
|
logWindow.cleanLog();
|
||||||
return;
|
return;
|
||||||
} else if (cmd.contains("java21")) {
|
|
||||||
shellUtil.append("cd " + javaDir);
|
|
||||||
if (!new File(javaDir, "jre21").exists() && !new File(javaDir, "jre17_").exists()) {
|
|
||||||
shellUtil.append("cp " + new File(new File(FCLPath.SHARED_COMMON_DIR).getParentFile(), "jre21.zip").getAbsolutePath() + " ./");
|
|
||||||
shellUtil.append("unzip jre21.zip");
|
|
||||||
}
|
|
||||||
shellUtil.append("mv jre17 jre17_");
|
|
||||||
shellUtil.append("mv jre21 jre17");
|
|
||||||
return;
|
|
||||||
} else if (cmd.contains("java17")) {
|
|
||||||
shellUtil.append("cd " + javaDir);
|
|
||||||
shellUtil.append("mv jre17 jre21");
|
|
||||||
shellUtil.append("mv jre17_ jre17");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
shellUtil.append(cmd);
|
shellUtil.append(cmd);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
|
|
||||||
boolean lwjgl = false;
|
boolean lwjgl = false;
|
||||||
boolean cacio = false;
|
boolean cacio = false;
|
||||||
|
boolean cacio11 = false;
|
||||||
boolean cacio17 = false;
|
boolean cacio17 = false;
|
||||||
boolean java8 = false;
|
boolean java8 = false;
|
||||||
boolean java11 = false;
|
boolean java11 = false;
|
||||||
|
@ -38,6 +39,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
|
|
||||||
private FCLProgressBar lwjglProgress;
|
private FCLProgressBar lwjglProgress;
|
||||||
private FCLProgressBar cacioProgress;
|
private FCLProgressBar cacioProgress;
|
||||||
|
private FCLProgressBar cacio11Progress;
|
||||||
private FCLProgressBar cacio17Progress;
|
private FCLProgressBar cacio17Progress;
|
||||||
private FCLProgressBar java8Progress;
|
private FCLProgressBar java8Progress;
|
||||||
private FCLProgressBar java11Progress;
|
private FCLProgressBar java11Progress;
|
||||||
|
@ -46,6 +48,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
|
|
||||||
private FCLImageView lwjglState;
|
private FCLImageView lwjglState;
|
||||||
private FCLImageView cacioState;
|
private FCLImageView cacioState;
|
||||||
|
private FCLImageView cacio11State;
|
||||||
private FCLImageView cacio17State;
|
private FCLImageView cacio17State;
|
||||||
private FCLImageView java8State;
|
private FCLImageView java8State;
|
||||||
private FCLImageView java11State;
|
private FCLImageView java11State;
|
||||||
|
@ -61,6 +64,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
|
|
||||||
lwjglProgress = findViewById(view, R.id.lwjgl_progress);
|
lwjglProgress = findViewById(view, R.id.lwjgl_progress);
|
||||||
cacioProgress = findViewById(view, R.id.cacio_progress);
|
cacioProgress = findViewById(view, R.id.cacio_progress);
|
||||||
|
cacio11Progress = findViewById(view, R.id.cacio11_progress);
|
||||||
cacio17Progress = findViewById(view, R.id.cacio17_progress);
|
cacio17Progress = findViewById(view, R.id.cacio17_progress);
|
||||||
java8Progress = findViewById(view, R.id.java8_progress);
|
java8Progress = findViewById(view, R.id.java8_progress);
|
||||||
java11Progress = findViewById(view, R.id.java11_progress);
|
java11Progress = findViewById(view, R.id.java11_progress);
|
||||||
|
@ -69,6 +73,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
|
|
||||||
lwjglState = findViewById(view, R.id.lwjgl_state);
|
lwjglState = findViewById(view, R.id.lwjgl_state);
|
||||||
cacioState = findViewById(view, R.id.cacio_state);
|
cacioState = findViewById(view, R.id.cacio_state);
|
||||||
|
cacio11State = findViewById(view, R.id.cacio11_state);
|
||||||
cacio17State = findViewById(view, R.id.cacio17_state);
|
cacio17State = findViewById(view, R.id.cacio17_state);
|
||||||
java8State = findViewById(view, R.id.java8_state);
|
java8State = findViewById(view, R.id.java8_state);
|
||||||
java11State = findViewById(view, R.id.java11_state);
|
java11State = findViewById(view, R.id.java11_state);
|
||||||
|
@ -91,6 +96,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
try {
|
try {
|
||||||
lwjgl = RuntimeUtils.isLatest(FCLPath.LWJGL_DIR, "/assets/app_runtime/lwjgl");
|
lwjgl = RuntimeUtils.isLatest(FCLPath.LWJGL_DIR, "/assets/app_runtime/lwjgl");
|
||||||
cacio = RuntimeUtils.isLatest(FCLPath.CACIOCAVALLO_8_DIR, "/assets/app_runtime/caciocavallo");
|
cacio = RuntimeUtils.isLatest(FCLPath.CACIOCAVALLO_8_DIR, "/assets/app_runtime/caciocavallo");
|
||||||
|
cacio11 = RuntimeUtils.isLatest(FCLPath.CACIOCAVALLO_11_DIR, "/assets/app_runtime/caciocavallo11");
|
||||||
cacio17 = RuntimeUtils.isLatest(FCLPath.CACIOCAVALLO_17_DIR, "/assets/app_runtime/caciocavallo17");
|
cacio17 = RuntimeUtils.isLatest(FCLPath.CACIOCAVALLO_17_DIR, "/assets/app_runtime/caciocavallo17");
|
||||||
java8 = RuntimeUtils.isLatest(FCLPath.JAVA_8_PATH, "/assets/app_runtime/java/jre8");
|
java8 = RuntimeUtils.isLatest(FCLPath.JAVA_8_PATH, "/assets/app_runtime/java/jre8");
|
||||||
java11 = RuntimeUtils.isLatest(FCLPath.JAVA_11_PATH, "/assets/app_runtime/java/jre11");
|
java11 = RuntimeUtils.isLatest(FCLPath.JAVA_11_PATH, "/assets/app_runtime/java/jre11");
|
||||||
|
@ -111,6 +117,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
|
|
||||||
lwjglState.setBackgroundDrawable(lwjgl ? stateDone : stateUpdate);
|
lwjglState.setBackgroundDrawable(lwjgl ? stateDone : stateUpdate);
|
||||||
cacioState.setBackgroundDrawable(cacio ? stateDone : stateUpdate);
|
cacioState.setBackgroundDrawable(cacio ? stateDone : stateUpdate);
|
||||||
|
cacio11State.setBackgroundDrawable(cacio11 ? stateDone : stateUpdate);
|
||||||
cacio17State.setBackgroundDrawable(cacio17 ? stateDone : stateUpdate);
|
cacio17State.setBackgroundDrawable(cacio17 ? stateDone : stateUpdate);
|
||||||
java8State.setBackgroundDrawable(java8 ? stateDone : stateUpdate);
|
java8State.setBackgroundDrawable(java8 ? stateDone : stateUpdate);
|
||||||
java11State.setBackgroundDrawable(java11 ? stateDone : stateUpdate);
|
java11State.setBackgroundDrawable(java11 ? stateDone : stateUpdate);
|
||||||
|
@ -120,7 +127,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isLatest() {
|
private boolean isLatest() {
|
||||||
return lwjgl && cacio && cacio17 && java8 && java11 && java17 && java21;
|
return lwjgl && cacio && cacio11 && cacio17 && java8 && java11 && java17 && java21;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void check() {
|
private void check() {
|
||||||
|
@ -178,6 +185,26 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
|
if (!cacio11) {
|
||||||
|
cacio11State.setVisibility(View.GONE);
|
||||||
|
cacio11Progress.setVisibility(View.VISIBLE);
|
||||||
|
new Thread(() -> {
|
||||||
|
try {
|
||||||
|
RuntimeUtils.install(getContext(), FCLPath.CACIOCAVALLO_11_DIR, "app_runtime/caciocavallo11");
|
||||||
|
cacio11 = true;
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (getActivity() != null) {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
cacio11State.setVisibility(View.VISIBLE);
|
||||||
|
cacio11Progress.setVisibility(View.GONE);
|
||||||
|
refreshDrawables();
|
||||||
|
check();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
if (!cacio17) {
|
if (!cacio17) {
|
||||||
cacio17State.setVisibility(View.GONE);
|
cacio17State.setVisibility(View.GONE);
|
||||||
cacio17Progress.setVisibility(View.VISIBLE);
|
cacio17Progress.setVisibility(View.VISIBLE);
|
||||||
|
|
|
@ -14,7 +14,6 @@ import com.tungsten.fclcore.util.platform.MemoryUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@ -64,7 +63,7 @@ public class JarExecutorLauncher extends Launcher {
|
||||||
if (isJava8) {
|
if (isJava8) {
|
||||||
res.addDefault("-Dawt.toolkit=", "net.java.openjdk.cacio.ctc.CTCToolkit");
|
res.addDefault("-Dawt.toolkit=", "net.java.openjdk.cacio.ctc.CTCToolkit");
|
||||||
res.addDefault("-Djava.awt.graphicsenv=", "net.java.openjdk.cacio.ctc.CTCGraphicsEnvironment");
|
res.addDefault("-Djava.awt.graphicsenv=", "net.java.openjdk.cacio.ctc.CTCGraphicsEnvironment");
|
||||||
} else if (!isJava11) {
|
} else {
|
||||||
res.addDefault("-Dawt.toolkit=", "com.github.caciocavallosilano.cacio.ctc.CTCToolkit");
|
res.addDefault("-Dawt.toolkit=", "com.github.caciocavallosilano.cacio.ctc.CTCToolkit");
|
||||||
res.addDefault("-Djava.awt.graphicsenv=", "com.github.caciocavallosilano.cacio.ctc.CTCGraphicsEnvironment");
|
res.addDefault("-Djava.awt.graphicsenv=", "com.github.caciocavallosilano.cacio.ctc.CTCGraphicsEnvironment");
|
||||||
res.addDefault("-Djava.system.class.loader=", "com.github.caciocavallosilano.cacio.ctc.CTCPreloadClassLoader");
|
res.addDefault("-Djava.system.class.loader=", "com.github.caciocavallosilano.cacio.ctc.CTCPreloadClassLoader");
|
||||||
|
@ -89,7 +88,7 @@ public class JarExecutorLauncher extends Launcher {
|
||||||
|
|
||||||
StringBuilder cacioClasspath = new StringBuilder();
|
StringBuilder cacioClasspath = new StringBuilder();
|
||||||
cacioClasspath.append("-Xbootclasspath/").append(isJava8 ? "p" : "a");
|
cacioClasspath.append("-Xbootclasspath/").append(isJava8 ? "p" : "a");
|
||||||
File cacioDir = new File(isJava8 ? FCLPath.CACIOCAVALLO_8_DIR : FCLPath.CACIOCAVALLO_17_DIR);
|
File cacioDir = new File(isJava8 ? FCLPath.CACIOCAVALLO_8_DIR : isJava11 ? FCLPath.CACIOCAVALLO_11_DIR : FCLPath.CACIOCAVALLO_17_DIR);
|
||||||
if (cacioDir.exists() && cacioDir.isDirectory()) {
|
if (cacioDir.exists() && cacioDir.isDirectory()) {
|
||||||
for (File file : Objects.requireNonNull(cacioDir.listFiles())) {
|
for (File file : Objects.requireNonNull(cacioDir.listFiles())) {
|
||||||
if (file.getName().endsWith(".jar")) {
|
if (file.getName().endsWith(".jar")) {
|
||||||
|
|
|
@ -97,6 +97,47 @@
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="@android:color/darker_gray"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.tungsten.fcllibrary.component.view.FCLTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/splash_runtime_cacio11"
|
||||||
|
android:layout_gravity="center"/>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"/>
|
||||||
|
|
||||||
|
<com.tungsten.fcllibrary.component.view.FCLProgressBar
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:id="@+id/cacio11_progress"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginStart="10dp"/>
|
||||||
|
|
||||||
|
<com.tungsten.fcllibrary.component.view.FCLImageView
|
||||||
|
app:auto_src_tint="false"
|
||||||
|
android:tint="@android:color/darker_gray"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/cacio11_state"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginStart="10dp"/>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<string name="splash_runtime_title">Install or update app runtime</string>
|
<string name="splash_runtime_title">Install or update app runtime</string>
|
||||||
<string name="splash_runtime_lwjgl" translatable="false">LWJGL</string>
|
<string name="splash_runtime_lwjgl" translatable="false">LWJGL</string>
|
||||||
<string name="splash_runtime_cacio" translatable="false">Caciocavallo</string>
|
<string name="splash_runtime_cacio" translatable="false">Caciocavallo</string>
|
||||||
|
<string name="splash_runtime_cacio11" translatable="false">Caciocavallo 11</string>
|
||||||
<string name="splash_runtime_cacio17" translatable="false">Caciocavallo 17</string>
|
<string name="splash_runtime_cacio17" translatable="false">Caciocavallo 17</string>
|
||||||
<string name="splash_runtime_java8" translatable="false">JRE 8</string>
|
<string name="splash_runtime_java8" translatable="false">JRE 8</string>
|
||||||
<string name="splash_runtime_java11" translatable="false">JRE 11</string>
|
<string name="splash_runtime_java11" translatable="false">JRE 11</string>
|
||||||
|
|
|
@ -237,7 +237,7 @@ public class DefaultLauncher extends Launcher {
|
||||||
if (isJava8) {
|
if (isJava8) {
|
||||||
res.addDefault("-Dawt.toolkit=", "net.java.openjdk.cacio.ctc.CTCToolkit");
|
res.addDefault("-Dawt.toolkit=", "net.java.openjdk.cacio.ctc.CTCToolkit");
|
||||||
res.addDefault("-Djava.awt.graphicsenv=", "net.java.openjdk.cacio.ctc.CTCGraphicsEnvironment");
|
res.addDefault("-Djava.awt.graphicsenv=", "net.java.openjdk.cacio.ctc.CTCGraphicsEnvironment");
|
||||||
} else if (!isJava11) {
|
} else {
|
||||||
res.addDefault("-Dawt.toolkit=", "com.github.caciocavallosilano.cacio.ctc.CTCToolkit");
|
res.addDefault("-Dawt.toolkit=", "com.github.caciocavallosilano.cacio.ctc.CTCToolkit");
|
||||||
res.addDefault("-Djava.awt.graphicsenv=", "com.github.caciocavallosilano.cacio.ctc.CTCGraphicsEnvironment");
|
res.addDefault("-Djava.awt.graphicsenv=", "com.github.caciocavallosilano.cacio.ctc.CTCGraphicsEnvironment");
|
||||||
res.addDefault("-Djava.system.class.loader=", "com.github.caciocavallosilano.cacio.ctc.CTCPreloadClassLoader");
|
res.addDefault("-Djava.system.class.loader=", "com.github.caciocavallosilano.cacio.ctc.CTCPreloadClassLoader");
|
||||||
|
@ -262,7 +262,7 @@ public class DefaultLauncher extends Launcher {
|
||||||
|
|
||||||
StringBuilder cacioClasspath = new StringBuilder();
|
StringBuilder cacioClasspath = new StringBuilder();
|
||||||
cacioClasspath.append("-Xbootclasspath/").append(isJava8 ? "p" : "a");
|
cacioClasspath.append("-Xbootclasspath/").append(isJava8 ? "p" : "a");
|
||||||
File cacioDir = new File(isJava8 ? FCLPath.CACIOCAVALLO_8_DIR : FCLPath.CACIOCAVALLO_17_DIR);
|
File cacioDir = new File(isJava8 ? FCLPath.CACIOCAVALLO_8_DIR : isJava11 ? FCLPath.CACIOCAVALLO_11_DIR : FCLPath.CACIOCAVALLO_17_DIR);
|
||||||
if (cacioDir.exists() && cacioDir.isDirectory()) {
|
if (cacioDir.exists() && cacioDir.isDirectory()) {
|
||||||
for (File file : Objects.requireNonNull(cacioDir.listFiles())) {
|
for (File file : Objects.requireNonNull(cacioDir.listFiles())) {
|
||||||
if (file.getName().endsWith(".jar")) {
|
if (file.getName().endsWith(".jar")) {
|
||||||
|
|
|
@ -21,6 +21,7 @@ public class FCLPath {
|
||||||
public static String JAVA_21_PATH;
|
public static String JAVA_21_PATH;
|
||||||
public static String LWJGL_DIR;
|
public static String LWJGL_DIR;
|
||||||
public static String CACIOCAVALLO_8_DIR;
|
public static String CACIOCAVALLO_8_DIR;
|
||||||
|
public static String CACIOCAVALLO_11_DIR;
|
||||||
public static String CACIOCAVALLO_17_DIR;
|
public static String CACIOCAVALLO_17_DIR;
|
||||||
|
|
||||||
public static String FILES_DIR;
|
public static String FILES_DIR;
|
||||||
|
@ -51,6 +52,7 @@ public class FCLPath {
|
||||||
JAVA_21_PATH = RUNTIME_DIR + "/java/jre21";
|
JAVA_21_PATH = RUNTIME_DIR + "/java/jre21";
|
||||||
LWJGL_DIR = RUNTIME_DIR + "/lwjgl";
|
LWJGL_DIR = RUNTIME_DIR + "/lwjgl";
|
||||||
CACIOCAVALLO_8_DIR = RUNTIME_DIR + "/caciocavallo";
|
CACIOCAVALLO_8_DIR = RUNTIME_DIR + "/caciocavallo";
|
||||||
|
CACIOCAVALLO_11_DIR = RUNTIME_DIR + "/caciocavallo11";
|
||||||
CACIOCAVALLO_17_DIR = RUNTIME_DIR + "/caciocavallo17";
|
CACIOCAVALLO_17_DIR = RUNTIME_DIR + "/caciocavallo17";
|
||||||
|
|
||||||
FILES_DIR = context.getFilesDir().getAbsolutePath();
|
FILES_DIR = context.getFilesDir().getAbsolutePath();
|
||||||
|
@ -74,6 +76,7 @@ public class FCLPath {
|
||||||
init(JAVA_21_PATH);
|
init(JAVA_21_PATH);
|
||||||
init(LWJGL_DIR);
|
init(LWJGL_DIR);
|
||||||
init(CACIOCAVALLO_8_DIR);
|
init(CACIOCAVALLO_8_DIR);
|
||||||
|
init(CACIOCAVALLO_11_DIR);
|
||||||
init(CACIOCAVALLO_17_DIR);
|
init(CACIOCAVALLO_17_DIR);
|
||||||
init(FILES_DIR);
|
init(FILES_DIR);
|
||||||
init(PLUGIN_DIR);
|
init(PLUGIN_DIR);
|
||||||
|
|
Loading…
Reference in New Issue