Fix #373 and a few crashes

This commit is contained in:
len
2016-12-31 16:19:32 +01:00
parent a7192e866f
commit 3a1699f0b3
6 changed files with 31 additions and 11 deletions
@@ -141,6 +141,11 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() {
*/
private var adjacentChaptersSubscription: Subscription? = null
/**
* Whether the active chapter has been loaded.
*/
private var chapterLoaded = false
companion object {
/**
* Id of the restartable that loads the active chapter.
@@ -211,6 +216,7 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() {
return loader.loadChapter(chapter)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext { chapterLoaded = true }
}
/**
@@ -298,6 +304,7 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() {
nextChapter = null
prevChapter = null
chapterLoaded = false
start(LOAD_ACTIVE_CHAPTER)
getAdjacentChapters(chapter)
}
@@ -474,6 +481,9 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() {
* @return true if the next chapter is being loaded, false if there is no next chapter.
*/
fun loadNextChapter(): Boolean {
// Avoid skipping chapters.
if (!chapterLoaded) return true
nextChapter?.let {
onChapterLeft()
loadChapter(it, 0)
@@ -488,6 +498,9 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() {
* @return true if the previous chapter is being loaded, false if there is no previous chapter.
*/
fun loadPreviousChapter(): Boolean {
// Avoid skipping chapters.
if (!chapterLoaded) return true
prevChapter?.let {
onChapterLeft()
loadChapter(it, if (it.read) -1 else 0)