Fix / clear on detached

This commit is contained in:
Valere 2020-06-26 09:44:51 +02:00 committed by Benoit Marty
parent f5c1ad8f2a
commit 7ed9f535e6
3 changed files with 6 additions and 4 deletions

View file

@ -27,8 +27,6 @@ import javax.inject.Inject
class DefaultContentDownloadStateTracker @Inject constructor() : ProgressListener, ContentDownloadStateTracker {
private val mainHandler = Handler(Looper.getMainLooper())
// TODO this will grow undefinitly..
private val states = mutableMapOf<String, ContentDownloadStateTracker.State>()
private val listeners = mutableMapOf<String, MutableList<ContentDownloadStateTracker.UpdateListener>>()
@ -54,6 +52,7 @@ class DefaultContentDownloadStateTracker @Inject constructor() : ProgressListene
}
override fun clear() {
states.clear()
listeners.clear()
}

View file

@ -41,6 +41,7 @@ import im.vector.riotx.features.home.room.detail.RoomDetailViewState
import im.vector.riotx.features.home.room.detail.UnreadState
import im.vector.riotx.features.home.room.detail.timeline.factory.MergedHeaderItemFactory
import im.vector.riotx.features.home.room.detail.timeline.factory.TimelineItemFactory
import im.vector.riotx.features.home.room.detail.timeline.helper.ContentDownloadStateTrackerBinder
import im.vector.riotx.features.home.room.detail.timeline.helper.ContentUploadStateTrackerBinder
import im.vector.riotx.features.home.room.detail.timeline.helper.ReadMarkerVisibilityStateChangedListener
import im.vector.riotx.features.home.room.detail.timeline.helper.TimelineEventDiffUtilCallback
@ -60,6 +61,7 @@ import javax.inject.Inject
class TimelineEventController @Inject constructor(private val dateFormatter: VectorDateFormatter,
private val contentUploadStateTrackerBinder: ContentUploadStateTrackerBinder,
private val contentDownloadStateTrackerBinder: ContentDownloadStateTrackerBinder,
private val timelineItemFactory: TimelineItemFactory,
private val timelineMediaSizeProvider: TimelineMediaSizeProvider,
private val mergedHeaderItemFactory: MergedHeaderItemFactory,
@ -227,6 +229,7 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec
override fun onDetachedFromRecyclerView(recyclerView: RecyclerView) {
timelineMediaSizeProvider.recyclerView = null
contentUploadStateTrackerBinder.clear()
contentDownloadStateTrackerBinder.clear()
timeline?.removeListener(this)
super.onDetachedFromRecyclerView(recyclerView)
}

View file

@ -57,7 +57,7 @@ class ContentDownloadStateTrackerBinder @Inject constructor(private val activeSe
fun clear() {
activeSessionHolder.getSafeActiveSession()?.also {
it.contentUploadProgressTracker().clear()
it.contentDownloadProgressTracker().clear()
}
}
}
@ -76,7 +76,7 @@ private class ContentDownloadUpdater(private val holder: MessageFileItem.Holder,
}
}
private var animatedDrawable: AnimatedVectorDrawableCompat? = null
private var animatedDrawable: AnimatedVectorDrawableCompat? = null
private var animationLoopCallback = object : Animatable2Compat.AnimationCallback() {
override fun onAnimationEnd(drawable: Drawable?) {
animatedDrawable?.start()