From 30659bd8a2ca67295acac49f6a924a1de4c6c3b3 Mon Sep 17 00:00:00 2001 From: Land <84073086+LandWarderer2772@users.noreply.github.com> Date: Fri, 2 Jan 2026 12:17:44 +0000 Subject: [PATCH] Updated MainActivity.kt --- .../futon/main/ui/MainActivity.kt | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/kotlin/io/github/landwarderer/futon/main/ui/MainActivity.kt b/app/src/main/kotlin/io/github/landwarderer/futon/main/ui/MainActivity.kt index 15e7af9865..fdff7657c8 100644 --- a/app/src/main/kotlin/io/github/landwarderer/futon/main/ui/MainActivity.kt +++ b/app/src/main/kotlin/io/github/landwarderer/futon/main/ui/MainActivity.kt @@ -144,19 +144,25 @@ class MainActivity : BaseActivity(), AppBarOwner, BottomNav onFirstStart() } - viewModel.onOpenReader.observeEvent(this, this::onOpenReader) - viewModel.onError.observeEvent(this, SnackbarErrorObserver(viewBinding.container, null)) - viewModel.isLoading.observe(this, this::onLoadingStateChanged) - viewModel.isResumeEnabled.observe(this, this::onResumeEnabledChanged) - viewModel.feedCounter.observe(this, ::onFeedCounterChanged) - viewModel.appUpdate.observe(this, MenuInvalidator(this)) - viewModel.onFirstStart.observeEvent(this) { router.showWelcomeSheet() } - viewModel.isBottomNavPinned.observe(this, ::setNavbarPinned) - searchSuggestionViewModel.isIncognitoModeEnabled.observe(this, this::onIncognitoModeChanged) viewBinding.bottomNav?.addOnLayoutChangeListener(this) viewBinding.searchView.addTransitionListener(this) viewBinding.searchView.addTransitionListener(exitCallback) - initSearch() + + // Defer heavy initialization to after window is shown to prevent ANR on slow devices + lifecycleScope.launch { + lifecycle.withResumed { + viewModel.onOpenReader.observeEvent(this@MainActivity, this@MainActivity::onOpenReader) + viewModel.onError.observeEvent(this@MainActivity, SnackbarErrorObserver(viewBinding.container, null)) + viewModel.isLoading.observe(this@MainActivity, this@MainActivity::onLoadingStateChanged) + viewModel.isResumeEnabled.observe(this@MainActivity, this@MainActivity::onResumeEnabledChanged) + viewModel.feedCounter.observe(this@MainActivity, ::onFeedCounterChanged) + viewModel.appUpdate.observe(this@MainActivity, MenuInvalidator(this@MainActivity)) + viewModel.onFirstStart.observeEvent(this@MainActivity) { router.showWelcomeSheet() } + viewModel.isBottomNavPinned.observe(this@MainActivity, ::setNavbarPinned) + searchSuggestionViewModel.isIncognitoModeEnabled.observe(this@MainActivity, this@MainActivity::onIncognitoModeChanged) + initSearch() + } + } } override fun onRestoreInstanceState(savedInstanceState: Bundle) {