package com.offline.music.task.player.ui.adapter

import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.offline.music.task.player.ProApp
import com.offline.music.task.player.R
import com.offline.music.task.player.databinding.SoundsOfNatureLayoutBinding
import com.offline.music.task.player.db.bean.Audio
import com.offline.music.task.player.tools.util.convertMillisToMinutesAndSecondsString
import com.offline.music.task.player.tools.util.getAudioDurationFromAssets
import com.offline.music.task.player.ui.activity.PlayerActivity


class HomeVoiceOfNatureAdapter(
    private val context: Context,
    private val pdfList: List<Audio>,
) :
    RecyclerView.Adapter<HomeVoiceOfNatureAdapter.PDFViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PDFViewHolder {
        val binding =
            SoundsOfNatureLayoutBinding.inflate(LayoutInflater.from(context), parent, false)
        return PDFViewHolder(binding)
    }

    override fun onBindViewHolder(holder: PDFViewHolder, position: Int) {
        val audio = pdfList[position]
        holder.binding.apply {
            Glide.with(context)
                .load("file:///android_asset/${audio.image}")
                .into(image)
            name.text = audio.name
            val s = getAudioDurationFromAssets(context, audio.file)
            desc.text = convertMillisToMinutesAndSecondsString(s)

            if (ProApp.currentPlayingAudio != null) {
                if (ProApp.currentPlayingAudio?.file == audio.file) {
                    playingLayout.visibility = View.VISIBLE
                    name.setTextColor(context.getColor(R.color.blue))
                    desc.setTextColor(context.getColor(R.color.blue))
                } else {
                    playingLayout.visibility = View.GONE
                    name.setTextColor(context.getColor(R.color.white))
                    desc.setTextColor(context.getColor(R.color.white_60))
                }
            }
        }
        holder.itemView.setOnClickListener {
            val intent = Intent(context, PlayerActivity::class.java);
            intent.putExtra(PlayerActivity.KEY_DETAILS_AUDIO, audio)
            context.startActivity(intent)
        }
    }

    override fun getItemCount(): Int = pdfList.size

    inner class PDFViewHolder(val binding: SoundsOfNatureLayoutBinding) :
        RecyclerView.ViewHolder(binding.root)
}