- Bugs fixed.
This commit is contained in:
An Bui 2026-05-02 21:16:17 +07:00
parent 5b118c4b61
commit d00f5f4a22
8 changed files with 54 additions and 44 deletions

View file

@ -31,6 +31,8 @@ body:
description: What version of our software are you running?
options:
- Latest
- Beta
- 4.1.0
- 4.0.0
- 3.9.0
- 3.8.0

View file

@ -12,8 +12,8 @@ android {
applicationId "com.vectras.vm"
minSdk minApi
targetSdk targetApi
versionCode 113
versionName "4.0.9"
versionCode 114
versionName "4.1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true

View file

@ -1,9 +1,9 @@
#include <jni.h>
#include <unistd.h>
#include <thread>
#include <sys/auxv.h>
#if defined(__aarch64__)
#include <sys/auxv.h>
#include <asm/hwcap.h>
#elif defined(__x86_64__)
#include <cpuid.h>

View file

@ -151,7 +151,7 @@ public class ExportRomActivity extends AppCompatActivity {
vmConfigMap.put("isUseLocalTime", current.isUseLocalTime);
vmConfigMap.put("isUseUefi", current.isUseUefi);
vmConfigMap.put("isUseDefaultBios", current.isUseDefaultBios);
vmConfigMap.put("qemu", VmFileManager.pathToTextMark(current.vmID, current.itemExtra));
vmConfigMap.put("qemu", VmFileManager.pathToTextMark(this, current.vmID, current.itemExtra));
vmConfigMap.put("arch", current.itemArch);
if (Objects.requireNonNull(binding.edAuthor.getText()).toString().isEmpty()) {
@ -189,7 +189,7 @@ public class ExportRomActivity extends AppCompatActivity {
String snapshotParams = FileUtils.readAFile(_filelist.get(_repeat));
snapshotParams = StartVM.removeQmpParams(snapshotParams);
snapshotParams = StartVM.removeDisplayParams(snapshotParams);
FileUtils.writeToFile(tempFolder, VmFileManager.SNAPSHOT_SH_FILE_NAME, snapshotParams.replace(getRomPath, VmFileManager.TEXT_MARK_VM_PATH));
FileUtils.writeToFile(tempFolder, VmFileManager.SNAPSHOT_SH_FILE_NAME, VmFileManager.pathToTextMark(this, current.vmID, snapshotParams));
pathList.add(tempFolder + VmFileManager.SNAPSHOT_SH_FILE_NAME);
}
} else if (_filelist.get(_repeat).endsWith(VmFileManager.CREATE_COMMAND_CONFIG_FILE_NAME)) {

View file

@ -55,11 +55,11 @@ public class ControlersOptionsFragment extends DialogFragment {
public void onClick(View v) {
MainSettingsManager.setControlMode(getActivity(), "H");
if (MainSettingsManager.getVmUi(getActivity()).equals("X11")) {
X11Activity.desktop.setVisibility(View.GONE);
X11Activity.gamepad.setVisibility(View.GONE);
if (X11Activity.desktop != null) X11Activity.desktop.setVisibility(View.GONE);
if (X11Activity.gamepad != null) X11Activity.gamepad.setVisibility(View.GONE);
} else if (MainSettingsManager.getVmUi(getActivity()).equals("VNC")) {
MainVNCActivity.desktop.setVisibility(View.GONE);
MainVNCActivity.gamepad.setVisibility(View.GONE);
if (MainVNCActivity.desktop != null) MainVNCActivity.desktop.setVisibility(View.GONE);
if (MainVNCActivity.gamepad != null) MainVNCActivity.gamepad.setVisibility(View.GONE);
}
alertDialog.cancel();
}

View file

@ -96,7 +96,7 @@ public class VMCreatorActivity extends AppCompatActivity {
return true;
} else if (id == R.id.add_file) {
try {
filePicker.launch("*/*");
filePicker.launch("*/*");
} catch (Exception e) {
IntentUtils.showErrorDialog(this);
}
@ -140,14 +140,14 @@ public class VMCreatorActivity extends AppCompatActivity {
binding.drive.setOnClickListener(v -> {
try {
diskPicker.launch("*/*");
diskPicker.launch("*/*");
} catch (Exception e) {
IntentUtils.showErrorDialog(this);
}
});
binding.driveField.setOnClickListener(v -> {
try {
diskPicker.launch("*/*");
diskPicker.launch("*/*");
} catch (Exception e) {
IntentUtils.showErrorDialog(this);
}
@ -339,7 +339,7 @@ public class VMCreatorActivity extends AppCompatActivity {
if (Objects.requireNonNull(getIntent().getStringExtra("romextra")).isEmpty()) {
setDefault();
} else {
binding.qemu.setText(VmFileManager.textMarkToPath(vmID, Objects.requireNonNull(getIntent().getStringExtra("romextra"))));
binding.qemu.setText(VmFileManager.textMarkToPath(this, vmID, Objects.requireNonNull(getIntent().getStringExtra("romextra"))));
}
binding.title.setText(getIntent().getStringExtra("romname"));
@ -645,7 +645,7 @@ public class VMCreatorActivity extends AppCompatActivity {
}
if (current.itemExtra != null) {
binding.qemu.setText(VmFileManager.textMarkToPath(vmID, current.itemExtra));
binding.qemu.setText(VmFileManager.textMarkToPath(this, vmID, current.itemExtra));
}
cpu = current.cpu;
@ -968,27 +968,27 @@ public class VMCreatorActivity extends AppCompatActivity {
}
});
} else {
if (!FileUtils.isValidFilePath(this, FileUtils.getPath(this, _content_describer), false)) {
DialogUtils.oneDialog(this,
getString(R.string.problem_has_been_detected),
getString(R.string.invalid_file_path_content),
getString(R.string.ok),
true,
R.drawable.warning_48px,
true,
null,
null);
return;
}
ProgressDialog progressDialog1 = new ProgressDialog(this);
progressDialog1.show();
new Thread(() -> {
File selectedFilePath = new File(getPath(_content_describer));
String path = getPath(_content_describer);
runOnUiThread(() -> {
progressDialog1.reset();
binding.drive.setText(selectedFilePath.getPath());
binding.driveField.setEndIconDrawable(R.drawable.more_vert_24px);
if (!FileUtils.isValidFilePath(this, path, false)) {
DialogUtils.oneDialog(this,
getString(R.string.problem_has_been_detected),
getString(R.string.invalid_file_path_content),
getString(R.string.ok),
true,
R.drawable.warning_48px,
true,
null,
null);
} else {
binding.drive.setText(path);
binding.driveField.setEndIconDrawable(R.drawable.more_vert_24px);
}
});
}).start();
}
@ -1121,7 +1121,7 @@ public class VMCreatorActivity extends AppCompatActivity {
binding.qemu.setText(Objects.requireNonNull(getIntent().getStringExtra("romextra")).replaceAll(Objects.requireNonNull(getIntent().getStringExtra("finalromfilename")), "\"" + _getDiskFile + "\""));
} else {
binding.drive.setText(_getDiskFile);
binding.qemu.setText(VmFileManager.textMarkToPath(vmID, Objects.requireNonNull(getIntent().getStringExtra("romextra"))));
binding.qemu.setText(VmFileManager.textMarkToPath(this, vmID, Objects.requireNonNull(getIntent().getStringExtra("romextra"))));
}
}
@ -1204,11 +1204,13 @@ public class VMCreatorActivity extends AppCompatActivity {
}
if (VmFileManager.isCreateCommandConfigFileExists(vmID)) {
FileUtils.writeToFile(VmFileManager.getPath(vmID), VmFileManager.CREATE_COMMAND_CONFIG_FILE_NAME, VmFileManager.textMarkToPath(vmID, FileUtils.readAFile(VmFileManager.getCreateCommandConfigFile(vmID))));
FileUtils.writeToFile(VmFileManager.getPath(vmID), VmFileManager.CREATE_COMMAND_CONFIG_FILE_NAME, VmFileManager.textMarkToPath(this, vmID, FileUtils.readAFile(VmFileManager.getCreateCommandConfigFile(vmID))));
}
if (VmFileManager.isSnapshotShExists(vmID)) {
FileUtils.writeToFile(VmFileManager.getPath(vmID), VmFileManager.SNAPSHOT_SH_FILE_NAME, VmFileManager.textMarkToPath(vmID, FileUtils.readAFile(VmFileManager.getSnapshotSh(vmID))));
String snapshotParams = FileUtils.readAFile(VmFileManager.getSnapshotSh(vmID));
if (snapshotParams.isEmpty()) return;
FileUtils.writeToFile(VmFileManager.getPath(vmID), VmFileManager.SNAPSHOT_SH_FILE_NAME, VmFileManager.textMarkToPath(this, vmID, snapshotParams));
}
}

View file

@ -21,6 +21,8 @@ public class VmFileManager {
public static final String CREATE_COMMAND_CONFIG_FILE_NAME = "cqcm.json";
public static final String LOG_FILE_NAME = "vm.log";
public static final String TEXT_MARK_VM_PATH = "OhnoIjustrealizeditsmidnightandIstillhavetodothis";
public static final String TEXT_MARK_EXTERNAL_DATA_PATH = "%external_data%";
public static final String TEXT_MARK_VM_TEMP_PATH = "%vm_temp%";
public static final String HIDE_VM_SUFFIX = "_";
@ -198,11 +200,15 @@ public class VmFileManager {
return VmFileManager.getPath(vmId, CREATE_COMMAND_CONFIG_FILE_NAME);
}
public static String textMarkToPath(String vmId, String content) {
return content.replace(TEXT_MARK_VM_PATH, getPath(vmId));
public static String textMarkToPath(Context context, String vmId, String content) {
return content.replace(TEXT_MARK_VM_PATH, getPath(vmId))
.replace(TEXT_MARK_VM_TEMP_PATH, getTempPath(context, vmId))
.replace(TEXT_MARK_EXTERNAL_DATA_PATH, AppConfig.datadirpath(context) + "/");
}
public static String pathToTextMark(String vmId, String content) {
return content.replace(getPath(vmId), TEXT_MARK_VM_PATH);
public static String pathToTextMark(Context context, String vmId, String content) {
return content.replace(getPath(vmId), TEXT_MARK_VM_PATH)
.replace(getTempPath(context, vmId), TEXT_MARK_VM_TEMP_PATH)
.replace(AppConfig.datadirpath(context) + "/", TEXT_MARK_EXTERNAL_DATA_PATH);
}
}

View file

@ -1,15 +1,15 @@
{
"versionCode":"104",
"versionName":"4.0.0",
"versionCode":"114",
"versionName":"4.1.0",
"size": "45 MB",
"url": "https://github.com/xoureldeen/Vectras-VM-Android/releases",
"Message": "<h2>4.0.0</h2>\nBugs fixed.",
"Message": "<h2>4.1.0</h2>\nBugs fixed.",
"cancellable": true,
"versionCodeBeta":"113",
"versionNameBeta":"4.0.9",
"versionNameBetas":"4.0.0,4.0.1,4.0.2,4.0.3,4.0.4,4.0.5,4.0.6,4.0.7,4.0.8,4.0.9",
"versionCodeBeta":"114",
"versionNameBeta":"4.1.0",
"versionNameBetas":"4.0.0,4.0.1,4.0.2,4.0.3,4.0.4,4.0.5,4.0.6,4.0.7,4.0.8,4.0.9,4.1.0",
"sizeBeta": "45 MB",
"urlBeta": "https://github.com/AnBui2004/Vectras-VM-Emu-Android/releases",
"MessageBeta": "<h2>4.0.9</h2>Bugs fixed.",
"MessageBeta": "<h2>4.1.0</h2>Bugs fixed.",
"cancellableBeta": true
}