From 8b0998e6969e2f039d1b0664874d9ba154b22bfa Mon Sep 17 00:00:00 2001 From: sidharthify Date: Tue, 7 Apr 2026 19:37:13 +0530 Subject: [PATCH] refactor(app): make RootShell.isRooted() a suspend function Aligns `RootShell.isRooted()` with the other shell helper methods by making it a suspend function that handles its own context switching to `Dispatchers.IO`. Signed-off-by: sidharthify --- app/src/main/java/org/akuatech/ksupatcher/root/RootShell.kt | 4 ++-- .../java/org/akuatech/ksupatcher/viewmodel/MainViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/akuatech/ksupatcher/root/RootShell.kt b/app/src/main/java/org/akuatech/ksupatcher/root/RootShell.kt index 39706d5..b0e4872 100644 --- a/app/src/main/java/org/akuatech/ksupatcher/root/RootShell.kt +++ b/app/src/main/java/org/akuatech/ksupatcher/root/RootShell.kt @@ -84,9 +84,9 @@ object RootShell { } } - fun isRooted(): Boolean { + suspend fun isRooted(): Boolean = withContext(Dispatchers.IO) { val (success, out, _) = runRootBlock("id") - return success && out.contains("uid=0(root)") + success && out.contains("uid=0(root)") } suspend fun run(vararg cmds: String): String = withContext(Dispatchers.IO) { diff --git a/app/src/main/java/org/akuatech/ksupatcher/viewmodel/MainViewModel.kt b/app/src/main/java/org/akuatech/ksupatcher/viewmodel/MainViewModel.kt index eb70cd6..e0b471f 100644 --- a/app/src/main/java/org/akuatech/ksupatcher/viewmodel/MainViewModel.kt +++ b/app/src/main/java/org/akuatech/ksupatcher/viewmodel/MainViewModel.kt @@ -135,7 +135,7 @@ class MainViewModel( fun refreshRootStatus() { _state.update { it.copy(isCheckingRoot = true) } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch { val isRooted = RootShell.isRooted() val status = if (isRooted) RootStatus.GRANTED else RootStatus.NOT_GRANTED settingsRepository.setRootStatus(status.name)