Otter-App-Android-Funkwhale/app/src/main/java/com/github/apognu/otter/views/LoaderViews.kt

59 lines
1.6 KiB
Kotlin

package com.github.apognu.otter.views
import android.animation.ObjectAnimator
import android.content.Context
import android.graphics.drawable.Drawable
import android.view.View
import android.widget.ImageView
import com.github.apognu.otter.R
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
object LoadingFlotingActionButton {
fun start(button: ExtendedFloatingActionButton): ObjectAnimator {
button.isEnabled = false
button.setIconResource(R.drawable.fab_spinner)
button.shrink()
return ObjectAnimator.ofFloat(button, View.ROTATION, 0f, 360f).apply {
duration = 500
repeatCount = ObjectAnimator.INFINITE
start()
}
}
fun stop(button: ExtendedFloatingActionButton, animator: ObjectAnimator) {
animator.cancel()
button.isEnabled = true
button.setIconResource(R.drawable.play)
button.rotation = 0.0f
button.extend()
}
}
object LoadingImageView {
fun start(context: Context?, image: ImageView): ObjectAnimator? {
context?.let {
image.isEnabled = false
image.setImageDrawable(context.getDrawable(R.drawable.fab_spinner))
return ObjectAnimator.ofFloat(image, View.ROTATION, 0f, 360f).apply {
duration = 500
repeatCount = ObjectAnimator.INFINITE
start()
}
}
return null
}
fun stop(context: Context?, original: Drawable, image: ImageView, animator: ObjectAnimator?) {
context?.let {
animator?.cancel()
image.isEnabled = true
image.setImageDrawable(original)
image.rotation = 0.0f
}
}
}