@@ -25,6 +25,7 @@ import androidx.compose.material3.TopAppBarDefaults
2525import androidx.compose.runtime.Composable
2626import androidx.compose.runtime.collectAsState
2727import androidx.compose.runtime.getValue
28+ import androidx.compose.runtime.remember
2829import androidx.compose.ui.Modifier
2930import androidx.compose.ui.draw.clip
3031import androidx.compose.ui.input.nestedscroll.nestedScroll
@@ -57,7 +58,7 @@ import li.songe.gkd.ui.style.itemHorizontalPadding
5758import li.songe.gkd.ui.style.surfaceCardColors
5859import li.songe.gkd.util.AndroidTarget
5960import li.songe.gkd.util.ShortUrlSet
60- import li.songe.gkd.util.launchAsFn
61+ import li.songe.gkd.util.launchTry
6162import li.songe.gkd.util.openA11ySettings
6263import li.songe.gkd.util.shFolder
6364import li.songe.gkd.util.throttle
@@ -235,7 +236,7 @@ fun AuthA11yPage() {
235236 text = " 若能正常开关无障碍请忽略此项" ,
236237 style = MaterialTheme .typography.bodySmall,
237238 )
238- A11yAuthButtonGroup ()
239+ A11yAuthButtonGroup (showFix = true )
239240 Spacer (modifier = Modifier .height(12 .dp))
240241 }
241242 }
@@ -258,37 +259,45 @@ private val String.pmGrant get() = "pm grant ${META.appId} $this"
258259val gkdStartCommandText by lazy {
259260 val commandText = listOfNotNull(
260261 " set -euo pipefail" ,
262+ " echo '> start start.sh'" ,
261263 Manifest .permission.WRITE_SECURE_SETTINGS .pmGrant,
262264 if (AndroidTarget .TIRAMISU ) " ACCESS_RESTRICTED_SETTINGS" .appopsAllow else null ,
263265 if (AndroidTarget .UPSIDE_DOWN_CAKE ) " FOREGROUND_SERVICE_SPECIAL_USE" .appopsAllow else null ,
264- " echo 'Execution Successful'" ,
266+ " sh ${shFolder.absolutePath} /expose.sh 1" ,
267+ " echo '> start.sh end'" ,
265268 ).joinToString(" \n " )
266269 val file = shFolder.resolve(" start.sh" )
267270 file.writeText(commandText)
268271 " adb shell sh ${file.absolutePath} "
269272}
270273
271274@Composable
272- private fun A11yAuthButtonGroup () {
275+ private fun A11yAuthButtonGroup (showFix : Boolean = false ) {
273276 val mainVm = LocalMainViewModel .current
274277 val vm = viewModel<AuthA11yVm >()
275278 AuthButtonGroup (
276- buttons = listOf (
277- " 手动解除" to {
278- mainVm.navigateWebPage(ShortUrlSet .URL2 )
279- },
280- " Shizuku 授权" to vm.viewModelScope.launchAsFn(Dispatchers .IO ) {
281- mainVm.guardShizukuContext()
282- if (writeSecureSettingsState.value) {
283- toast(" 授权成功" )
284- storeFlow.update { it.copy(enableService = true ) }
285- fixRestartService()
279+ buttons = remember(showFix) {
280+ val list = mutableListOf<Pair <String , () - > Unit >> ()
281+ if (showFix) {
282+ list.add(" 手动解除" to {
283+ mainVm.navigateWebPage(ShortUrlSet .URL2 )
284+ })
285+ }
286+ list.add(" Shizuku 授权" to {
287+ vm.viewModelScope.launchTry(Dispatchers .IO ) {
288+ mainVm.guardShizukuContext()
289+ if (writeSecureSettingsState.value) {
290+ toast(" 授权成功" )
291+ storeFlow.update { it.copy(enableService = true ) }
292+ fixRestartService()
293+ }
286294 }
287- },
288- " 外部授权" to {
295+ })
296+ list.add( " 外部授权" to {
289297 vm.showCopyDlgFlow.value = true
290- },
291- )
298+ })
299+ list
300+ }
292301 )
293302}
294303
0 commit comments