From 25a23d1b697518140d4d6fd169d7164e082448ac Mon Sep 17 00:00:00 2001 From: iamr0s <271257581@qq.com> Date: Fri, 2 Jun 2023 09:36:58 +0800 Subject: [PATCH] fix shizuku/dhizuku authorizer --- app/src/main/java/com/rosan/installer/App.kt | 4 ---- .../java/com/rosan/installer/data/recycle/util/DhizukuUtil.kt | 1 + .../java/com/rosan/installer/data/recycle/util/ShizukuUtil.kt | 3 +++ 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/rosan/installer/App.kt b/app/src/main/java/com/rosan/installer/App.kt index 9ab957e..f3f939e 100644 --- a/app/src/main/java/com/rosan/installer/App.kt +++ b/app/src/main/java/com/rosan/installer/App.kt @@ -1,12 +1,10 @@ package com.rosan.installer import android.app.Application -import com.rosan.dhizuku.api.Dhizuku import com.rosan.installer.di.init.appModules import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidLogger import org.koin.core.context.startKoin -import rikka.sui.Sui class App : Application() { override fun onCreate() { @@ -20,7 +18,5 @@ class App : Application() { // use modules modules(appModules) } - Sui.init(BuildConfig.APPLICATION_ID) - Dhizuku.init() } } diff --git a/app/src/main/java/com/rosan/installer/data/recycle/util/DhizukuUtil.kt b/app/src/main/java/com/rosan/installer/data/recycle/util/DhizukuUtil.kt index d85f804..acd75ab 100644 --- a/app/src/main/java/com/rosan/installer/data/recycle/util/DhizukuUtil.kt +++ b/app/src/main/java/com/rosan/installer/data/recycle/util/DhizukuUtil.kt @@ -11,6 +11,7 @@ import kotlinx.coroutines.flow.first suspend fun requireDhizukuPermissionGranted(action: suspend () -> T): T { callbackFlow { + Dhizuku.init() if (Dhizuku.isPermissionGranted()) send(Unit) else { Dhizuku.requestPermission(object : DhizukuRequestPermissionListener() { diff --git a/app/src/main/java/com/rosan/installer/data/recycle/util/ShizukuUtil.kt b/app/src/main/java/com/rosan/installer/data/recycle/util/ShizukuUtil.kt index 1ff19fe..56db004 100644 --- a/app/src/main/java/com/rosan/installer/data/recycle/util/ShizukuUtil.kt +++ b/app/src/main/java/com/rosan/installer/data/recycle/util/ShizukuUtil.kt @@ -1,15 +1,18 @@ package com.rosan.installer.data.recycle.util import android.content.pm.PackageManager +import com.rosan.installer.BuildConfig import com.rosan.installer.data.recycle.model.exception.ShizukuNotWorkException import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.first import rikka.shizuku.Shizuku +import rikka.sui.Sui suspend fun requireShizukuPermissionGranted(action: suspend () -> T): T { callbackFlow { + Sui.init(BuildConfig.APPLICATION_ID) if (Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED) { send(Unit) awaitClose()