This commit is contained in:
ShirosakiMio 2024-01-31 08:25:41 +08:00
commit ee97d6ebfa
16 changed files with 79 additions and 22 deletions

View File

@ -0,0 +1 @@
1

View File

@ -50,24 +50,9 @@ public class ShellActivity extends FCLActivity {
if (cmd.endsWith("\n")) {
logWindow.appendLog("->" + cmd);
editText.setText("");
String javaDir = FCLPath.RUNTIME_DIR + "/java";
if (cmd.contains("clear")) {
logWindow.cleanLog();
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);
}

View File

@ -30,6 +30,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
boolean lwjgl = false;
boolean cacio = false;
boolean cacio11 = false;
boolean cacio17 = false;
boolean java8 = false;
boolean java11 = false;
@ -38,6 +39,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
private FCLProgressBar lwjglProgress;
private FCLProgressBar cacioProgress;
private FCLProgressBar cacio11Progress;
private FCLProgressBar cacio17Progress;
private FCLProgressBar java8Progress;
private FCLProgressBar java11Progress;
@ -46,6 +48,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
private FCLImageView lwjglState;
private FCLImageView cacioState;
private FCLImageView cacio11State;
private FCLImageView cacio17State;
private FCLImageView java8State;
private FCLImageView java11State;
@ -61,6 +64,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
lwjglProgress = findViewById(view, R.id.lwjgl_progress);
cacioProgress = findViewById(view, R.id.cacio_progress);
cacio11Progress = findViewById(view, R.id.cacio11_progress);
cacio17Progress = findViewById(view, R.id.cacio17_progress);
java8Progress = findViewById(view, R.id.java8_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);
cacioState = findViewById(view, R.id.cacio_state);
cacio11State = findViewById(view, R.id.cacio11_state);
cacio17State = findViewById(view, R.id.cacio17_state);
java8State = findViewById(view, R.id.java8_state);
java11State = findViewById(view, R.id.java11_state);
@ -91,6 +96,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
try {
lwjgl = RuntimeUtils.isLatest(FCLPath.LWJGL_DIR, "/assets/app_runtime/lwjgl");
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");
java8 = RuntimeUtils.isLatest(FCLPath.JAVA_8_PATH, "/assets/app_runtime/java/jre8");
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);
cacioState.setBackgroundDrawable(cacio ? stateDone : stateUpdate);
cacio11State.setBackgroundDrawable(cacio11 ? stateDone : stateUpdate);
cacio17State.setBackgroundDrawable(cacio17 ? stateDone : stateUpdate);
java8State.setBackgroundDrawable(java8 ? stateDone : stateUpdate);
java11State.setBackgroundDrawable(java11 ? stateDone : stateUpdate);
@ -120,7 +127,7 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
}
private boolean isLatest() {
return lwjgl && cacio && cacio17 && java8 && java11 && java17 && java21;
return lwjgl && cacio && cacio11 && cacio17 && java8 && java11 && java17 && java21;
}
private void check() {
@ -178,6 +185,26 @@ public class RuntimeFragment extends FCLFragment implements View.OnClickListener
}
}).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) {
cacio17State.setVisibility(View.GONE);
cacio17Progress.setVisibility(View.VISIBLE);

View File

@ -14,7 +14,6 @@ import com.tungsten.fclcore.util.platform.MemoryUtils;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@ -64,7 +63,7 @@ public class JarExecutorLauncher extends Launcher {
if (isJava8) {
res.addDefault("-Dawt.toolkit=", "net.java.openjdk.cacio.ctc.CTCToolkit");
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("-Djava.awt.graphicsenv=", "com.github.caciocavallosilano.cacio.ctc.CTCGraphicsEnvironment");
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();
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()) {
for (File file : Objects.requireNonNull(cacioDir.listFiles())) {
if (file.getName().endsWith(".jar")) {

View File

@ -97,6 +97,47 @@
</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
android:layout_width="match_parent"
android:layout_height="1dp"

View File

@ -10,6 +10,7 @@
<string name="splash_runtime_title">Install or update app runtime</string>
<string name="splash_runtime_lwjgl" translatable="false">LWJGL</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_java8" translatable="false">JRE 8</string>
<string name="splash_runtime_java11" translatable="false">JRE 11</string>

View File

@ -237,7 +237,7 @@ public class DefaultLauncher extends Launcher {
if (isJava8) {
res.addDefault("-Dawt.toolkit=", "net.java.openjdk.cacio.ctc.CTCToolkit");
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("-Djava.awt.graphicsenv=", "com.github.caciocavallosilano.cacio.ctc.CTCGraphicsEnvironment");
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();
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()) {
for (File file : Objects.requireNonNull(cacioDir.listFiles())) {
if (file.getName().endsWith(".jar")) {

View File

@ -21,6 +21,7 @@ public class FCLPath {
public static String JAVA_21_PATH;
public static String LWJGL_DIR;
public static String CACIOCAVALLO_8_DIR;
public static String CACIOCAVALLO_11_DIR;
public static String CACIOCAVALLO_17_DIR;
public static String FILES_DIR;
@ -51,6 +52,7 @@ public class FCLPath {
JAVA_21_PATH = RUNTIME_DIR + "/java/jre21";
LWJGL_DIR = RUNTIME_DIR + "/lwjgl";
CACIOCAVALLO_8_DIR = RUNTIME_DIR + "/caciocavallo";
CACIOCAVALLO_11_DIR = RUNTIME_DIR + "/caciocavallo11";
CACIOCAVALLO_17_DIR = RUNTIME_DIR + "/caciocavallo17";
FILES_DIR = context.getFilesDir().getAbsolutePath();
@ -74,6 +76,7 @@ public class FCLPath {
init(JAVA_21_PATH);
init(LWJGL_DIR);
init(CACIOCAVALLO_8_DIR);
init(CACIOCAVALLO_11_DIR);
init(CACIOCAVALLO_17_DIR);
init(FILES_DIR);
init(PLUGIN_DIR);