This commit is contained in:
An Bui 2024-12-01 16:34:50 +07:00
parent 3378042837
commit ef5e90f4c9
8 changed files with 195 additions and 129 deletions

View file

@ -1015,7 +1015,7 @@ public class CustomRomActivity extends AppCompatActivity {
ivIcon.setEnabled(true);
try {
if (!VectrasApp.isFileExists(AppConfig.vmFolder + vmID + "/rom-data.json")) {
String _getDiskFile = VectrasApp.quickScanDiskFileInFolder(AppConfig.vmFolder + vmID);
String _getDiskFile = VMManager.quickScanDiskFileInFolder(AppConfig.vmFolder + vmID);
if (!_getDiskFile.isEmpty()) {
//Error code: CR_CVBI2
if (getIntent().hasExtra("addromnow") && !addromnowdone) {
@ -1049,6 +1049,7 @@ public class CustomRomActivity extends AppCompatActivity {
}
drive.setText(_getDiskFile);
}
VMManager.setArch("X86_64", getApplicationContext());
VectrasApp.oneDialog(getResources().getString(R.string.oops), getResources().getString(R.string.error_CR_CVBI2), true, false, CustomRomActivity.this);
} else {
//Error code: CR_CVBI3
@ -1071,7 +1072,7 @@ public class CustomRomActivity extends AppCompatActivity {
drive.setText(AppConfig.vmFolder
+ vmID + "/" + jObj.getString("drive"));
}
qemu.setText(jObj.getString("qemu"));
qemu.setText(jObj.getString("qemu").replaceAll("OhnoIjustrealizeditsmidnightandIstillhavetodothis", AppConfig.vmFolder + vmID + "/"));
ImageView ivIcon = findViewById(R.id.ivIcon);
Bitmap bmImg = BitmapFactory.decodeFile(AppConfig.vmFolder
+ vmID + "/" + jObj.getString("icon"));
@ -1085,6 +1086,14 @@ public class CustomRomActivity extends AppCompatActivity {
}
try {
if (!jObj.getString("imgArch").isEmpty()) {
VMManager.setArch(jObj.getString("imgArch"), getApplicationContext());
}
} catch (Exception _e) {
}
VectrasApp.moveAFile(AppConfig.vmFolder + _filename.replace(".cvbi", ""), AppConfig.vmFolder + vmID);
UIUtils.UIAlert(activity, getResources().getString(R.string.from) + ": " + jObj.getString("author"), getResources().getString(R.string.description) + ":\n\n" + Html.fromHtml(jObj.getString("desc")));
} catch (JSONException e) {
@ -1117,7 +1126,7 @@ public class CustomRomActivity extends AppCompatActivity {
private void selectedDiskFile(Uri _content_describer) {
File selectedFilePath = new File(getPath(_content_describer));
if (VectrasApp.isADiskFile(selectedFilePath.getPath())) {
if (VMManager.isADiskFile(selectedFilePath.getPath())) {
startProcessingHardDriveFile(_content_describer);
} else {
alertDialog = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();

View file

@ -4,6 +4,7 @@ import android.app.Activity;
import android.app.ProgressDialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
@ -45,6 +46,10 @@ public class ExportRomActivity extends AppCompatActivity {
public static HashMap<String, Object> mapForGetData = new HashMap<>();
public static ArrayList<HashMap<String, Object>> listmapForGetData = new ArrayList<>();
private SharedPreferences data;
public String getRomPath = "";
public String iconfile = "";
public String diskfile = "";
public String cdromfile = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -139,30 +144,46 @@ public class ExportRomActivity extends AppCompatActivity {
mapForGetData.clear();
listmapForGetData = new Gson().fromJson(VectrasApp.readFile(AppConfig.romsdatajson), new TypeToken<ArrayList<HashMap<String, Object>>>(){}.getType());
getRomPath = AppConfig.vmFolder + Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("vmID")).toString() + "/";
if (listmapForGetData.get(pendingPosition).containsKey("imgName")) {
mapForGetData.put("imgName", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgName")).toString());
mapForGetData.put("title", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgName")).toString());
} else {
mapForGetData.put("imgName", "");
mapForGetData.put("title", "");
}
if (listmapForGetData.get(pendingPosition).containsKey("imgIcon")) {
mapForGetData.put("imgIcon", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgIcon")).toString());
iconfile = Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgIcon")).toString();
mapForGetData.put("icon", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgIcon")).toString().replaceAll(getRomPath, ""));
} else {
mapForGetData.put("imgIcon", "");
mapForGetData.put("icon", "");
}
if (listmapForGetData.get(pendingPosition).containsKey("imgPath")) {
mapForGetData.put("imgPath", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgPath")).toString());
if (Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgPath")).toString().isEmpty()) {
diskfile = VMManager.quickScanDiskFileInFolder(getRomPath);
} else {
diskfile = Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgPath")).toString();
}
mapForGetData.put("drive", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgPath")).toString().replaceAll(getRomPath, ""));
} else {
mapForGetData.put("imgPath", "");
diskfile = VMManager.quickScanDiskFileInFolder(getRomPath);
mapForGetData.put("drive", "");
}
if (listmapForGetData.get(pendingPosition).containsKey("imgCdrom")) {
mapForGetData.put("imgCdrom", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgCdrom")).toString());
if (Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgCdrom")).toString().isEmpty()) {
cdromfile = VMManager.quickScanISOFileInFolder(getRomPath);
} else {
cdromfile = Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgCdrom")).toString();
}
mapForGetData.put("cdrom", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgCdrom")).toString().replaceAll(getRomPath, ""));
} else {
mapForGetData.put("imgCdrom", "");
cdromfile = VMManager.quickScanISOFileInFolder(getRomPath);
mapForGetData.put("cdrom", "");
}
if (listmapForGetData.get(pendingPosition).containsKey("imgExtra")) {
mapForGetData.put("imgExtra", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgExtra")).toString());
mapForGetData.put("qemu", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgExtra")).toString().replaceAll(getRomPath, "OhnoIjustrealizeditsmidnightandIstillhavetodothis"));
} else {
mapForGetData.put("imgExtra", "");
mapForGetData.put("qemu", "");
}
if (listmapForGetData.get(pendingPosition).containsKey("imgArch")) {
mapForGetData.put("imgArch", Objects.requireNonNull(listmapForGetData.get(pendingPosition).get("imgArch")).toString());
@ -180,86 +201,80 @@ public class ExportRomActivity extends AppCompatActivity {
mapForGetData.put("desc", editdesc.getText().toString());
}
VectrasApp.writeToFile(new File(String.valueOf(getApplicationContext().getExternalFilesDir("data"))).getPath(), "rom-data.json", new Gson().toJson(mapForGetData));
Thread t = new Thread() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
if ((!Objects.requireNonNull(mapForGetData.get("imgIcon")).toString().isEmpty()) && (!Objects.requireNonNull(mapForGetData.get("imgPath")).toString().isEmpty()) && (!Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString().isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString())),
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString())),
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString())),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
} else if ((!Objects.requireNonNull(mapForGetData.get("imgIcon")).toString().isEmpty()) && (!Objects.requireNonNull(mapForGetData.get("imgPath")).toString().isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString())),
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString())),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
} else if ((!Objects.requireNonNull(mapForGetData.get("imgIcon")).toString().isEmpty()) && (!Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString().isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString())),
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString())),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
} else if ((!Objects.requireNonNull(mapForGetData.get("imgPath")).toString().isEmpty()) && (!Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString().isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString())),
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString())),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
} else if (!Objects.requireNonNull(mapForGetData.get("imgIcon")).toString().isEmpty()) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgIcon")).toString())),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
} else if (!Objects.requireNonNull(mapForGetData.get("imgPath")).toString().isEmpty()) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgPath")).toString())),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
} else if (!Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString().isEmpty()) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString()).getName(), new File(Objects.requireNonNull(mapForGetData.get("imgCdrom")).toString())),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
} else {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi"));
}
runOnUiThread(new Runnable() {
@Override
public void run() {
UIControler(1, FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("imgName")).toString() + ".cvbi");
}
});
} catch (Exception e) {
runOnUiThread(new Runnable() {
@Override
public void run() {
UIControler(2, e.toString());
}
});
}
try {
if ((!iconfile.isEmpty()) && (!diskfile.isEmpty()) && (!cdromfile.isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(diskfile).getName(), new File(diskfile)),
new FileSource("/" + new File(iconfile).getName(), new File(iconfile)),
new FileSource("/" + new File(cdromfile).getName(), new File(cdromfile)),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
} else if ((!iconfile.isEmpty()) && (!diskfile.isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(diskfile).getName(), new File(diskfile)),
new FileSource("/" + new File(iconfile).getName(), new File(iconfile)),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
} else if ((!iconfile.isEmpty()) && (!cdromfile.isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(iconfile).getName(), new File(iconfile)),
new FileSource("/" + new File(cdromfile).getName(), new File(cdromfile)),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
} else if ((!diskfile.isEmpty()) && (!cdromfile.isEmpty())) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(diskfile).getName(), new File(diskfile)),
new FileSource("/" + new File(cdromfile).getName(), new File(cdromfile)),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
} else if (!iconfile.isEmpty()) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(iconfile).getName(), new File(iconfile)),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
} else if (!diskfile.isEmpty()) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(diskfile).getName(), new File(diskfile)),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
} else if (!cdromfile.isEmpty()) {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(cdromfile).getName(), new File(cdromfile)),
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
} else {
ZipEntrySource[] addedEntries = new ZipEntrySource[]{
new FileSource("/" + new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json").getName(), new File(getApplicationContext().getExternalFilesDir("data") + "/rom-data.json"))
};
ZipUtil.pack(addedEntries, new File(FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi"));
}
});
runOnUiThread(new Runnable() {
@Override
public void run() {
UIControler(1, FileUtils.getExternalFilesDirectory(getApplicationContext()).getPath() + "/cvbi/" + Objects.requireNonNull(mapForGetData.get("title")).toString() + ".cvbi");
}
});
} catch (Exception e) {
runOnUiThread(new Runnable() {
@Override
public void run() {
UIControler(2, e.toString());
}
});
}
}
};
t.start();

