123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package com.ted.weather.ui.adapter
- import android.support.v7.widget.RecyclerView
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import com.ted.weather.R
- import com.ted.weather.domain.model.Forecast
- import com.ted.weather.domain.model.ForecastList
- import com.ted.weather.extensions.ctx
- import com.ted.weather.extensions.toDateString
- import com.squareup.picasso.Picasso
- import kotlinx.android.synthetic.main.item_forecast.view.*
- class ForecastListAdapter(val weekForecast: ForecastList, val itemClick: (Forecast) -> Unit) :
- RecyclerView.Adapter<ForecastListAdapter.ViewHolder>() {
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
- val view = LayoutInflater.from(parent.ctx).inflate(R.layout.item_forecast, parent, false)
- return ViewHolder(view, itemClick)
- }
- override fun onBindViewHolder(holder: ViewHolder, position: Int) {
- holder.bindForecast(weekForecast[position])
- }
- override fun getItemCount() = weekForecast.size
- class ViewHolder(view: View, val itemClick: (Forecast) -> Unit) : RecyclerView.ViewHolder(view) {
- fun bindForecast(forecast: Forecast) {
- with(forecast) {
- Picasso.with(itemView.ctx).load(iconUrl).into(itemView.icon)
- itemView.date.text = date.toDateString()
- itemView.description.text = description
- itemView.maxTemperature.text = "{$high}º"
- itemView.minTemperature.text = "{$low}º"
- itemView.setOnClickListener { itemClick(this) }
- }
- }
- }
- }
|