mirror of
https://github.com/xoureldeen/Vectras-VM-Android.git
synced 2026-05-02 00:00:25 +00:00
commit
cac0979136
6 changed files with 377 additions and 0 deletions
|
|
@ -313,6 +313,8 @@ public class MainVNCActivity extends VncCanvasActivity {
|
|||
// Stop the service
|
||||
MainService.stopService();
|
||||
Terminal.killQemuProcess();
|
||||
VectrasApp.killcurrentqemuprocess(getApplicationContext());
|
||||
finish();
|
||||
}
|
||||
|
||||
})
|
||||
|
|
|
|||
|
|
@ -706,6 +706,18 @@ public class MainActivity extends AppCompatActivity {
|
|||
|
||||
} else if (id == R.id.arch) {
|
||||
startActivity(new Intent(activity, SetArchActivity.class));
|
||||
} else if (id == R.id.shutdown) {
|
||||
AlertDialog alertDialog = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();
|
||||
alertDialog.setTitle("Do you want to kill all Qemu processes?");
|
||||
alertDialog.setMessage("All running VMs will be forcibly shut down.");
|
||||
alertDialog.setCancelable(true);
|
||||
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Kill all", (dialog, which) -> {
|
||||
VectrasApp.killallqemuprocesses(getApplicationContext());
|
||||
});
|
||||
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", (dialog, which) -> {
|
||||
|
||||
});
|
||||
alertDialog.show();
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import androidx.core.content.res.ResourcesCompat;
|
|||
|
||||
import com.google.android.material.color.DynamicColors;
|
||||
import com.vectras.qemu.MainSettingsManager;
|
||||
import com.vectras.vterm.Terminal;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
|
@ -408,4 +409,32 @@ public class VectrasApp extends Application {
|
|||
restart();
|
||||
}
|
||||
}
|
||||
|
||||
public static void killallqemuprocesses(Context context) {
|
||||
Terminal vterm = new Terminal(context);
|
||||
vterm.executeShellCommand("killall -9 qemu-system-i386", false, MainActivity.activity);
|
||||
vterm.executeShellCommand("killall -9 qemu-system-x86_64", false, MainActivity.activity);
|
||||
vterm.executeShellCommand("killall -9 qemu-system-aarch64", false, MainActivity.activity);
|
||||
vterm.executeShellCommand("killall -9 qemu-system-ppc", false, MainActivity.activity);
|
||||
}
|
||||
|
||||
public static void killcurrentqemuprocess(Context context) {
|
||||
Terminal vterm = new Terminal(context);
|
||||
String env = "killall -9 ";
|
||||
switch (MainSettingsManager.getArch(MainActivity.activity)) {
|
||||
case "ARM64":
|
||||
env += "qemu-system-aarch64";
|
||||
break;
|
||||
case "PPC":
|
||||
env += "qemu-system-ppc";
|
||||
break;
|
||||
case "I386":
|
||||
env += "qemu-system-i386";
|
||||
break;
|
||||
default:
|
||||
env += "qemu-system-x86_64";
|
||||
break;
|
||||
}
|
||||
vterm.executeShellCommand(env, false, MainActivity.activity);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
10
app/src/main/res/drawable/power_settings_new_24px.xml
Normal file
10
app/src/main/res/drawable/power_settings_new_24px.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,396 111.5,323.5Q143,251 197,197L253,253Q209,297 184.5,355Q160,413 160,480Q160,614 253,707Q346,800 480,800Q614,800 707,707Q800,614 800,480Q800,413 775.5,355Q751,297 707,253L763,197Q817,251 848.5,323.5Q880,396 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM440,520L440,80L520,80L520,520L440,520Z"/>
|
||||
</vector>
|
||||
|
|
@ -13,4 +13,10 @@
|
|||
app:showAsAction="always"
|
||||
android:title="@string/title_activity_set_arch"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/shutdown"
|
||||
android:icon="@drawable/power_settings_new_24px"
|
||||
app:showAsAction="always"
|
||||
android:title="Shut down"/>
|
||||
|
||||
</menu>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue