From cfd2c4d83ac03d929f9ae2c5024b3de7f6c92f3a Mon Sep 17 00:00:00 2001 From: BinTianqi Date: Sun, 6 Jul 2025 14:06:24 +0800 Subject: [PATCH] Display fallback icon and label for unknown apps, fix #138 Update dependencies --- .../java/com/bintianqi/owndroid/dpm/Applications.kt | 11 +++++++++-- gradle/libs.versions.toml | 6 +++--- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/bintianqi/owndroid/dpm/Applications.kt b/app/src/main/java/com/bintianqi/owndroid/dpm/Applications.kt index b1b1dac..70f85cf 100644 --- a/app/src/main/java/com/bintianqi/owndroid/dpm/Applications.kt +++ b/app/src/main/java/com/bintianqi/owndroid/dpm/Applications.kt @@ -69,6 +69,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager @@ -78,6 +79,7 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat +import androidx.core.graphics.drawable.toDrawable import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.bintianqi.owndroid.AppInfo import com.bintianqi.owndroid.AppInstallerActivity @@ -102,8 +104,13 @@ import com.google.accompanist.drawablepainter.rememberDrawablePainter import kotlinx.serialization.Serializable import java.util.concurrent.Executors -fun PackageManager.retrieveAppInfo(packageName: String) = - getApplicationInfo(packageName, getInstalledAppsFlags).retrieveAppInfo(this) +fun PackageManager.retrieveAppInfo(packageName: String): AppInfo { + return try { + getApplicationInfo(packageName, getInstalledAppsFlags).retrieveAppInfo(this) + } catch (_: PackageManager.NameNotFoundException) { + AppInfo(packageName, "???", Color.Transparent.toArgb().toDrawable(), 0) + } +} fun ApplicationInfo.retrieveAppInfo(pm: PackageManager) = installedApps.value.find { it.name == packageName } ?: AppInfo(packageName, loadLabel(pm).toString(), loadIcon(pm), flags) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d5fddfc..df43158 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,12 +2,12 @@ agp = "8.10.1" kotlin = "2.1.20" -navigation-compose = "2.9.0" -composeBom = "2025.05.01" +navigation-compose = "2.9.1" +composeBom = "2025.06.01" accompanist-drawablepainter = "0.35.0-alpha" accompanist-permissions = "0.37.0" shizuku = "13.1.5" -fragment = "1.8.7" +fragment = "1.8.8" dhizuku = "2.5.3" dhizuku-server = "0.0.5" hiddenApiBypass = "4.3" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4addbfd..05d40d6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Jan 12 20:22:20 CST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://downloads.gradle.org/distributions/gradle-8.14.1-bin.zip +distributionUrl=https\://downloads.gradle.org/distributions/gradle-8.14.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists