No longer using chapter url for new chapter notification's reader intent

This commit is contained in:
Jay 2020-04-28 16:47:18 -04:00 committed by arkon
parent e24ddb9106
commit cc7735e284
3 changed files with 15 additions and 23 deletions

View file

@ -116,8 +116,6 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
return Intent(context, ReaderActivity::class.java).apply { return Intent(context, ReaderActivity::class.java).apply {
putExtra("manga", manga.id) putExtra("manga", manga.id)
putExtra("chapter", chapter.id) putExtra("chapter", chapter.id)
// chapters just added from library updates don't have an id yet
putExtra("chapterUrl", chapter.url)
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
} }
} }
@ -141,14 +139,12 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
if (presenter.needsInit()) { if (presenter.needsInit()) {
val manga = intent.extras!!.getLong("manga", -1) val manga = intent.extras!!.getLong("manga", -1)
val chapter = intent.extras!!.getLong("chapter", -1) val chapter = intent.extras!!.getLong("chapter", -1)
val chapterUrl = intent.extras!!.getString("chapterUrl", "") if (manga == -1L || chapter == -1L) {
if (manga == -1L || chapterUrl == "" && chapter == -1L) {
finish() finish()
return return
} }
NotificationReceiver.dismissNotification(this, manga.hashCode(), Notifications.ID_NEW_CHAPTERS) NotificationReceiver.dismissNotification(this, manga.hashCode(), Notifications.ID_NEW_CHAPTERS)
if (chapter > -1) presenter.init(manga, chapter) presenter.init(manga, chapter)
else presenter.init(manga, chapterUrl)
} }
if (savedInstanceState != null) { if (savedInstanceState != null) {

View file

@ -211,21 +211,6 @@ class ReaderPresenter(
) )
} }
/**
* Initializes this presenter with the given [mangaId] and [chapterUrl]. This method will
* fetch the manga from the database and initialize the initial chapter.
*/
fun init(mangaId: Long, chapterUrl: String) {
if (!needsInit()) return
val context = Injekt.get<Application>()
val db = DatabaseHelper(context)
val chapterId = db.getChapter(chapterUrl, mangaId).executeAsBlocking()?.id
if (chapterId != null) {
init(mangaId, chapterId)
}
}
/** /**
* Initializes this presenter with the given [manga] and [initialChapterId]. This method will * Initializes this presenter with the given [manga] and [initialChapterId]. This method will
* set the chapter loader, view subscriptions and trigger an initial load. * set the chapter loader, view subscriptions and trigger an initial load.

View file

@ -120,7 +120,10 @@ fun syncChaptersWithSource(
readded.add(c) readded.add(c)
} }
} }
db.insertChapters(toAdd).executeAsBlocking() val chapters = db.insertChapters(toAdd).executeAsBlocking()
toAdd.forEach { chapter ->
chapter.id = chapters.results().getValue(chapter).insertedId()
}
} }
if (toChange.isNotEmpty()) { if (toChange.isNotEmpty()) {
@ -131,7 +134,15 @@ fun syncChaptersWithSource(
db.fixChaptersSourceOrder(sourceChapters).executeAsBlocking() db.fixChaptersSourceOrder(sourceChapters).executeAsBlocking()
// Set this manga as updated since chapters were changed // Set this manga as updated since chapters were changed
val newestChapter = db.getChapters(manga).executeAsBlocking().maxBy { it.date_upload }
val dateFetch = newestChapter?.date_upload ?: manga.last_update
if (dateFetch == 0L) {
if (toAdd.isNotEmpty()) {
manga.last_update = Date().time manga.last_update = Date().time
}
} else {
manga.last_update = dateFetch
}
db.updateLastUpdated(manga).executeAsBlocking() db.updateLastUpdated(manga).executeAsBlocking()
} }