mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
Opening a tracker webpage and returning to app now only refreshes that single tracker
This commit is contained in:
parent
72ded798e8
commit
5070710add
2 changed files with 18 additions and 17 deletions
|
@ -583,7 +583,7 @@ class MangaDetailsController :
|
|||
presenter.fetchChapters(refreshTracker == null)
|
||||
if (refreshTracker != null) {
|
||||
trackingBottomSheet?.refreshItem(refreshTracker ?: 0)
|
||||
presenter.refreshTracking()
|
||||
presenter.refreshTracking(trackIndex = refreshTracker)
|
||||
refreshTracker = null
|
||||
}
|
||||
// fetch cover again in case the user set a new cover while reading
|
||||
|
|
|
@ -886,26 +886,27 @@ class MangaDetailsPresenter(
|
|||
withContext(Dispatchers.Main) { controller?.refreshTracking(trackList) }
|
||||
}
|
||||
|
||||
fun refreshTracking(showOfflineSnack: Boolean = false) {
|
||||
fun refreshTracking(showOfflineSnack: Boolean = false, trackIndex: Int? = null) {
|
||||
if (controller?.isNotOnline(showOfflineSnack) == false) {
|
||||
presenterScope.launch {
|
||||
val asyncList = trackList.filter { it.track != null }.map { item ->
|
||||
async(Dispatchers.IO) {
|
||||
val trackItem = try {
|
||||
item.service.refresh(item.track!!)
|
||||
} catch (e: Exception) {
|
||||
trackError(e)
|
||||
null
|
||||
}
|
||||
if (trackItem != null) {
|
||||
db.insertTrack(trackItem).executeAsBlocking()
|
||||
if (item.service is EnhancedTrackService) {
|
||||
syncChaptersWithTrackServiceTwoWay(db, chapters, trackItem, item.service)
|
||||
val asyncList = (trackIndex?.let { listOf(trackList[it]) } ?: trackList.filter { it.track != null })
|
||||
.map { item ->
|
||||
async(Dispatchers.IO) {
|
||||
val trackItem = try {
|
||||
item.service.refresh(item.track!!)
|
||||
} catch (e: Exception) {
|
||||
trackError(e)
|
||||
null
|
||||
}
|
||||
trackItem
|
||||
} else item.track
|
||||
if (trackItem != null) {
|
||||
db.insertTrack(trackItem).executeAsBlocking()
|
||||
if (item.service is EnhancedTrackService) {
|
||||
syncChaptersWithTrackServiceTwoWay(db, chapters, trackItem, item.service)
|
||||
}
|
||||
trackItem
|
||||
} else item.track
|
||||
}
|
||||
}
|
||||
}
|
||||
asyncList.awaitAll()
|
||||
fetchTracks()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue