Skip to content

Commit 1e6e135

Browse files
committed
Setup: If root access is available show additional explanation for Shizuku
Closes #1238
1 parent c8963f3 commit 1e6e135

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

app/src/main/java/eu/darken/sdmse/setup/shizuku/ShizukuSetupCardVH.kt

+8
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ class ShizukuSetupCardVH(parent: ViewGroup) :
3636
}
3737
}
3838

39+
body.apply {
40+
text = getString(R.string.setup_shizuku_card_body)
41+
if (item.state.alsoHasRoot) {
42+
append("\n")
43+
append(getString(R.string.setup_shizuku_card_root_info))
44+
}
45+
}
46+
3947
shizukuState.apply {
4048
isVisible = item.state.useShizuku == true && item.state.isInstalled
4149
text = getString(

app/src/main/java/eu/darken/sdmse/setup/shizuku/ShizukuSetupModule.kt

+8-3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import eu.darken.sdmse.common.debug.logging.logTag
1313
import eu.darken.sdmse.common.flow.replayingShare
1414
import eu.darken.sdmse.common.pkgs.Pkg
1515
import eu.darken.sdmse.common.rngString
16+
import eu.darken.sdmse.common.root.RootManager
1617
import eu.darken.sdmse.common.shizuku.ShizukuManager
1718
import eu.darken.sdmse.common.shizuku.ShizukuSettings
1819
import eu.darken.sdmse.common.shizuku.canUseShizukuNow
@@ -41,7 +42,8 @@ class ShizukuSetupModule @Inject constructor(
4142
@AppScope private val appScope: CoroutineScope,
4243
private val shizukuSettings: ShizukuSettings,
4344
private val shizukuManager: ShizukuManager,
44-
private val dataAreaManager: DataAreaManager
45+
private val dataAreaManager: DataAreaManager,
46+
private val rootManager: RootManager,
4547
) : SetupModule {
4648

4749
private val refreshTrigger = MutableStateFlow(rngString)
@@ -59,12 +61,14 @@ class ShizukuSetupModule @Inject constructor(
5961
override val state: Flow<SetupModule.State> = combine(
6062
refreshTrigger,
6163
shizukuSettings.useShizuku.flow,
62-
) { _, useShizuku ->
64+
rootManager.useRoot,
65+
) { _, useShizuku, useRoot ->
6366
val baseState = Result(
6467
pkg = shizukuManager.pkgId,
6568
useShizuku = useShizuku,
6669
isInstalled = shizukuManager.isInstalled(),
6770
isCompatible = shizukuManager.isCompatible(),
71+
alsoHasRoot = useRoot,
6872
)
6973

7074
if (useShizuku != true) return@combine flowOf(baseState)
@@ -79,7 +83,7 @@ class ShizukuSetupModule @Inject constructor(
7983
baseState.copy(
8084
basicService = binder?.pingBinder() ?: false,
8185
ourService = shizukuManager.isShizukuServiceAvailable(),
82-
)as SetupModule.State
86+
) as SetupModule.State
8387
}
8488
}
8589
.flatMapLatest { it }
@@ -137,6 +141,7 @@ class ShizukuSetupModule @Inject constructor(
137141
val isInstalled: Boolean = false,
138142
val basicService: Boolean = false,
139143
val ourService: Boolean = false,
144+
val alsoHasRoot: Boolean = false,
140145
) : SetupModule.State.Current {
141146

142147
override val type: SetupModule.Type = SetupModule.Type.SHIZUKU

app/src/main/res/values/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
<string name="setup_shizuku_card_title">Shizuku</string>
137137
<string name="setup_shizuku_card_body">Allow SD Maid to use Shizuku where possible to improve results and enable features.</string>
138138
<string name="setup_shizuku_card_body2">This setting has no effect if the Shizuku app is not set up on your device.</string>
139+
<string name="setup_shizuku_card_root_info">Shizuku in combination with root access does not enable additional features, but it improves reliability. SD Maid will use it as fallback method.</string>
139140
<string name="setup_shizuku_state_ready_label">Shizuku link is ready.</string>
140141
<string name="setup_shizuku_state_waiting_label">Waiting for link with Shizuku.</string>
141142
<string name="setup_shizuku_enable_shizuku_use_label">Use Shizuku if available</string>

0 commit comments

Comments
 (0)