Timeline: don't retry automatically to avoid totally blocking pagination
This commit is contained in:
parent
26c8b90e80
commit
35bd3946b5
@ -496,7 +496,6 @@ internal class DefaultTimeline(
|
||||
Timber.v("Should fetch $limit items $direction")
|
||||
cancelableBag += paginationTask
|
||||
.configureWith(params) {
|
||||
this.retryCount = Int.MAX_VALUE
|
||||
this.constraints = TaskConstraints(connectedToNetwork = true)
|
||||
this.callback = object : MatrixCallback<TokenChunkEventPersistor.Result> {
|
||||
override fun onSuccess(data: TokenChunkEventPersistor.Result) {
|
||||
@ -517,6 +516,8 @@ internal class DefaultTimeline(
|
||||
}
|
||||
|
||||
override fun onFailure(failure: Throwable) {
|
||||
updateState(direction) { it.copy(isPaginating = false, requestedPaginationCount = 0) }
|
||||
postSnapshot()
|
||||
Timber.v("Failure fetching $limit items $direction from pagination request")
|
||||
}
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec
|
||||
showingForwardLoader = LoadingItem_()
|
||||
.id("forward_loading_item_$timestamp")
|
||||
.setVisibilityStateChangedListener(Timeline.Direction.FORWARDS)
|
||||
.addWhen(Timeline.Direction.FORWARDS)
|
||||
.addWhenLoading(Timeline.Direction.FORWARDS)
|
||||
|
||||
val timelineModels = getModels()
|
||||
add(timelineModels)
|
||||
@ -224,7 +224,7 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec
|
||||
LoadingItem_()
|
||||
.id("backward_loading_item_$timestamp")
|
||||
.setVisibilityStateChangedListener(Timeline.Direction.BACKWARDS)
|
||||
.addWhen(Timeline.Direction.BACKWARDS)
|
||||
.addWhenLoading(Timeline.Direction.BACKWARDS)
|
||||
}
|
||||
}
|
||||
|
||||
@ -245,6 +245,7 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec
|
||||
currentSnapshot = newSnapshot
|
||||
val diffResult = DiffUtil.calculateDiff(diffCallback)
|
||||
diffResult.dispatchUpdatesTo(listUpdateCallback)
|
||||
requestDelayedModelBuild(100)
|
||||
inSubmitList = false
|
||||
}
|
||||
}
|
||||
@ -317,7 +318,7 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec
|
||||
/**
|
||||
* Return true if added
|
||||
*/
|
||||
private fun LoadingItem_.addWhen(direction: Timeline.Direction): Boolean {
|
||||
private fun LoadingItem_.addWhenLoading(direction: Timeline.Direction): Boolean {
|
||||
val shouldAdd = timeline?.hasMoreToLoad(direction) ?: false
|
||||
addIf(shouldAdd, this@TimelineEventController)
|
||||
return shouldAdd
|
||||
|
Loading…
x
Reference in New Issue
Block a user