blob: 25b9914899000936102f8cc1da1a7352dac042a7 [file] [log] [blame]
package com.airbnb.lottie.samples.model
import android.graphics.Color
import android.os.Parcelable
import android.support.annotation.ColorInt
import android.util.Log
import androidx.core.graphics.toColorInt
import com.airbnb.lottie.L
import kotlinx.android.parcel.Parcelize
// This is a lint bug
@SuppressWarnings("ParcelCreator")
@Parcelize
data class AnimationData(
val id: Long,
val title: String,
val description: String?,
private val bgColor: String?,
val aepFile: String,
val bodymovinVersion: String,
val slug: String,
val speed: String,
val preview: String?,
val lottieLink: String,
val userInfo: UserInfo?
) : Parcelable {
@ColorInt
fun bgColorInt(): Int {
var bgColor = this.bgColor ?: "#ffffff"
bgColor = if (bgColor.startsWith("#")) bgColor else "#$bgColor"
return try {
when (bgColor.length) {
0 -> "#ffffff"
4 -> "#%c%c%c%c%c%c".format(
bgColor[1], bgColor[1],
bgColor[2], bgColor[2],
bgColor[3], bgColor[3]
)
5 -> "#%c%c%c%c%c%c%c%c".format(
bgColor[1], bgColor[1],
bgColor[2], bgColor[2],
bgColor[3], bgColor[3],
bgColor[4], bgColor[4]
)
else -> bgColor
}.toColorInt()
} catch (e: IllegalArgumentException) {
Log.w(L.TAG, "Unable to parse $bgColor.")
Color.WHITE
}
}
}