@@ -8,37 +8,33 @@ import android.widget.SeekBar
88import androidx.appcompat.app.AppCompatActivity
99import androidx.core.view.children
1010import coil.Coil
11+ import coil.ComponentRegistry
1112import coil.ImageLoader
1213import coil.decode.GifDecoder
1314import coil.decode.ImageDecoderDecoder
1415import coil.decode.SvgDecoder
1516import coil.load
1617import coil.request.CachePolicy
1718import coil.util.DebugLogger
19+ import com.goodayapps.avatarview.databinding.ActivityMainBinding
1820import com.goodayapps.widget.AvatarDrawable
1921import com.goodayapps.widget.AvatarView
20- import kotlinx.android.synthetic.main.activity_main.*
2122
2223class MainActivity : AppCompatActivity () {
24+ private lateinit var binding: ActivityMainBinding
2325 override fun onCreate (savedInstanceState : Bundle ? ) {
2426 super .onCreate(savedInstanceState)
25- setContentView( R .layout.activity_main )
26- initCoil( this )
27+ binding = ActivityMainBinding .inflate(layoutInflater )
28+ setContentView(binding.root )
2729
2830 initViews()
2931
30- // avatar111.load("https://media4.giphy.com/media/f8hd7QP9LT31Rk2NG1/giphy.gif")
31- // avatar111.load("https://data.whicdn.com/images/337953887/original.gif"){
32- // placeholder(R.drawable.ic_circle)
33- // // crossfade(false)
34- // error(R.drawable.ic_circle)
35- // }
36-
37- avatar111.blurHash = " UBIEhD?d01D%0MbcIVWA0gIpV[f69zSO-o%2"
32+ binding.avatar111.load(" https://media4.giphy.com/media/f8hd7QP9LT31Rk2NG1/giphy.gif" )
3833 }
3934
4035 private fun initViews () {
41- iconDrawableScaleSeek.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
36+ binding.iconDrawableScaleSeek.setOnSeekBarChangeListener(object :
37+ OnSeekBarChangeListener () {
4238 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
4339 val processFl = progress / 100f
4440
@@ -47,7 +43,7 @@ class MainActivity : AppCompatActivity() {
4743 }
4844 }
4945 })
50- sizeSeek.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
46+ binding. sizeSeek.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
5147 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
5248 val processFl = progress / 100f
5349 val newSize = (convertDpToPixel(100 ) * processFl).toInt()
@@ -60,14 +56,14 @@ class MainActivity : AppCompatActivity() {
6056 }
6157 }
6258 })
63- avBorderWidth.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
59+ binding. avBorderWidth.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
6460 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
6561 applyToAvatars {
6662 it.borderWidth = convertDpToPixel(progress)
6763 }
6864 }
6965 })
70- avTextSizePercentage.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
66+ binding. avTextSizePercentage.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
7167 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
7268 val processFl = progress / 100f
7369
@@ -76,15 +72,15 @@ class MainActivity : AppCompatActivity() {
7672 }
7773 }
7874 })
79- avAvatarMargin.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
75+ binding. avAvatarMargin.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
8076 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
8177 applyToAvatars {
8278 it.avatarMargin = convertDpToPixel(progress)
8379 }
8480 }
8581 })
8682
87- avVolumetric.setOnCheckedChangeListener { _, checkedId ->
83+ binding. avVolumetric.setOnCheckedChangeListener { _, checkedId ->
8884 applyToAvatars {
8985 it.volumetricType = when (checkedId) {
9086 R .id.avVolumetricAll -> AvatarDrawable .Volumetric .ALL
@@ -94,30 +90,31 @@ class MainActivity : AppCompatActivity() {
9490 }
9591 }
9692 }
97- avBorderGradientAngle.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
93+ binding.avBorderGradientAngle.setOnSeekBarChangeListener(object :
94+ OnSeekBarChangeListener () {
9895 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
9996 applyToAvatars {
10097 it.borderGradientAngle = progress
10198 }
10299 }
103100 })
104101
105- archesDegreeArea.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
102+ binding. archesDegreeArea.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
106103 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
107104 applyToAvatars {
108105 it.archesDegreeArea = progress
109106 }
110107 }
111108 })
112109
113- archesCount.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
110+ binding. archesCount.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
114111 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
115112 applyToAvatars {
116113 it.archesCount = progress
117114 }
118115 }
119116 })
120- archesAngle.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
117+ binding. archesAngle.setOnSeekBarChangeListener(object : OnSeekBarChangeListener () {
121118 override fun onProgressChanged (seekBar : SeekBar ? , progress : Int , fromUser : Boolean ) {
122119 applyToAvatars {
123120 it.archesAngle = progress
@@ -127,36 +124,11 @@ class MainActivity : AppCompatActivity() {
127124 }
128125
129126 private inline fun applyToAvatars (action : (AvatarView ) -> Unit ) {
130- avatars_list .children.mapNotNull { it as ? AvatarView }.forEach { action.invoke(it) }
127+ binding.avatarsList .children.mapNotNull { it as ? AvatarView }.forEach { action.invoke(it) }
131128 }
132129
133130 private fun convertDpToPixel (dp : Int ): Int {
134131 val metrics = resources.displayMetrics
135132 return dp * (metrics.densityDpi / DisplayMetrics .DENSITY_DEFAULT )
136133 }
137-
138- private fun initCoil (context : Context ): ImageLoader {
139- val builder = ImageLoader .Builder (context)
140- .memoryCachePolicy(CachePolicy .DISABLED )
141- .crossfade(true )
142- .componentRegistry {
143- if (Build .VERSION .SDK_INT >= 28 ) {
144- add(ImageDecoderDecoder (context))
145- } else {
146- add(GifDecoder ())
147- }
148- add(SvgDecoder (context))
149- }
150-
151- if (BuildConfig .DEBUG ) {
152- builder.logger(DebugLogger ())
153- }
154-
155- val imageLoader = builder.build()
156-
157- Coil .setImageLoader(imageLoader)
158-
159- return imageLoader
160- }
161-
162134}
0 commit comments