View file

@ -140,15 +140,7 @@ public class AdapterMainRoms extends RecyclerView.Adapter<RecyclerView.ViewHolde
myHolder.cdRoms.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if (current.itemArch.equals("I386")) {
MainSettingsManager.setArch(MainActivity.activity, "I386");
} else if (current.itemArch.equals("X86_64")) {
MainSettingsManager.setArch(MainActivity.activity, "X86_64");
} else if (current.itemArch.equals("ARM64")) {
MainSettingsManager.setArch(MainActivity.activity, "ARM64");
} else if (current.itemArch.equals("PPC")) {
MainSettingsManager.setArch(MainActivity.activity, "PPC");
}
VMManager.setArch(current.itemArch, MainActivity.activity);
StartVM.cdrompath = current.imgCdrom;
String env = StartVM.env(MainActivity.activity, current.itemExtra, current.itemPath, current.itemCpu);
MainActivity.startVM(current.itemName, env, current.itemExtra, current.itemPath);

View file

@ -1,9 +1,12 @@
package com.vectras.vm;
import android.content.Context;
import android.net.Uri;
import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.vectras.qemu.MainSettingsManager;
import com.vectras.vm.MainRoms.AdapterMainRoms;
import java.util.ArrayList;
@ -333,4 +336,81 @@ public class VMManager {
}
}
}
public static String quickScanDiskFileInFolder(String _foderpath) {
if (!_foderpath.isEmpty()) {
int _startRepeat = 0;
ArrayList<String> _filelist = new ArrayList<>();
VectrasApp.listDir(_foderpath, _filelist);
if (!_filelist.isEmpty()) {
for (int _repeat = 0; _repeat < (int)(_filelist.size()); _repeat++) {
if (_startRepeat < _filelist.size()) {
if (isADiskFile(_filelist.get((int)(_startRepeat)))) {
return _filelist.get((int)(_startRepeat));
}
}
_startRepeat++;
}
}
}
return "";
}
public static boolean isADiskFile (String _filepath) {
if (_filepath.contains(".")) {
String _getFileName = Objects.requireNonNull(Uri.parse(_filepath).getLastPathSegment()).toLowerCase();
String _getFileFormat = _getFileName.substring((int)(_getFileName.lastIndexOf(".") + 1), (int)(_getFileName.length()));
if ("qcow2,img,vhd,vhdx,vdi,qcow,vmdk,vpc".contains(_getFileFormat)){
return true;
}
}
return false;
}
public static String quickScanISOFileInFolder(String _foderpath) {
if (!_foderpath.isEmpty()) {
int _startRepeat = 0;
ArrayList<String> _filelist = new ArrayList<>();
VectrasApp.listDir(_foderpath, _filelist);
if (!_filelist.isEmpty()) {
for (int _repeat = 0; _repeat < (int)(_filelist.size()); _repeat++) {
if (_startRepeat < _filelist.size()) {
if (isAISOFile(_filelist.get((int)(_startRepeat)))) {
return _filelist.get((int)(_startRepeat));
}
}
_startRepeat++;
}
}
}
return "";
}
public static boolean isAISOFile (String _filepath) {
if (_filepath.contains(".")) {
String _getFileName = Objects.requireNonNull(Uri.parse(_filepath).getLastPathSegment()).toLowerCase();
String _getFileFormat = _getFileName.substring((int)(_getFileName.lastIndexOf(".") + 1), (int)(_getFileName.length()));
if ("iso".contains(_getFileFormat)){
return true;
}
}
return false;
}
public static void setArch(String _arch, Context _context) {
switch (_arch) {
case "I386":
MainSettingsManager.setArch(MainActivity.activity, "I386");
break;
case "ARM64":
MainSettingsManager.setArch(MainActivity.activity, "ARM64");
break;
case "PPC":
MainSettingsManager.setArch(MainActivity.activity, "PPC");
break;
default:
MainSettingsManager.setArch(MainActivity.activity, "X86_64");
break;
}
}
}

