conventionschedule-android/app/src/main/java/com/adlerosn/brasilfurfest/schedule/adapters/ConventionSocialMediasAdapt...

52 lines
2.2 KiB
Kotlin
Raw Normal View History

2018-07-14 19:43:24 +00:00
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
}