书架显示书籍数量

pull/441/head
口口吕 4 years ago
parent e09d5c19db
commit 2ecd94ffde
  1. 12
      app/src/main/java/io/legado/app/data/dao/BookDao.kt
  2. 15
      app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfFragment.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 (SELECT sum(groupId) FROM book_groups) & `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<Book>

@ -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<BookshelfViewModel>(R.layout.fragment_b
initBookGroupData()
}
override fun onResume() {
super.onResume()
adapter.notifyDataSetChanged()
}
override fun onCompatCreateOptionsMenu(menu: Menu) {
menuInflater.inflate(R.menu.main_bookshelf, menu)
}
@ -209,7 +215,14 @@ class BookshelfFragment : VMBaseFragment<BookshelfViewModel>(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 {

Loading…
Cancel
Save