From bd7201cfb9db244085cf234cc7f6104bec7d972a Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 23 Mar 2026 21:12:30 +0600 Subject: [PATCH] Fix app crash on startup on some Android TV Why do you guys even exist # Conflicts: # CHANGELOG.md --- .../tachiyomi/util/system/WebViewUtil.kt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt index 34094887e..fda28d47e 100644 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt @@ -14,6 +14,7 @@ import kotlin.coroutines.resume object WebViewUtil { private const val CHROME_PACKAGE = "com.android.chrome" + private const val YOUTUBE_FOR_TV_PACKAGE = "com.google.android.youtube.tv" private const val SYSTEM_SETTINGS_PACKAGE = "com.android.settings" const val MINIMUM_WEBVIEW_VERSION = 118 @@ -61,13 +62,16 @@ object WebViewUtil { } fun spoofedPackageName(context: Context): String { - return try { - context.packageManager.getPackageInfo(CHROME_PACKAGE, PackageManager.GET_META_DATA) - - CHROME_PACKAGE - } catch (_: PackageManager.NameNotFoundException) { - SYSTEM_SETTINGS_PACKAGE - } + return runCatching { context.packageManager.getPackageInfo(CHROME_PACKAGE, 0) } + .recoverCatching { context.packageManager.getPackageInfo(SYSTEM_SETTINGS_PACKAGE, 0) } + .recoverCatching { context.packageManager.getPackageInfo(YOUTUBE_FOR_TV_PACKAGE, 0) } + .fold( + onSuccess = { it.packageName }, + onFailure = { + context.packageManager.getInstalledPackages(0) + .random().packageName + }, + ) } }