gedoor / legado

Legado 3.0 Book Reader with powerful controls & full functions❤️阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。
GNU General Public License v3.0
25.64k stars 3.58k forks source link

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

Open zhongqingsong opened 4 days ago

zhongqingsong commented 4 days ago

确认 / Assignments

功能描述 / Features

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

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

期望实现方式 / How to implement

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

附加信息 / Additions

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

效果演示 / Demo

No response

821938089 commented 4 days ago

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

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

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

https://github.com/gedoor/legado/blob/636c3693513776f54a762eee3d35ef9c60cdebf3/app/src/main/java/io/legado/app/data/dao/BookDao.kt#L18-L29 这个是获取对应分组书籍的函数,你可以从这里开始找你要的方法和类

zhongqingsong commented 16 hours ago

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

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

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

https://github.com/gedoor/legado/blob/636c3693513776f54a762eee3d35ef9c60cdebf3/app/src/main/java/io/legado/app/data/dao/BookDao.kt#L18-L29

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

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

821938089 commented 13 hours ago

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