From 6764ab1025ca0fe59679e040f4fe8d726833f740 Mon Sep 17 00:00:00 2001 From: iamr0s <271257581@qq.com> Date: Fri, 5 May 2023 22:35:05 +0800 Subject: [PATCH] fix config show when some app be disable --- api | 2 +- app/build.gradle.kts | 4 ++-- .../ui/page/settings/config/ConfigViewModel.kt | 11 +++++++++-- .../rosan/dhizuku/ui/page/settings/home/HomePage.kt | 10 ++++++++-- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/api b/api index 8998b00..a8056b7 160000 --- a/api +++ b/api @@ -1 +1 @@ -Subproject commit 8998b00020f8a0e6fb3ddbe75530c7802c9535f9 +Subproject commit a8056b7aa9bf4240c686dd5dcaa48242774c085e diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9a40dcf..f24e1a2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -22,8 +22,8 @@ android { applicationId = "com.rosan.dhizuku" minSdk = 21 targetSdk = 33 - versionCode = 5 - versionName = "2.2" + versionCode = 6 + versionName = "2.3" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/app/src/main/java/com/rosan/dhizuku/ui/page/settings/config/ConfigViewModel.kt b/app/src/main/java/com/rosan/dhizuku/ui/page/settings/config/ConfigViewModel.kt index 7d05954..81f0cb7 100644 --- a/app/src/main/java/com/rosan/dhizuku/ui/page/settings/config/ConfigViewModel.kt +++ b/app/src/main/java/com/rosan/dhizuku/ui/page/settings/config/ConfigViewModel.kt @@ -45,8 +45,15 @@ class ConfigViewModel( val map = mutableMapOf() apps.forEach { val packageName = packageManager.getPackagesForUid(it.uid)?.first() - map[it.uid] = if (packageName != null) { - val packageInfo = packageManager.getPackageInfo(packageName, 0) + val packageInfo = kotlin.runCatching { + packageName?.let { + packageManager.getPackageInfo( + it, + 0 + ) + } + }.getOrNull() + map[it.uid] = if (packageInfo != null) { val applicationInfo = packageInfo.applicationInfo val uid = applicationInfo.uid ConfigViewState.Data( diff --git a/app/src/main/java/com/rosan/dhizuku/ui/page/settings/home/HomePage.kt b/app/src/main/java/com/rosan/dhizuku/ui/page/settings/home/HomePage.kt index 161f09b..8375c39 100644 --- a/app/src/main/java/com/rosan/dhizuku/ui/page/settings/home/HomePage.kt +++ b/app/src/main/java/com/rosan/dhizuku/ui/page/settings/home/HomePage.kt @@ -4,6 +4,7 @@ import android.annotation.SuppressLint import android.app.admin.DevicePolicyManager import android.content.* import android.net.Uri +import android.os.Build import android.text.method.LinkMovementMethod import android.widget.TextView import androidx.compose.animation.AnimatedContent @@ -137,7 +138,7 @@ fun ShizukuButton() { command( "dpm", "set-device-owner", - "${context.packageName}/${DhizukuDAReceiver::class.qualifiedName}" + DhizukuDAReceiver.name.flattenToShortString() ) } console = letConsole @@ -209,7 +210,7 @@ fun ADBButton() { mutableStateOf(false) } val command = - "adb shell dpm set-device-owner ${context.packageName}/${DhizukuDAReceiver::class.qualifiedName}" + "adb shell dpm set-device-owner ${DhizukuDAReceiver.name.flattenToShortString()}" Button(onClick = { showDialog = true @@ -264,6 +265,11 @@ fun DeactivateButton() { val e = runCatching { val manager = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager + runCatching { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + manager.clearProfileOwner(DhizukuDAReceiver.name) + } + } manager.clearDeviceOwnerApp(context.packageName) }.exceptionOrNull() context.toast(if (e == null) R.string.deactivate_success else R.string.deactivate_failed)