Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

当一本书添加了某个分组后。那么这本书应该从主页的默认分组里移除或隐藏 #4005

Closed
1 task done
zhongqingsong opened this issue Jun 27, 2024 · 4 comments
Labels
需求 F.用户提出的功能意见

Comments

@zhongqingsong
Copy link

确认 / Assignments

  • 搜索现有issues,不存在相似或相关的issue / No related requests

功能描述 / Features

目前,当一本书添加了某个分组后。它出现在了指定的分组里,这里没问题。但是,它仍然存在于首页的默认分组中。
我说的这个默认分组,它指的是打开app后,第一时间看到的那个页面上的内容。我自己手机上显示的是本地,我还见过叫全部、所有这种的类似。但是他们都是app的默认的分组,这个应该没错。

这个分组功能并没有达到很好的使用效果。
1、比如,我看完了一本书,我设置到了自定义分组”已读完“。那么我的本意就是这本书应该从我的默认分组”本地“里移除掉,然后它应该就存放于”已读完“中。
2、同理,当导入的书籍特别多的时候。对书籍分组的意义就在于,我能手动的把一大堆书,按照喜好分为不同的类型。这样既方便后续的查看,也方便管理本地书架。
3、目前的功能,是书越看越多,分组后也不会消失。只能手动的删除这本的源。这就不太合理了。我目前书籍里,加入了几百本书,我看了十几本了,但是我分到了”已读完“后主页还是有这些书,导致这个分组的意义就不大了。

期望实现方式 / How to implement

1、最好的就是,能做成系统级功能。当给某本书添加了分组信息,那么在分组页面的点击确认后,这本书就从本地、所有等默认的分组中移除掉。取而代之的是这本书到真正的分组中去。
2、其次,就是完成上述步骤后,将书籍从默认分组中隐藏起来也行。
3、如果这个功能和其他人有冲突,那么可以设置一个开关:书籍分组后,是否从默认分组中隐藏/移除。
4、如果实在这个功能不能做到项目中,那能告诉我修改源码的哪些类、方法,能实现这个效果。也和感激不尽。(BY the way, 我对kotlin的这种写法很不熟悉。所以如果要提示我,能精确到哪行代码要怎么改,我就感激不尽了。)

附加信息 / Additions

我自己本地试着改了下源码,一是项目无法调试,只能run,调试就闪退。我没搞清楚为什么。二是我尝试了很多的方式,对kotlin的这种写法也不太熟悉,没有搞懂这个跳转逻辑关系这些。
所以,上面这个功能我自己本地没有做出来。

效果演示 / Demo

No response

@zhongqingsong zhongqingsong added the 需求 F.用户提出的功能意见 label Jun 27, 2024
@821938089
Copy link
Collaborator

阅读自带的分组是对书籍按一定逻辑的分类,并不是不是真正意义上的分组

本地分组应显示所有的本地书籍,你应该使用本地未分组
更好的办法是不要用阅读自带的分组,全部手动管理

调试闪退的问题请在 App.ktonCreate 中添加 ThreadUtils.setThreadAssertsDisabledForTesting(true)

fun flowByGroup(groupId: Long): Flow<List<Book>> {
return when (groupId) {
BookGroup.IdRoot -> flowRoot()
BookGroup.IdAll -> flowAll()
BookGroup.IdLocal -> flowLocal()
BookGroup.IdAudio -> flowAudio()
BookGroup.IdNetNone -> flowNetNoGroup()
BookGroup.IdLocalNone -> flowLocalNoGroup()
BookGroup.IdError -> flowUpdateError()
else -> flowByUserGroup(groupId)
}
}

这个是获取对应分组书籍的函数,你可以从这里开始找你要的方法和类

@zhongqingsong
Copy link
Author

阅读自带的分组是对书籍按一定逻辑的分类,并不是不是真正意义上的分组

本地分组应显示所有的本地书籍,你应该使用本地未分组 更好的办法是不要用阅读自带的分组,全部手动管理

调试闪退的问题请在 App.ktonCreate 中添加 ThreadUtils.setThreadAssertsDisabledForTesting(true)

fun flowByGroup(groupId: Long): Flow<List<Book>> {
return when (groupId) {
BookGroup.IdRoot -> flowRoot()
BookGroup.IdAll -> flowAll()
BookGroup.IdLocal -> flowLocal()
BookGroup.IdAudio -> flowAudio()
BookGroup.IdNetNone -> flowNetNoGroup()
BookGroup.IdLocalNone -> flowLocalNoGroup()
BookGroup.IdError -> flowUpdateError()
else -> flowByUserGroup(groupId)
}
}

这个是获取对应分组书籍的函数,你可以从这里开始找你要的方法和类

好的,十分感谢。但是我有进一步的一些疑问哈:
1、“你应该使用本地未分组” 这个什么意思?本地未分组,这个什么意思,没太明白。
2、“全部手动管理” 这个具体是什么意思啊?比如我从本地文件浏览器中的,小说 文件夹,添加到了阅读中。然后,我看了某本小说了。你的意思是,我手动从文件浏览器中,把这个小说移到我本地新建的一个文件浏览器中的目录,假设叫做 已看完。但是我有个问题哈,这样的话,这些移来移去,这些书还是会出现在本地这个目录中的吧?
3、调试闪退:感谢指导,我后续试试。
4、好的,我去研究研究这个BookDao

@821938089
Copy link
Collaborator

本地未分组是阅读自带的一个分组
全部手动管理指不使用阅读自带的分组,自己建一个一样名字的分组进行添加删除

@zhongqingsong
Copy link
Author

本地未分组,是一个阅读自带的功能。去设置中,开启这个功能就行了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
需求 F.用户提出的功能意见
Projects
None yet
Development

No branches or pull requests

2 participants