2020-10-08 22:20:20 +02:00
package org.mosad.teapod.ui.search
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
2020-10-11 18:07:00 +02:00
import android.widget.SearchView
2020-10-08 22:20:20 +02:00
import androidx.fragment.app.Fragment
2020-10-11 14:25:47 +02:00
import kotlinx.android.synthetic.main.fragment_search.*
2020-10-11 18:07:00 +02:00
import kotlinx.coroutines.*
import org.mosad.teapod.MainActivity
2020-10-08 22:20:20 +02:00
import org.mosad.teapod.R
2020-10-11 18:07:00 +02:00
import org.mosad.teapod.parser.AoDParser
import org.mosad.teapod.util.CustomAdapter
2020-10-12 17:52:24 +02:00
import org.mosad.teapod.util.Media
2020-10-08 22:20:20 +02:00
class SearchFragment : Fragment ( ) {
2020-10-12 20:30:45 +02:00
private val instance = this
2020-10-11 18:07:00 +02:00
private lateinit var adapter : CustomAdapter
2020-10-11 14:25:47 +02:00
override fun onCreateView ( inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ) : View ? {
return inflater . inflate ( R . layout . fragment _search , container , false )
}
2020-10-08 22:20:20 +02:00
2020-10-11 14:25:47 +02:00
override fun onViewCreated ( view : View , savedInstanceState : Bundle ? ) {
super . onViewCreated ( view , savedInstanceState )
2020-10-11 18:07:00 +02:00
GlobalScope . launch {
if ( AoDParser . mediaList . isEmpty ( ) ) {
AoDParser ( ) . listAnimes ( )
}
// create and set the adapter, needs context
withContext ( Dispatchers . Main ) {
2020-10-12 20:30:45 +02:00
context ?. let {
adapter = CustomAdapter ( it , AoDParser . mediaList )
list _search . adapter = adapter
}
2020-10-11 18:07:00 +02:00
}
}
2020-10-12 20:30:45 +02:00
initActions ( )
2020-10-11 18:07:00 +02:00
}
private fun initActions ( ) {
search _text . setOnQueryTextListener ( object : SearchView . OnQueryTextListener {
override fun onQueryTextSubmit ( query : String ? ) : Boolean {
return false
}
override fun onQueryTextChange ( newText : String ? ) : Boolean {
adapter . filter . filter ( newText )
adapter . notifyDataSetChanged ( )
return false
}
} )
list _search . setOnItemClickListener { _ , _ , position , _ ->
2020-10-12 17:52:24 +02:00
val media = adapter . getItem ( position ) as Media
2020-10-11 18:07:00 +02:00
println ( " selected item is: ${media.title} " )
val mainActivity = activity as MainActivity
mainActivity . showDetailFragment ( media )
}
2020-10-08 22:20:20 +02:00
}
}