|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  package eu.kanade.tachiyomi.ui.manga.chapter
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import android.animation.ObjectAnimator
 | 
	
		
			
				|  |  |  import android.content.Context
 | 
	
		
			
				|  |  |  import android.util.AttributeSet
 | 
	
		
			
				|  |  |  import android.view.LayoutInflater
 | 
	
	
		
			
				|  | @@ -13,6 +14,9 @@ class ChapterDownloadView @JvmOverloads constructor(context: Context, attrs: Att
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private val binding: ChapterDownloadViewBinding
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private var downloadIconAnimator: ObjectAnimator? = null
 | 
	
		
			
				|  |  | +    private var isAnimating = false
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      init {
 | 
	
		
			
				|  |  |          binding = ChapterDownloadViewBinding.inflate(LayoutInflater.from(context), this, false)
 | 
	
		
			
				|  |  |          addView(binding.root)
 | 
	
	
		
			
				|  | @@ -20,7 +24,24 @@ class ChapterDownloadView @JvmOverloads constructor(context: Context, attrs: Att
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      fun setState(state: Download.State) {
 | 
	
		
			
				|  |  |          binding.downloadIconBorder.isVisible = state == Download.State.NOT_DOWNLOADED
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          binding.downloadIcon.isVisible = state == Download.State.NOT_DOWNLOADED || state == Download.State.DOWNLOADING
 | 
	
		
			
				|  |  | +        if (state == Download.State.DOWNLOADING) {
 | 
	
		
			
				|  |  | +            if (!isAnimating) {
 | 
	
		
			
				|  |  | +                downloadIconAnimator =
 | 
	
		
			
				|  |  | +                    ObjectAnimator.ofFloat(binding.downloadIcon, "alpha", 1f, 0f).apply {
 | 
	
		
			
				|  |  | +                        duration = 1000
 | 
	
		
			
				|  |  | +                        repeatCount = ObjectAnimator.INFINITE
 | 
	
		
			
				|  |  | +                        repeatMode = ObjectAnimator.REVERSE
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                downloadIconAnimator?.start()
 | 
	
		
			
				|  |  | +                isAnimating = true
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            downloadIconAnimator?.cancel()
 | 
	
		
			
				|  |  | +            binding.downloadIcon.alpha = 1f
 | 
	
		
			
				|  |  | +            isAnimating = false
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          binding.downloadProgress.isVisible = state == Download.State.DOWNLOADING || state == Download.State.QUEUE
 | 
	
		
			
				|  |  |          // TODO: show actual download progress
 |