Skip to content

收藏夹「过滤无效收藏」开关真正控制插画失效作品过滤 - #1077

Merged
SoxiaLiSA merged 1 commit into
CeuiLiSA:classicfrom
wangwang-code:patch-8-31-1
Aug 31, 2026
Merged

收藏夹「过滤无效收藏」开关真正控制插画失效作品过滤#1077
SoxiaLiSA merged 1 commit into
CeuiLiSA:classicfrom
wangwang-code:patch-8-31-1

Conversation

@wangwang-code

Copy link
Copy Markdown
Contributor

收藏夹「过滤无效收藏」开关真正控制插画失效作品过滤

分支:patch-8-31-1(wangwang-code fork)
目标:classic
最新提交:cf5c53976

背景

filterInvalidBookmarks(收藏夹过滤已失效作品)默认关闭,文案是“开启后将隐藏已删除或不可见的收藏作品”,因此关闭时应能看到失效/不可见条目。

但在插画收藏页,IllustFeedItem.passesContentFilters() 里有一行无条件过滤:

if (illust.visible != true) return false

导致 visible != true 的插画无论开关开/关都被过滤,设置项在插画收藏里实际表现为“始终开启”。小说收藏页则不同:NovelFeedItem 通用过滤链不含 visible,只有开关开启时才按 visible == false 过滤。插画/小说行为不一致,且与设置文案矛盾。

改动内容

1. IllustFeedItem 增加 skipVisibleFilter

  • of(...) / passesContentFilters(...) 新增 skipVisibleFilter: Boolean = false
  • visible 过滤改为:
if (!skipVisibleFilter && illust.visible != true) return false
  • 默认 false,其它 feed 列表行为不变。

2. 插画收藏页按开关传递

  • LikeIllustFeedFragment.mapLikePage() 改为:
IllustFeedItem.of(illust, skipVisibleFilter = !filterInvalid)
  • 开关开启:过滤 visible != true + user 缺失 / id == 0
  • 开关关闭:放行 visible != true 的失效/不可见条目,与小说侧及设置文案对齐。

3. 补 IllustNovelFilter.judgeUserID(Illust) null 保护

  • 关闭 visible 过滤后可能出现 user == null 的失效条目,judgeUserID 原先会直接 illust.getUser().getId() 触发 NPE。
  • 现在 user == null 时返回 false

4. 注释收敛

  • LikeIllustFeedFragment / LikeNovelFeedFragment 的 KDoc 同步为“开关关闭时不过滤 visible”的语义。

涉及文件

  • app/src/main/java/ceui/pixiv/ui/common/IllustFeedItem.kt
  • app/src/main/java/ceui/pixiv/ui/collection/LikeIllustFeedFragment.kt
  • app/src/main/java/ceui/pixiv/ui/collection/LikeNovelFeedFragment.kt
  • app/src/main/java/ceui/lisa/helper/IllustNovelFilter.java

注意

关闭“过滤无效收藏”后,插画收藏页会显示 visible != true 的失效/不可见条目;这类条目可能缺图、作者信息不全或无法打开详情,这是关闭过滤的预期表现。后续如需更友好体验,可另加“已失效”占位卡样式。

提交

  • cf5c53976 fix(collection): 收藏夹过滤无效收藏开关真正控制插画 visible 过滤

@SoxiaLiSA
SoxiaLiSA merged commit fdabb35 into CeuiLiSA:classic Aug 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants