mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-22 17:35:54 +03:00
Fix / clear on detached
This commit is contained in:
parent
f5c1ad8f2a
commit
7ed9f535e6
3 changed files with 6 additions and 4 deletions
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue