diff --git a/app/src/main/java/com/geode/launcher/MainActivity.kt b/app/src/main/java/com/geode/launcher/MainActivity.kt index f0dfaa3..85b1284 100644 --- a/app/src/main/java/com/geode/launcher/MainActivity.kt +++ b/app/src/main/java/com/geode/launcher/MainActivity.kt @@ -104,8 +104,10 @@ class MainActivity : ComponentActivity() { val gdInstalled = GamePackageUtils.isGameInstalled(packageManager) val geodeInstalled = LaunchUtils.isGeodeInstalled(this) - if (gdInstalled && geodeInstalled && intent.getBooleanExtra("restarted", false)) { - onLaunch(this) + val restartImmediately = intent.getBooleanExtra("restarted", false) + if (gdInstalled && geodeInstalled && restartImmediately) { + val withSafeMode = intent.getBooleanExtra("safe-mode", false) + onLaunch(this, withSafeMode) } enableEdgeToEdge() diff --git a/app/src/main/java/com/geode/launcher/utils/GeodeUtils.kt b/app/src/main/java/com/geode/launcher/utils/GeodeUtils.kt index 4776fa6..526104c 100644 --- a/app/src/main/java/com/geode/launcher/utils/GeodeUtils.kt +++ b/app/src/main/java/com/geode/launcher/utils/GeodeUtils.kt @@ -191,10 +191,16 @@ object GeodeUtils { @JvmStatic fun restartGame() { + restartGame(true) + } + + @JvmStatic + fun restartGame(safeMode: Boolean) { activity.get()?.run { packageManager.getLaunchIntentForPackage(packageName)?.also { val mainIntent = Intent.makeRestartActivityTask(it.component) mainIntent.putExtra("restarted", true) + mainIntent.putExtra("safe-mode", safeMode) startActivity(mainIntent) exitProcess(0) }