View file

@ -742,34 +742,4 @@ public class VectrasApp extends Application {
AppConfig.romsdatajson = AppConfig.maindirpath + "roms-data.json";
AppConfig.vmFolder = AppConfig.maindirpath + "roms/";
}
public static String quickScanDiskFileInFolder(String _foderpath) {
if (!_foderpath.isEmpty()) {
int _startRepeat = 0;
ArrayList<String> _filelist = new ArrayList<>();
listDir(_foderpath, _filelist);
if (!_filelist.isEmpty()) {
for (int _repeat = 0; _repeat < (int)(_filelist.size()); _repeat++) {
if (_startRepeat < _filelist.size()) {
if (isADiskFile(_filelist.get((int)(_startRepeat)))) {
return _filelist.get((int)(_startRepeat));
}
}
_startRepeat++;
}
}
}
return "";
}
public static boolean isADiskFile (String _filepath) {
if (_filepath.contains(".")) {
String _getFileName = Objects.requireNonNull(Uri.parse(_filepath).getLastPathSegment()).toLowerCase();
String _getFileFormat = _getFileName.substring((int)(_getFileName.lastIndexOf(".") + 1), (int)(_getFileName.length()));
if ("qcow2,img,vhd,vhdx,vdi,qcow,vmdk,vpc".contains(_getFileFormat)){
return true;
}
}
return false;
}
}