From f48a87a948eecfeed8565d120379b80e402017b1 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Wed, 10 Jul 2024 06:16:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/book/explore/ExploreShowActivity.kt | 3 ++- .../main/java/io/legado/app/ui/book/search/SearchActivity.kt | 3 ++- app/src/main/java/io/legado/app/utils/FlowExtensions.kt | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt b/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt index d9da7b212..39ab2c1b7 100644 --- a/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt @@ -2,6 +2,7 @@ package io.legado.app.ui.book.explore import android.os.Bundle import androidx.activity.viewModels +import androidx.core.os.bundleOf import androidx.recyclerview.widget.RecyclerView import io.legado.app.R import io.legado.app.base.VMBaseActivity @@ -35,7 +36,7 @@ class ExploreShowActivity : VMBaseActivity if (!isEmpty || viewModel.searchScope.isAll()) return@observe diff --git a/app/src/main/java/io/legado/app/utils/FlowExtensions.kt b/app/src/main/java/io/legado/app/utils/FlowExtensions.kt index 31b64913a..5890d4728 100644 --- a/app/src/main/java/io/legado/app/utils/FlowExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/FlowExtensions.kt @@ -231,10 +231,11 @@ fun Flow.flowWithLifecycleAndDatabaseChangeFirst( minActiveState: Lifecycle.State = Lifecycle.State.STARTED, table: String ): Flow = callbackFlow { - val channel = appDb.invalidationTrackerFlow(table, emitInitialState = false) + val isActive = lifecycle.currentState.isAtLeast(minActiveState) + val channel = appDb.invalidationTrackerFlow(table, emitInitialState = isActive) .conflate() .produceIn(this) - if (!lifecycle.currentState.isAtLeast(minActiveState)) { + if (!isActive) { send(first()) } lifecycle.repeatOnLifecycle(minActiveState) {