From 0b2794e843d499a6d1990b01a037a462c3c6466b Mon Sep 17 00:00:00 2001 From: arkon Date: Fri, 15 Apr 2022 13:43:54 -0400 Subject: [PATCH] Limit package name overriding to Android 8+ (related to #6846) --- app/src/main/java/eu/kanade/tachiyomi/App.kt | 22 +++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index 805caba70..377a84177 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -1,5 +1,6 @@ package eu.kanade.tachiyomi +import android.annotation.SuppressLint import android.app.ActivityManager import android.app.Application import android.app.PendingIntent @@ -57,6 +58,7 @@ open class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory { private val disableIncognitoReceiver = DisableIncognitoReceiver() + @SuppressLint("LaunchActivityFromNotification") override fun onCreate() { super.onCreate() @@ -151,14 +153,20 @@ open class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory { } override fun getPackageName(): String { - try { - // Override the value passed as X-Requested-With in WebView requests - val stackTrace = Looper.getMainLooper().thread.stackTrace - val chromiumElement = stackTrace.find { it.className.equals("org.chromium.base.BuildInfo", ignoreCase = true) } - if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) { - return WebViewUtil.SPOOF_PACKAGE_NAME + // This causes freezes in Android 6/7 for some reason + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + try { + // Override the value passed as X-Requested-With in WebView requests + val stackTrace = Looper.getMainLooper().thread.stackTrace + val chromiumElement = stackTrace.find { + it.className.equals("org.chromium.base.BuildInfo", + ignoreCase = true) + } + if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) { + return WebViewUtil.SPOOF_PACKAGE_NAME + } + } catch (e: Exception) { } - } catch (e: Exception) { } return super.getPackageName() }