From bf93dc6562bfbd0a9c98f2807c86fe1a3535ca9f Mon Sep 17 00:00:00 2001 From: PabloLabs36 Date: Tue, 31 Dec 2024 12:21:54 -0300 Subject: [PATCH] Fix Services Killing (Now really mountmgr don't bug) --- .../com/micewine/emu/activities/MainActivity.kt | 15 ++++++++------- .../java/com/micewine/emu/core/WineWrapper.kt | 10 ++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/micewine/emu/activities/MainActivity.kt b/app/src/main/java/com/micewine/emu/activities/MainActivity.kt index 38361f4..f2c92cc 100644 --- a/app/src/main/java/com/micewine/emu/activities/MainActivity.kt +++ b/app/src/main/java/com/micewine/emu/activities/MainActivity.kt @@ -631,14 +631,17 @@ class MainActivity : AppCompatActivity() { runCommand("pkill -9 wineserver") runCommand("pkill -9 .exe") runCommand(getEnv() + "$usrDir/bin/pulseaudio --start --exit-idle=-1") - WineWrapper.wine("wineboot", winePrefix) - var wineRunning = true + if (!enableServices) { + lifecycleScope.launch { + val processName = if (exePath == "") "TFM.exe" else File(exePath).name + + // Wait for Wine Successfully Start and Execute Specified Program and Kill Services + while (!WineWrapper.wine("tasklist", winePrefix, true).contains(processName)) { + delay(100) + } - lifecycleScope.launch { - while (!enableServices && wineRunning) { runCommand("pkill -9 services.exe", false) - delay(1200) } } @@ -667,8 +670,6 @@ class MainActivity : AppCompatActivity() { runCommand("pkill -9 wineserver") runCommand("pkill -9 .exe") - wineRunning = false - runOnUiThread { Toast.makeText(this@MainActivity, getString(R.string.wine_is_closed), Toast.LENGTH_SHORT).show() } diff --git a/app/src/main/java/com/micewine/emu/core/WineWrapper.kt b/app/src/main/java/com/micewine/emu/core/WineWrapper.kt index 248d85c..fc3cd1e 100644 --- a/app/src/main/java/com/micewine/emu/core/WineWrapper.kt +++ b/app/src/main/java/com/micewine/emu/core/WineWrapper.kt @@ -3,6 +3,7 @@ package com.micewine.emu.core import android.os.Build import com.micewine.emu.core.EnvVars.getEnv import com.micewine.emu.core.ShellLoader.runCommand +import com.micewine.emu.core.ShellLoader.runCommandWithOutput import java.io.File object WineWrapper { @@ -20,6 +21,15 @@ object WineWrapper { ) } + fun wine(args: String, winePrefix: File, retLog: Boolean): String { + if (retLog) { + return runCommandWithOutput( + getEnv() + "WINEPREFIX=$winePrefix $IS_BOX64 wine $args" + ) + } + return "" + } + fun wine(args: String, winePrefix: File, cwd: String) { runCommand( "cd $cwd;" +