@ -1,27 +1,24 @@
package org.mosad.teapod.activity.main.fragments
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.mosad.teapod.activity.main.MainActivity
import org.mosad.teapod.R
import org.mosad.teapod.activity.main.MainActivity
import org.mosad.teapod.databinding.FragmentHomeBinding
import org.mosad.teapod.parser.AoDParser
import org.mosad.teapod.util.ItemMedia
import org.mosad.teapod.util.StorageController
import org.mosad.teapod.util.adapter.MediaItemAdapter
import org.mosad.teapod.util.decoration.MediaItemDecoration
import org.mosad.teapod.util.setDrawableTop
import org.mosad.teapod.util.showFragment
class HomeFragment : Fragment ( ) {
@ -31,6 +28,7 @@ class HomeFragment : Fragment() {
private lateinit var adapterNewEpisodes : MediaItemAdapter
private lateinit var adapterNewSimulcasts : MediaItemAdapter
private lateinit var adapterNewTitles : MediaItemAdapter
private lateinit var adapterTopTen : MediaItemAdapter
private lateinit var highlightMedia : ItemMedia
@ -60,9 +58,9 @@ class HomeFragment : Fragment() {
. into ( binding . imageHighlight )
if ( StorageController . myList . contains ( highlightMedia . id ) ) {
loadIntoCompoundDrawable ( R . drawable . ic _baseline _check _24 , binding . textHighlightMyList )
binding . textHighlightMyList . setDrawableTop ( R . drawable . ic _baseline _check _24 )
} else {
loadIntoCompoundDrawable ( R . drawable . ic _baseline _add _24 , binding . textHighlightMyList )
binding . textHighlightMyList . setDrawableTop ( R . drawable . ic _baseline _add _24 )
}
}
}
@ -72,6 +70,7 @@ class HomeFragment : Fragment() {
binding . recyclerNewEpisodes . addItemDecoration ( MediaItemDecoration ( 9 ) )
binding . recyclerNewSimulcasts . addItemDecoration ( MediaItemDecoration ( 9 ) )
binding . recyclerNewTitles . addItemDecoration ( MediaItemDecoration ( 9 ) )
binding . recyclerTopTen . addItemDecoration ( MediaItemDecoration ( 9 ) )
// my list
val myListMedia = StorageController . myList . map { elementId ->
@ -93,6 +92,10 @@ class HomeFragment : Fragment() {
// new titles
adapterNewTitles = MediaItemAdapter ( AoDParser . newTitlesList )
binding . recyclerNewTitles . adapter = adapterNewTitles
// top ten
adapterTopTen = MediaItemAdapter ( AoDParser . topTenList )
binding . recyclerTopTen . adapter = adapterTopTen
}
private fun initActions ( ) {
@ -109,10 +112,10 @@ class HomeFragment : Fragment() {
binding . textHighlightMyList . setOnClickListener {
if ( StorageController . myList . contains ( highlightMedia . id ) ) {
StorageController . myList . remove ( highlightMedia . id )
loadIntoCompoundDrawable ( R . drawable . ic _baseline _add _24 , binding . textHighlightMyList )
binding . textHighlightMyList . setDrawableTop ( R . drawable . ic _baseline _add _24 )
} else {
StorageController . myList . add ( highlightMedia . id )
loadIntoCompoundDrawable ( R . drawable . ic _baseline _check _24 , binding . textHighlightMyList )
binding . textHighlightMyList . setDrawableTop ( R . drawable . ic _baseline _check _24 )
}
StorageController . saveMyList ( requireContext ( ) )
@ -138,6 +141,10 @@ class HomeFragment : Fragment() {
adapterNewTitles . onItemClick = { mediaId , _ ->
activity ?. showFragment ( MediaFragment ( mediaId ) )
}
adapterTopTen . onItemClick = { mediaId , _ ->
activity ?. showFragment ( MediaFragment ( mediaId ) )
}
}
/ * *
@ -157,18 +164,4 @@ class HomeFragment : Fragment() {
adapterMyList . notifyDataSetChanged ( )
}
private fun loadIntoCompoundDrawable ( drawable : Int , textView : TextView ) {
Glide . with ( requireContext ( ) )
. load ( drawable )
. into ( object : CustomTarget < Drawable > ( 48 , 48 ) {
override fun onLoadCleared ( drawable : Drawable ? ) {
textView . setCompoundDrawablesWithIntrinsicBounds ( null , drawable , null , null )
}
override fun onResourceReady ( res : Drawable , transition : Transition < in Drawable > ? ) {
textView . setCompoundDrawablesWithIntrinsicBounds ( null , res , null , null )
}
} )
}
}