1 package com.airbnb.lottie.samples.model 2 3 import android.graphics.Color 4 import android.os.Parcelable 5 import androidx.annotation.ColorInt 6 import android.util.Log 7 import androidx.core.graphics.toColorInt 8 import com.airbnb.lottie.L 9 import kotlinx.android.parcel.Parcelize 10 11 // This is a lint bug 12 @SuppressWarnings("ParcelCreator") 13 @Parcelize 14 data class AnimationData( 15 val id: Long, 16 val title: String, 17 val description: String?, 18 private val bgColor: String?, 19 val aepFile: String, 20 val bodymovinVersion: String, 21 val slug: String, 22 val speed: String, 23 val preview: String?, 24 val lottieLink: String, 25 val userInfo: UserInfo? 26 ) : Parcelable { 27 @ColorInt bgColorIntnull28 fun bgColorInt(): Int { 29 var bgColor = this.bgColor ?: "#ffffff" 30 bgColor = if (bgColor.startsWith("#")) bgColor else "#$bgColor" 31 32 return try { 33 when (bgColor.length) { 34 0 -> "#ffffff" 35 4 -> "#%c%c%c%c%c%c".format( 36 bgColor[1], bgColor[1], 37 bgColor[2], bgColor[2], 38 bgColor[3], bgColor[3] 39 ) 40 5 -> "#%c%c%c%c%c%c%c%c".format( 41 bgColor[1], bgColor[1], 42 bgColor[2], bgColor[2], 43 bgColor[3], bgColor[3], 44 bgColor[4], bgColor[4] 45 ) 46 else -> bgColor 47 }.toColorInt() 48 } catch (e: IllegalArgumentException) { 49 Log.w(L.TAG, "Unable to parse $bgColor.") 50 Color.WHITE 51 } 52 } 53 }