package com.shiny.keyboard.frag

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import com.shiny.keyboard.database.BaseDataBase
import com.shiny.keyboard.database.DbHelper
import com.shiny.keyboard.databinding.FragLikeBinding
import com.shiny.keyboard.mylistener.OnCancelLikeListener
import com.shiny.keyboard.recycler.AdapterLike
import kotlinx.coroutines.launch

class FragmentFavorite : Fragment() {
    private lateinit var vb: FragLikeBinding


    companion object {

        @JvmStatic
        fun newInstance() =
            FragmentFavorite()
    }

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        vb = FragLikeBinding.inflate(layoutInflater)

        init()

        return vb.root
    }


    private fun init() {
        val mainAdapter = AdapterLike(
            requireContext()
        ).apply {
            setRemoveLike(object : OnCancelLikeListener {
                override fun onRemoveLike(data: com.shiny.keyboard.bean.ChildData) {
                     lifecycleScope.launch {
                         DbHelper.removeLike(data)
                     }
                }

            })
        }
        vb.likeRecycler.run {
            adapter = mainAdapter
            layoutManager = GridLayoutManager(requireContext(), 2)
        }

        BaseDataBase.baseDataBase.ThemesDao().queryAllLike().observe(requireActivity()) {
            if(it.isNullOrEmpty()){
                vb.likeRecycler.isVisible = false
                vb.emptyTitle.isVisible = true
            }else{
                vb.likeRecycler.isVisible = true
                vb.emptyTitle.isVisible = false
                mainAdapter.setForYouList(it)
            }

        }
    }


}