pull/1284/head
gedoor 4 years ago
parent 5cd2448f2a
commit b1d4fb39f2
  1. 16
      app/src/main/java/io/legado/app/data/dao/BookGroupDao.kt
  2. 7
      app/src/main/java/io/legado/app/ui/book/group/GroupViewModel.kt
  3. 16
      app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfViewModel.kt
  4. 1
      app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt

@ -54,4 +54,20 @@ interface BookGroupDao {
@Delete
fun delete(vararg bookGroup: BookGroup)
fun isInRules(id: Long): Boolean {
if (id < 0) {
return true
}
return id and (id - 1) == 0L
}
fun getUnusedId(): Long {
var id = 1L
val idsSum = idsSum
while (id and idsSum != 0L) {
id = id.shl(1)
}
return id
}
}

@ -17,13 +17,8 @@ class GroupViewModel(application: Application) : BaseViewModel(application) {
fun addGroup(groupName: String, cover: String?, finally: () -> Unit) {
execute {
var id = 1L
val idsSum = appDb.bookGroupDao.idsSum
while (id and idsSum != 0L) {
id = id.shl(1)
}
val bookGroup = BookGroup(
groupId = id,
groupId = appDb.bookGroupDao.getUnusedId(),
groupName = groupName,
cover = cover,
order = appDb.bookGroupDao.maxOrder.plus(1)

@ -5,7 +5,6 @@ import io.legado.app.R
import io.legado.app.base.BaseViewModel
import io.legado.app.data.appDb
import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookGroup
import io.legado.app.data.entities.BookSource
import io.legado.app.help.http.newCall
import io.legado.app.help.http.okHttpClient
@ -127,19 +126,4 @@ class BookshelfViewModel(application: Application) : BaseViewModel(application)
}
}
fun checkGroup(groups: List<BookGroup>) {
groups.forEach { group ->
if (group.groupId >= 0 && group.groupId and (group.groupId - 1) != 0L) {
var id = 1L
val idsSum = appDb.bookGroupDao.idsSum
while (id and idsSum != 0L) {
id = id.shl(1)
}
appDb.bookGroupDao.delete(group)
appDb.bookGroupDao.insert(group.copy(groupId = id))
appDb.bookDao.upGroup(group.groupId, id)
}
}
}
}

@ -79,7 +79,6 @@ class BookshelfFragment1 : BaseBookshelfFragment(R.layout.fragment_bookshelf),
private fun initBookGroupData() {
launch {
appDb.bookGroupDao.flowShow().collect {
viewModel.checkGroup(it)
upGroup(it)
}
}

Loading…
Cancel
Save