优化
This commit is contained in:
@@ -48,8 +48,8 @@ class App : MultiDexApplication() {
|
|||||||
//清除过期数据
|
//清除过期数据
|
||||||
appDb.cacheDao.clearDeadline(System.currentTimeMillis())
|
appDb.cacheDao.clearDeadline(System.currentTimeMillis())
|
||||||
if (getPrefBoolean(PreferKey.autoClearExpired, true)) {
|
if (getPrefBoolean(PreferKey.autoClearExpired, true)) {
|
||||||
appDb.searchBookDao
|
val clearTime = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1)
|
||||||
.clearExpired(System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1))
|
appDb.searchBookDao.clearExpired(clearTime)
|
||||||
}
|
}
|
||||||
RuleBigDataHelp.clearInvalid()
|
RuleBigDataHelp.clearInvalid()
|
||||||
//初始化简繁转换引擎
|
//初始化简繁转换引擎
|
||||||
@@ -58,21 +58,8 @@ class App : MultiDexApplication() {
|
|||||||
2 -> ChineseUtils.s2t("初始化")
|
2 -> ChineseUtils.s2t("初始化")
|
||||||
}
|
}
|
||||||
//同步阅读记录
|
//同步阅读记录
|
||||||
if (!AppConfig.syncBookProgress) return@async
|
if (AppConfig.syncBookProgress) {
|
||||||
val books = appDb.bookDao.all
|
AppWebDav.downloadAllBookProgress()
|
||||||
books.forEach { book ->
|
|
||||||
AppWebDav.getBookProgress(book)?.let { bookProgress ->
|
|
||||||
if (bookProgress.durChapterIndex > book.durChapterIndex ||
|
|
||||||
(bookProgress.durChapterIndex == book.durChapterIndex &&
|
|
||||||
bookProgress.durChapterPos > book.durChapterPos)
|
|
||||||
) {
|
|
||||||
book.durChapterIndex = bookProgress.durChapterIndex
|
|
||||||
book.durChapterPos = bookProgress.durChapterPos
|
|
||||||
book.durChapterTitle = bookProgress.durChapterTitle
|
|
||||||
book.durChapterTime = bookProgress.durChapterTime
|
|
||||||
appDb.bookDao.update(book)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.os.Handler
|
|||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.constant.PreferKey
|
import io.legado.app.constant.PreferKey
|
||||||
|
import io.legado.app.data.appDb
|
||||||
import io.legado.app.data.entities.Book
|
import io.legado.app.data.entities.Book
|
||||||
import io.legado.app.data.entities.BookProgress
|
import io.legado.app.data.entities.BookProgress
|
||||||
import io.legado.app.exception.NoStackTraceException
|
import io.legado.app.exception.NoStackTraceException
|
||||||
@@ -166,6 +167,13 @@ object AppWebDav {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getProgressUrl(book: Book): String {
|
||||||
|
return bookProgressUrl + book.name + "_" + book.author + ".json"
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取书籍进度
|
||||||
|
*/
|
||||||
suspend fun getBookProgress(book: Book): BookProgress? {
|
suspend fun getBookProgress(book: Book): BookProgress? {
|
||||||
if (initWebDav() && NetworkUtils.isAvailable()) {
|
if (initWebDav() && NetworkUtils.isAvailable()) {
|
||||||
val url = getProgressUrl(book)
|
val url = getProgressUrl(book)
|
||||||
@@ -179,7 +187,21 @@ object AppWebDav {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getProgressUrl(book: Book): String {
|
suspend fun downloadAllBookProgress() {
|
||||||
return bookProgressUrl + book.name + "_" + book.author + ".json"
|
appDb.bookDao.all.forEach { book ->
|
||||||
|
getBookProgress(book)?.let { bookProgress ->
|
||||||
|
if (bookProgress.durChapterIndex > book.durChapterIndex ||
|
||||||
|
(bookProgress.durChapterIndex == book.durChapterIndex &&
|
||||||
|
bookProgress.durChapterPos > book.durChapterPos)
|
||||||
|
) {
|
||||||
|
book.durChapterIndex = bookProgress.durChapterIndex
|
||||||
|
book.durChapterPos = bookProgress.durChapterPos
|
||||||
|
book.durChapterTitle = bookProgress.durChapterTitle
|
||||||
|
book.durChapterTime = bookProgress.durChapterTime
|
||||||
|
appDb.bookDao.update(book)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user