From a2f9356b8af18c7d120238dbf39e234a20017507 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Thu, 20 Mar 2025 08:20:43 +0200 Subject: [PATCH] Fix crashes --- app/src/debug/kotlin/org/koitharu/kotatsu/KotatsuApp.kt | 2 -- .../org/koitharu/kotatsu/browser/BaseBrowserActivity.kt | 5 ++++- .../kotlin/org/koitharu/kotatsu/browser/BrowserActivity.kt | 3 +-- .../kotatsu/browser/cloudflare/CloudFlareActivity.kt | 3 +-- app/src/main/kotlin/org/koitharu/kotatsu/core/BaseApp.kt | 3 +++ .../kotatsu/settings/sources/auth/SourceAuthActivity.kt | 7 +------ 6 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/src/debug/kotlin/org/koitharu/kotatsu/KotatsuApp.kt b/app/src/debug/kotlin/org/koitharu/kotatsu/KotatsuApp.kt index bd5169044..30cd1dc2a 100644 --- a/app/src/debug/kotlin/org/koitharu/kotatsu/KotatsuApp.kt +++ b/app/src/debug/kotlin/org/koitharu/kotatsu/KotatsuApp.kt @@ -12,7 +12,6 @@ import org.koitharu.kotatsu.local.data.LocalMangaRepository import org.koitharu.kotatsu.local.data.PagesCache import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.reader.domain.PageLoader -import org.koitharu.kotatsu.reader.ui.ReaderViewModel class KotatsuApp : BaseApp() { @@ -67,7 +66,6 @@ class KotatsuApp : BaseApp() { setClassInstanceLimit(PagesCache::class.java, 1) setClassInstanceLimit(MangaLoaderContext::class.java, 1) setClassInstanceLimit(PageLoader::class.java, 1) - setClassInstanceLimit(ReaderViewModel::class.java, 1) penaltyLog() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && notifier != null) { penaltyListener(notifier.executor, notifier) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/browser/BaseBrowserActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/browser/BaseBrowserActivity.kt index 2f1359b43..f9cb346c9 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/browser/BaseBrowserActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/browser/BaseBrowserActivity.kt @@ -20,7 +20,7 @@ abstract class BaseBrowserActivity : BaseActivity(), Bro private lateinit var onBackPressedCallback: WebViewBackPressedCallback - override fun onCreate(savedInstanceState: Bundle?) { + final override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (!setContentViewWebViewSafe { ActivityBrowserBinding.inflate(layoutInflater) }) { return @@ -28,8 +28,11 @@ abstract class BaseBrowserActivity : BaseActivity(), Bro viewBinding.webView.webChromeClient = ProgressChromeClient(viewBinding.progressBar) onBackPressedCallback = WebViewBackPressedCallback(viewBinding.webView) onBackPressedDispatcher.addCallback(onBackPressedCallback) + onCreate2(savedInstanceState) } + protected abstract fun onCreate2(savedInstanceState: Bundle?) + override fun onApplyWindowInsets( v: View, insets: WindowInsetsCompat diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/browser/BrowserActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/browser/BrowserActivity.kt index 5961f0046..aba7db14f 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/browser/BrowserActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/browser/BrowserActivity.kt @@ -25,8 +25,7 @@ class BrowserActivity : BaseBrowserActivity() { @Inject lateinit var mangaRepositoryFactory: MangaRepository.Factory - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + override fun onCreate2(savedInstanceState: Bundle?) { setDisplayHomeAsUp(true, true) val mangaSource = MangaSource(intent?.getStringExtra(AppRouter.KEY_SOURCE)) val repository = mangaRepositoryFactory.create(mangaSource) as? ParserMangaRepository diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CloudFlareActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CloudFlareActivity.kt index b21479a2d..b5946c6b0 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CloudFlareActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CloudFlareActivity.kt @@ -37,8 +37,7 @@ class CloudFlareActivity : BaseBrowserActivity(), CloudFlareCallback { private lateinit var cfClient: CloudFlareClient - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + override fun onCreate2(savedInstanceState: Bundle?) { setDisplayHomeAsUp(true, true) val url = intent?.dataString if (url.isNullOrEmpty()) { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/BaseApp.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/BaseApp.kt index 1ee78bd06..6f745c3cc 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/BaseApp.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/BaseApp.kt @@ -102,6 +102,9 @@ open class BaseApp : Application(), Configuration.Provider { override fun attachBaseContext(base: Context) { super.attachBaseContext(base) + if (ACRA.isACRASenderServiceProcess()) { + return + } initAcra { buildConfigClass = BuildConfig::class.java reportFormat = StringFormat.JSON diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt index d491585ed..a598b7548 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/sources/auth/SourceAuthActivity.kt @@ -21,7 +21,6 @@ import org.koitharu.kotatsu.core.parser.MangaRepository import org.koitharu.kotatsu.core.parser.ParserMangaRepository import org.koitharu.kotatsu.core.util.ext.configureForParser import org.koitharu.kotatsu.core.util.ext.getDisplayMessage -import org.koitharu.kotatsu.databinding.ActivityBrowserBinding import org.koitharu.kotatsu.parsers.MangaParserAuthProvider import org.koitharu.kotatsu.parsers.model.MangaParserSource import org.koitharu.kotatsu.parsers.model.MangaSource @@ -36,11 +35,7 @@ class SourceAuthActivity : BaseBrowserActivity(), BrowserCallback { private lateinit var authProvider: MangaParserAuthProvider - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - if (!setContentViewWebViewSafe { ActivityBrowserBinding.inflate(layoutInflater) }) { - return - } + override fun onCreate2(savedInstanceState: Bundle?) { val source = MangaSource(intent?.getStringExtra(EXTRA_SOURCE)) if (source !is MangaParserSource) { finishAfterTransition()