• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }