kunfei 4 سال پیش
والد
کامیت
3ef1d81e40

+ 1 - 0
app/src/main/assets/updateLog.md

@@ -13,6 +13,7 @@
 
 **2022/07/09**
 
+* 书源添加未分组筛选
 * 修复使用自建WebDav一些bug by 821938089
 * 修复换源按钮长按只能生效一次的bug
 

+ 3 - 0
app/src/main/java/io/legado/app/data/dao/BookSourceDao.kt

@@ -53,6 +53,9 @@ interface BookSourceDao {
     @Query("select * from book_sources where loginUrl is not null and loginUrl != ''")
     fun flowLogin(): Flow<List<BookSource>>
 
+    @Query("select * from book_sources where bookSourceGroup is null or bookSourceGroup = '' or bookSourceGroup like '%未分组%'")
+    fun flowNoGroup(): Flow<List<BookSource>>
+
     @Query(
         """select * from book_sources 
         where enabledExplore = 1 

+ 13 - 2
app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt

@@ -181,6 +181,9 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
             R.id.menu_group_login -> {
                 searchView.setQuery(getString(R.string.need_login), true)
             }
+            R.id.menu_group_null -> {
+                searchView.setQuery(getString(R.string.no_group), true)
+            }
             R.id.menu_help -> showHelp()
         }
         if (item.groupId == R.id.source_group) {
@@ -229,6 +232,9 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
                 searchKey == getString(R.string.need_login) -> {
                     appDb.bookSourceDao.flowLogin()
                 }
+                searchKey == getString(R.string.no_group) -> {
+                    appDb.bookSourceDao.flowNoGroup()
+                }
                 searchKey.startsWith("group:") -> {
                     val key = searchKey.substringAfter("group:")
                     appDb.bookSourceDao.flowGroupSearch(key)
@@ -296,10 +302,15 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
 
     private fun initLiveDataGroup() {
         launch {
+            val noGroupName = getString(R.string.no_group)
             appDb.bookSourceDao.flowGroup().conflate().collect {
                 groups.clear()
-                it.forEach { group ->
-                    groups.addAll(group.splitNotBlank(AppPattern.splitGroupRegex))
+                it.forEach { groupStr ->
+                    groupStr.splitNotBlank(AppPattern.splitGroupRegex).forEach { group ->
+                        if (group != noGroupName) {
+                            groups.add(group)
+                        }
+                    }
                 }
                 upGroupMenu()
             }

+ 4 - 0
app/src/main/res/menu/book_source.xml

@@ -79,6 +79,10 @@
                 android:id="@+id/menu_group_login"
                 android:title="@string/need_login" />
 
+            <item
+                android:id="@+id/menu_group_null"
+                android:title="@string/no_group" />
+
             <group android:id="@+id/source_group">
 
             </group>