|
|
@ -202,25 +202,25 @@ object CacheBook { |
|
|
|
* 从待下载列表内取第一条下载 |
|
|
|
* 从待下载列表内取第一条下载 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Synchronized |
|
|
|
@Synchronized |
|
|
|
fun download(scope: CoroutineScope, context: CoroutineContext): Boolean { |
|
|
|
fun download(scope: CoroutineScope, context: CoroutineContext) { |
|
|
|
val chapterIndex = waitDownloadSet.firstOrNull() |
|
|
|
val chapterIndex = waitDownloadSet.firstOrNull() |
|
|
|
if (chapterIndex == null) { |
|
|
|
if (chapterIndex == null) { |
|
|
|
if (onDownloadSet.isEmpty()) { |
|
|
|
if (onDownloadSet.isEmpty()) { |
|
|
|
cacheBookMap.remove(book.bookUrl) |
|
|
|
cacheBookMap.remove(book.bookUrl) |
|
|
|
} |
|
|
|
} |
|
|
|
return false |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
if (onDownloadSet.contains(chapterIndex)) { |
|
|
|
if (onDownloadSet.contains(chapterIndex)) { |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
return download(scope, context) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
val chapter = appDb.bookChapterDao.getChapter(book.bookUrl, chapterIndex) ?: let { |
|
|
|
val chapter = appDb.bookChapterDao.getChapter(book.bookUrl, chapterIndex) ?: let { |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
return download(scope, context) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
if (BookHelp.hasContent(book, chapter)) { |
|
|
|
if (BookHelp.hasContent(book, chapter)) { |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
return download(scope, context) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
waitDownloadSet.remove(chapterIndex) |
|
|
|
onDownloadSet.add(chapterIndex) |
|
|
|
onDownloadSet.add(chapterIndex) |
|
|
@ -243,7 +243,6 @@ object CacheBook { |
|
|
|
}.onFinally { |
|
|
|
}.onFinally { |
|
|
|
onFinally() |
|
|
|
onFinally() |
|
|
|
} |
|
|
|
} |
|
|
|
return true |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Synchronized |
|
|
|
@Synchronized |
|
|
|