diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/download/DefaultContentDownloadStateTracker.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/download/DefaultContentDownloadStateTracker.kt index 10076ba1d5..9d322ccd84 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/download/DefaultContentDownloadStateTracker.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/download/DefaultContentDownloadStateTracker.kt @@ -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() private val listeners = mutableMapOf>() @@ -54,6 +52,7 @@ class DefaultContentDownloadStateTracker @Inject constructor() : ProgressListene } override fun clear() { + states.clear() listeners.clear() } diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/TimelineEventController.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/TimelineEventController.kt index dbddb5cac7..8bfe9657fc 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/TimelineEventController.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/TimelineEventController.kt @@ -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) } diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/helper/ContentDownloadStateTrackerBinder.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/helper/ContentDownloadStateTrackerBinder.kt index 68707be5bb..093ec8fb4b 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/helper/ContentDownloadStateTrackerBinder.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/helper/ContentDownloadStateTrackerBinder.kt @@ -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()