@@ -63,27 +63,13 @@ open class SVGAImageView : ImageView {
63
63
}
64
64
}
65
65
66
- private var detachedDrawable: WeakReference <Drawable >? = null
67
-
68
66
override fun onDetachedFromWindow () {
69
67
super .onDetachedFromWindow()
70
- this .drawable?.let {
71
- this .detachedDrawable = WeakReference (it)
72
- }
73
- this .setImageDrawable(null )
74
68
animator?.cancel()
75
69
animator?.removeAllListeners()
76
70
animator?.removeAllUpdateListeners()
77
71
}
78
72
79
- override fun onAttachedToWindow () {
80
- super .onAttachedToWindow()
81
- this .detachedDrawable?.get()?.let {
82
- this .setImageDrawable(it)
83
- this .detachedDrawable = null
84
- }
85
- }
86
-
87
73
private fun loadAttrs (attrs : AttributeSet ) {
88
74
val typedArray = context.theme.obtainStyledAttributes(attrs, R .styleable.SVGAImageView , 0 , 0 )
89
75
loops = typedArray.getInt(R .styleable.SVGAImageView_loopCount , 0 )
@@ -213,12 +199,16 @@ open class SVGAImageView : ImageView {
213
199
}
214
200
}
215
201
216
- fun setVideoItem (videoItem : SVGAVideoEntity ) {
202
+ fun setVideoItem (videoItem : SVGAVideoEntity ? ) {
217
203
setVideoItem(videoItem, SVGADynamicEntity ())
218
204
}
219
205
220
- fun setVideoItem (videoItem : SVGAVideoEntity , dynamicItem : SVGADynamicEntity ) {
221
- val drawable = SVGADrawable (videoItem, dynamicItem)
206
+ fun setVideoItem (videoItem : SVGAVideoEntity ? , dynamicItem : SVGADynamicEntity ? ) {
207
+ if (videoItem == null ) {
208
+ setImageDrawable(null )
209
+ return
210
+ }
211
+ val drawable = SVGADrawable (videoItem, dynamicItem ? : SVGADynamicEntity ())
222
212
drawable.cleared = clearsAfterStop
223
213
setImageDrawable(drawable)
224
214
}
0 commit comments