52 lines
2.2 KiB
Kotlin
52 lines
2.2 KiB
Kotlin
|
package com.adlerosn.brasilfurfest.schedule.adapters
|
||
|
|
||
|
import android.content.Intent
|
||
|
import android.content.res.ColorStateList
|
||
|
import android.database.DataSetObserver
|
||
|
import android.net.Uri
|
||
|
import android.view.View
|
||
|
import android.view.ViewGroup
|
||
|
import android.widget.ListAdapter
|
||
|
import com.adlerosn.brasilfurfest.R
|
||
|
import com.adlerosn.brasilfurfest.helper.layoutInflater
|
||
|
import com.adlerosn.brasilfurfest.helper.runtimeLanguage
|
||
|
import com.adlerosn.brasilfurfest.schedule.abstractDataTypes.convention.Convention
|
||
|
import com.adlerosn.brasilfurfest.schedule.abstractDataTypes.convention.SocialMedia
|
||
|
import kotlinx.android.synthetic.main.fragment_socialmedia_item.view.*
|
||
|
|
||
|
|
||
|
class ConventionSocialMediasAdapter(private val convention: Convention) : ListAdapter {
|
||
|
override fun isEmpty(): Boolean = convention.socialMedias.isEmpty()
|
||
|
override fun getCount(): Int = convention.socialMedias.size
|
||
|
override fun getItem(position: Int): SocialMedia = convention.socialMedias[position]
|
||
|
|
||
|
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
|
||
|
val view = convertView ?: parent.context.layoutInflater.inflate(R.layout.fragment_socialmedia_item, parent, false)
|
||
|
val language = parent.context.runtimeLanguage
|
||
|
val data = getItem(position)
|
||
|
view.apply {
|
||
|
icon.setImageDrawable(resources.getDrawable(data.icon, null))
|
||
|
icon.imageTintList = ColorStateList.valueOf(data.color)
|
||
|
title.text = data.names[language]
|
||
|
val url = data.url[language]
|
||
|
description.text = url
|
||
|
setOnClickListener {
|
||
|
val i = Intent(Intent.ACTION_VIEW)
|
||
|
i.data = Uri.parse(url)
|
||
|
parent.context.startActivity(i)
|
||
|
}
|
||
|
}
|
||
|
return view
|
||
|
}
|
||
|
|
||
|
override fun registerDataSetObserver(observer: DataSetObserver?) {}
|
||
|
override fun unregisterDataSetObserver(observer: DataSetObserver?) {}
|
||
|
override fun getViewTypeCount(): Int = 1
|
||
|
override fun getItemViewType(position: Int): Int = 0
|
||
|
override fun getItemId(position: Int): Long = position.toLong()
|
||
|
override fun hasStableIds(): Boolean = true
|
||
|
override fun isEnabled(position: Int): Boolean = true
|
||
|
override fun areAllItemsEnabled(): Boolean = true
|
||
|
|
||
|
}
|