diff --git a/app/src/main/java/io/legado/app/data/dao/BookDao.kt b/app/src/main/java/io/legado/app/data/dao/BookDao.kt index 8794296f6..6749d06f7 100644 --- a/app/src/main/java/io/legado/app/data/dao/BookDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/BookDao.kt @@ -45,6 +45,18 @@ interface BookDao { @get:Query("select count(bookUrl) from books where (SELECT sum(groupId) FROM book_groups) & `group` = 0") val noGroupSize: Int + @Query("select count(bookUrl) from books where `group` = :groupId") + fun groupCount(groupId: Long): Int + + @get:Query("SELECT count(*) FROM books where origin = '${BookType.local}'") + val localBookCount: Int + + @get:Query("SELECT count(*) FROM books where origin = '${BookType.audio}'") + val audioBookCount: Int + + @get:Query("SELECT count(*) FROM books where origin != '${BookType.audio}' and origin != '${BookType.local}' and `group` = 0") + val noneBookCount: Int + @get:Query("SELECT * FROM books where origin <> '${BookType.local}' and type = 0") val webBooks: List diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt index e1b37f31e..bb93f2001 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.kt @@ -8,6 +8,7 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentStatePagerAdapter import androidx.lifecycle.LiveData +import androidx.lifecycle.observe import com.google.android.material.tabs.TabLayout import io.legado.app.App import io.legado.app.R @@ -58,6 +59,11 @@ class BookshelfFragment : VMBaseFragment(R.layout.fragment_b initBookGroupData() } + override fun onResume() { + super.onResume() + adapter.notifyDataSetChanged() + } + override fun onCompatCreateOptionsMenu(menu: Menu) { menuInflater.inflate(R.menu.main_bookshelf, menu) } @@ -212,7 +218,14 @@ class BookshelfFragment : VMBaseFragment(R.layout.fragment_b FragmentStatePagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) { override fun getPageTitle(position: Int): CharSequence? { - return bookGroups[position].groupName + val group = bookGroups[position] + return "${group.groupName} • ${when (group.groupId) { + AppConst.bookGroupAllId -> "${App.db.bookDao().allBookCount}" + AppConst.bookGroupLocalId -> "${App.db.bookDao().localBookCount}" + AppConst.bookGroupAudioId -> "${App.db.bookDao().audioBookCount}" + AppConst.bookGroupNoneId -> "${App.db.bookDao().noneBookCount}" + else -> "${App.db.bookDao().groupCount(group.groupId)}" + }}" } override fun getItemPosition(`object`: Any): Int {