package com.example.smartlab.Adapter

import android.content.Context
import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.core.net.toUri
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.example.smartlab.Model.NewsItem
import com.example.smartlab.R
import com.example.smartlab.databinding.PartNewsBinding
import com.squareup.picasso.Picasso;

class AdapterNews() :
    RecyclerView.Adapter<AdapterNews.NewHolder>() {
    private val newsList = ArrayList<NewsItem>()
    // ViewHolder описывает вид элемента и метаданные о его месте в RecyclerView
    class NewHolder(item: View) : RecyclerView.ViewHolder(item) {
        private val binding = PartNewsBinding.bind(item) // Находим необходимый layout (шаблон)

        fun bind(new: NewsItem) = with(binding)
        {
            // Расскладываем данные по объектам на странице Itemobject
            newsName.text = new.name
            newsDescription.text = new.description
            newsPrice.text = new.price.toString() + " ₽"

            Picasso.get().load(new.image).into(newsImage)
            //val uri: Uri = new.image.toUri()
            // newsImage.setImageURI(uri)
            /*Glide.with(context)
                .load(new.image)
                .into(newsImage)*/
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.part_news, parent, false)
        return NewHolder(view)
    }
     override fun onBindViewHolder(holder: NewHolder, position: Int) {
        holder.bind(newsList[position])
    }

    override fun getItemCount(): Int {
        return newsList.size
    }

    //Добавляем объект в лист и сохраняем изменения
    fun addNew(new: NewsItem) {

        newsList.add(new)
        notifyDataSetChanged()
    }
}