mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-16 14:07:28 +01:00
Minor fixes when updating the manga viewer
This commit is contained in:
@@ -99,7 +99,7 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() {
|
||||
|
||||
fun newIntent(context: Context, manga: Manga, chapter: Chapter): Intent {
|
||||
val intent = Intent(context, ReaderActivity::class.java)
|
||||
intent.putExtra("manga", manga)
|
||||
intent.putExtra("manga", manga.id)
|
||||
intent.putExtra("chapter", chapter.id)
|
||||
return intent
|
||||
}
|
||||
@@ -117,10 +117,10 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() {
|
||||
setContentView(R.layout.reader_activity)
|
||||
|
||||
if (presenter.needsInit()) {
|
||||
val manga = intent.extras.getSerializable("manga") as? Manga
|
||||
val manga = intent.extras.getLong("manga", -1)
|
||||
val chapter = intent.extras.getLong("chapter", -1)
|
||||
|
||||
if (manga == null || chapter == -1L) {
|
||||
if (manga == -1L || chapter == -1L) {
|
||||
finish()
|
||||
return
|
||||
}
|
||||
|
||||
@@ -157,11 +157,27 @@ class ReaderPresenter(
|
||||
return manga == null
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes this presenter with the given [mangaId] and [initialChapterId]. This method will
|
||||
* fetch the manga from the database and initialize the initial chapter.
|
||||
*/
|
||||
fun init(mangaId: Long, initialChapterId: Long) {
|
||||
if (!needsInit()) return
|
||||
|
||||
db.getManga(mangaId).asRxObservable()
|
||||
.first()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.doOnNext { init(it, initialChapterId) }
|
||||
.subscribeFirst({ _, _ ->
|
||||
// Ignore onNext event
|
||||
}, ReaderActivity::setInitialChapterError)
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes this presenter with the given [manga] and [initialChapterId]. This method will
|
||||
* set the chapter loader, view subscriptions and trigger an initial load.
|
||||
*/
|
||||
fun init(manga: Manga, initialChapterId: Long) {
|
||||
private fun init(manga: Manga, initialChapterId: Long) {
|
||||
if (!needsInit()) return
|
||||
|
||||
this.manga = manga
|
||||
@@ -180,6 +196,7 @@ class ReaderPresenter(
|
||||
.fromCallable { chapterList.first { chapterId == it.chapter.id } }
|
||||
.flatMap { getLoadObservable(loader!!, it) }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribeFirst({ _, _ ->
|
||||
// Ignore onNext event
|
||||
}, ReaderActivity::setInitialChapterError)
|
||||
@@ -374,8 +391,7 @@ class ReaderPresenter(
|
||||
fun setMangaViewer(viewer: Int) {
|
||||
val manga = manga ?: return
|
||||
manga.viewer = viewer
|
||||
// TODO custom put operation
|
||||
db.insertManga(manga).executeAsBlocking()
|
||||
db.updateMangaViewer(manga).executeAsBlocking()
|
||||
|
||||
Observable.timer(250, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread())
|
||||
.subscribeFirst({ view, _ ->
|
||||
|
||||
Reference in New Issue
Block a user