diff --git a/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt b/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt index 6f927dea1..7c2812c66 100644 --- a/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt +++ b/app/src/main/java/io/legado/app/ui/config/PrefDelegate.kt @@ -59,7 +59,6 @@ fun prefDelegate( // 从 DataStore 读取初始值(DS 为唯一读取源) scope.launch { val dsValue = readFromDs() - android.util.Log.d("PrefDelegate", "readFromDs key=$key defaultValue=$defaultValue dsValue=$dsValue") if (dsValue != null) { _value.value = dsValue } @@ -128,7 +127,7 @@ fun prefDelegate( } // 同步写入 DataStore,确保持久化后再返回 // 异常不阻断流程:SP 已写入,readFromDs() 会回退到 SP 读取 - val dsResult = runCatching { + runCatching { runBlocking(Dispatchers.IO) { when (value) { is String? -> DsSync.putString(key, value) @@ -139,7 +138,6 @@ fun prefDelegate( } } } - android.util.Log.d("PrefDelegate", "setValue key=$key value=$value dsResult=${dsResult.isSuccess}") onValueChange?.invoke(value) } } @@ -177,12 +175,8 @@ fun prefDelegate( null } // DS 有值,直接返回 - if (dsValue != null) { - android.util.Log.d("PrefDelegate", "readFromDs key=$key DS hit=$dsValue") - return dsValue - } + if (dsValue != null) return dsValue // DS 无值,回退到 SP(迁移遗漏时的补偿) - android.util.Log.d("PrefDelegate", "readFromDs key=$key DS miss, falling back to SP") val spValue: T? = when { defaultValue is String || defaultValue == null -> appCtx.getPrefString(key, defaultValue as String?) as T? @@ -208,7 +202,6 @@ fun prefDelegate( } } } - android.util.Log.d("PrefDelegate", "readFromDs key=$key SP fallback=$spValue (defaultValue=$defaultValue)") return spValue } } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfScreen.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfScreen.kt index 0c5b10c38..76f2a9d38 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfScreen.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfScreen.kt @@ -846,9 +846,12 @@ fun BookshelfScreen( val group = uiState.groups.getOrNull(pageIndex) if (group != null) { val isSelectedGroup = group.groupId == uiState.selectedGroupId - val books = if (isSelectedGroup) uiState.items - else uiState.allGroupBooks[group.groupId] - ?: persistentListOf() + val books = if (isSelectedGroup && uiState.isSearch) { + uiState.items + } else { + uiState.allGroupBooks[group.groupId] + ?: persistentListOf() + } val canReorderBooks = isEditMode && !uiState.isSearch && (group.bookSort.takeIf { it >= 0 }