mirror of
https://github.com/xoureldeen/Vectras-VM-Android.git
synced 2026-04-29 06:49:52 +00:00
v2.9.5.13-3dfx
- Faster virtual machine boot time. - Force VNC refresh is on by default. - Added exporter that will show error message if no folder to save cvbi file can be created. - New virtual machine startup dialog interface. - Added Quick start toggle. - Fixed bug where System Monitor sometimes did not show correct status of Qemu and VNC Server. - Text color of dialog buttons will be brighter if in dark mode. - Improved ability to determine if a virtual machine is running. - Qemu will no longer be forced to kill explicitly so it can perform some actions before dying to avoid data corruption - Some changes to the interface in the drawer. - External VNC Server notification dialog will only appear when using VNC instead of X11.
This commit is contained in:
parent
74bf8b69f5
commit
fa7df64ceb
37 changed files with 508 additions and 666 deletions
|
|
@ -9,6 +9,7 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -44,7 +45,7 @@ import java.util.HashMap;
|
|||
import java.util.Objects;
|
||||
|
||||
public class Minitools extends AppCompatActivity {
|
||||
|
||||
private final String TAG = "Minitools";
|
||||
private final ArrayList<HashMap<String, String>> listmapForSelectMirrors = new ArrayList<>();
|
||||
private Spinner spinnerselectmirror;
|
||||
private String selectedMirrorCommand = "";
|
||||
|
|
@ -56,7 +57,7 @@ public class Minitools extends AppCompatActivity {
|
|||
setContentView(R.layout.activity_minitools);
|
||||
// UIUtils.setOnApplyWindowInsetsListener(findViewById(R.id.main));
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
|
||||
getSupportActionBar().setDisplayShowHomeEnabled(true);
|
||||
|
|
@ -95,73 +96,63 @@ public class Minitools extends AppCompatActivity {
|
|||
|
||||
});
|
||||
|
||||
cleanup.setOnClickListener(v -> {
|
||||
DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.clean_up), getResources().getString(R.string.clean_up_content), getResources().getString(R.string.clean_up), getResources().getString(R.string.cancel), true, R.drawable.cleaning_services_24px, true,
|
||||
() -> {
|
||||
VMManager.cleanUp();
|
||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.done), Toast.LENGTH_LONG).show();
|
||||
restore.setVisibility(GONE);
|
||||
cleanup.setVisibility(GONE);
|
||||
}, null, null);
|
||||
});
|
||||
cleanup.setOnClickListener(v -> DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.clean_up), getResources().getString(R.string.clean_up_content), getResources().getString(R.string.clean_up), getResources().getString(R.string.cancel), true, R.drawable.cleaning_services_24px, true,
|
||||
() -> {
|
||||
VMManager.cleanUp();
|
||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.done), Toast.LENGTH_LONG).show();
|
||||
restore.setVisibility(GONE);
|
||||
cleanup.setVisibility(GONE);
|
||||
}, null, null));
|
||||
|
||||
restore.setOnClickListener(v -> {
|
||||
DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.restore), getResources().getString(R.string.restore_content), getResources().getString(R.string.continuetext), getResources().getString(R.string.cancel), true, R.drawable.settings_backup_restore_24px, true,
|
||||
() -> {
|
||||
VMManager.restoreVMs();
|
||||
UIUtils.oneDialog(getResources().getString(R.string.done), getResources().getString(R.string.restored) + " " + String.valueOf(VMManager.restoredVMs) + ".", true, false, Minitools.this);
|
||||
restore.setVisibility(GONE);
|
||||
}, null, null);
|
||||
});
|
||||
restore.setOnClickListener(v -> DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.restore), getResources().getString(R.string.restore_content), getResources().getString(R.string.continuetext), getResources().getString(R.string.cancel), true, R.drawable.settings_backup_restore_24px, true,
|
||||
() -> {
|
||||
VMManager.restoreVMs();
|
||||
UIUtils.oneDialog(getResources().getString(R.string.done), getResources().getString(R.string.restored) + " " + VMManager.restoredVMs + ".", true, false, Minitools.this);
|
||||
restore.setVisibility(GONE);
|
||||
}, null, null));
|
||||
|
||||
deleteallvm.setOnClickListener(v -> {
|
||||
DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.delete_all_vm), getResources().getString(R.string.delete_all_vm_content), getResources().getString(R.string.delete_all), getResources().getString(R.string.cancel), true, R.drawable.delete_24px, true,
|
||||
() -> {
|
||||
VMManager.killallqemuprocesses(getApplicationContext());
|
||||
FileUtils.deleteDirectory(AppConfig.vmFolder);
|
||||
FileUtils.deleteDirectory(AppConfig.recyclebin);
|
||||
FileUtils.deleteDirectory(AppConfig.romsdatajson);
|
||||
File vDir = new File(AppConfig.maindirpath);
|
||||
vDir.mkdirs();
|
||||
FileUtils.writeToFile(AppConfig.maindirpath, "roms-data.json", "[]");
|
||||
cleanup.setVisibility(GONE);
|
||||
restore.setVisibility(GONE);
|
||||
deleteallvm.setVisibility(GONE);
|
||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.done), Toast.LENGTH_LONG).show();
|
||||
}, null, null);
|
||||
});
|
||||
deleteallvm.setOnClickListener(v -> DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.delete_all_vm), getResources().getString(R.string.delete_all_vm_content), getResources().getString(R.string.delete_all), getResources().getString(R.string.cancel), true, R.drawable.delete_24px, true,
|
||||
() -> {
|
||||
VMManager.killallqemuprocesses(getApplicationContext());
|
||||
FileUtils.deleteDirectory(AppConfig.vmFolder);
|
||||
FileUtils.deleteDirectory(AppConfig.recyclebin);
|
||||
FileUtils.deleteDirectory(AppConfig.romsdatajson);
|
||||
File vDir = new File(AppConfig.maindirpath);
|
||||
vDir.mkdirs();
|
||||
FileUtils.writeToFile(AppConfig.maindirpath, "roms-data.json", "[]");
|
||||
cleanup.setVisibility(GONE);
|
||||
restore.setVisibility(GONE);
|
||||
deleteallvm.setVisibility(GONE);
|
||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.done), Toast.LENGTH_LONG).show();
|
||||
}, null, null));
|
||||
|
||||
deleteall.setOnClickListener(v -> {
|
||||
DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.delete_all), getResources().getString(R.string.delete_all_content), getResources().getString(R.string.delete_all), getResources().getString(R.string.cancel), true, R.drawable.delete_forever_24px, true,
|
||||
() -> {
|
||||
VMManager.killallqemuprocesses(getApplicationContext());
|
||||
FileUtils.deleteDirectory(AppConfig.maindirpath);
|
||||
File vDir = new File(AppConfig.maindirpath);
|
||||
vDir.mkdirs();
|
||||
FileUtils.writeToFile(AppConfig.maindirpath, "roms-data.json", "[]");
|
||||
cleanup.setVisibility(GONE);
|
||||
restore.setVisibility(GONE);
|
||||
deleteallvm.setVisibility(GONE);
|
||||
deleteall.setVisibility(GONE);
|
||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.done), Toast.LENGTH_LONG).show();
|
||||
}, null, null);
|
||||
});
|
||||
deleteall.setOnClickListener(v -> DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.delete_all), getResources().getString(R.string.delete_all_content), getResources().getString(R.string.delete_all), getResources().getString(R.string.cancel), true, R.drawable.delete_forever_24px, true,
|
||||
() -> {
|
||||
VMManager.killallqemuprocesses(getApplicationContext());
|
||||
FileUtils.deleteDirectory(AppConfig.maindirpath);
|
||||
File vDir = new File(AppConfig.maindirpath);
|
||||
vDir.mkdirs();
|
||||
FileUtils.writeToFile(AppConfig.maindirpath, "roms-data.json", "[]");
|
||||
cleanup.setVisibility(GONE);
|
||||
restore.setVisibility(GONE);
|
||||
deleteallvm.setVisibility(GONE);
|
||||
deleteall.setVisibility(GONE);
|
||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.done), Toast.LENGTH_LONG).show();
|
||||
}, null, null));
|
||||
|
||||
reinstallsystem.setOnClickListener(v -> {
|
||||
DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.reinstall_system), getResources().getString(R.string.reinstall_system_content), getResources().getString(R.string.continuetext), getResources().getString(R.string.cancel), true, R.drawable.system_update_24px, true,
|
||||
() -> {
|
||||
HomeActivity.isActivate = false;
|
||||
AppConfig.needreinstallsystem = true;
|
||||
VMManager.killallqemuprocesses(Minitools.this);
|
||||
FileUtils.deleteDirectory(getFilesDir().getAbsolutePath() + "/data");
|
||||
FileUtils.deleteDirectory(getFilesDir().getAbsolutePath() + "/distro");
|
||||
FileUtils.deleteDirectory(getFilesDir().getAbsolutePath() + "/usr");
|
||||
Intent intent = new Intent();
|
||||
intent.setClass(Minitools.this, SetupQemuActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}, null, null);
|
||||
});
|
||||
reinstallsystem.setOnClickListener(v -> DialogUtils.twoDialog(Minitools.this, getResources().getString(R.string.reinstall_system), getResources().getString(R.string.reinstall_system_content), getResources().getString(R.string.continuetext), getResources().getString(R.string.cancel), true, R.drawable.system_update_24px, true,
|
||||
() -> {
|
||||
HomeActivity.isActivate = false;
|
||||
AppConfig.needreinstallsystem = true;
|
||||
VMManager.killallqemuprocesses(Minitools.this);
|
||||
FileUtils.deleteDirectory(getFilesDir().getAbsolutePath() + "/data");
|
||||
FileUtils.deleteDirectory(getFilesDir().getAbsolutePath() + "/distro");
|
||||
FileUtils.deleteDirectory(getFilesDir().getAbsolutePath() + "/usr");
|
||||
Intent intent = new Intent();
|
||||
intent.setClass(Minitools.this, SetupQemuActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}, null, null));
|
||||
|
||||
spinnerselectmirror.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
|
|
@ -233,7 +224,7 @@ public class Minitools extends AppCompatActivity {
|
|||
|
||||
final TextView textViewLocation = _view.findViewById(R.id.textViewLocation);
|
||||
|
||||
textViewLocation.setText(_data.get((int) _position).get("location"));
|
||||
textViewLocation.setText(_data.get(_position).get("location"));
|
||||
|
||||
return _view;
|
||||
}
|
||||
|
|
@ -260,7 +251,7 @@ public class Minitools extends AppCompatActivity {
|
|||
out.flush();
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
Log.e(TAG, "copyAssetToFile: ", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue