66 lines
2.2 KiB
Kotlin
66 lines
2.2 KiB
Kotlin
package org.mosad.teapod.ui.fragments
|
|
|
|
import android.os.Bundle
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import androidx.fragment.app.Fragment
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import kotlinx.android.synthetic.main.fragment_home.*
|
|
import kotlinx.coroutines.Dispatchers
|
|
import kotlinx.coroutines.GlobalScope
|
|
import kotlinx.coroutines.launch
|
|
import kotlinx.coroutines.withContext
|
|
import org.mosad.teapod.MainActivity
|
|
import org.mosad.teapod.R
|
|
import org.mosad.teapod.parser.AoDParser
|
|
import org.mosad.teapod.util.StorageController
|
|
import org.mosad.teapod.util.adapter.MediaItemAdapter
|
|
import org.mosad.teapod.util.decoration.MediaItemDecoration
|
|
|
|
class HomeFragment : Fragment() {
|
|
|
|
private lateinit var adapter: MediaItemAdapter
|
|
private lateinit var layoutManager: LinearLayoutManager
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
|
return inflater.inflate(R.layout.fragment_home, container, false)
|
|
}
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
super.onViewCreated(view, savedInstanceState)
|
|
|
|
GlobalScope.launch {
|
|
if (AoDParser.mediaList.isEmpty()) {
|
|
AoDParser().listAnimes()
|
|
}
|
|
|
|
withContext(Dispatchers.Main) {
|
|
context?.let {
|
|
layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
|
|
recycler_my_list.layoutManager = layoutManager
|
|
recycler_my_list.addItemDecoration(MediaItemDecoration(9))
|
|
|
|
updateMyListMedia()
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
// TODO recreating the adapter on list change is not a good solution
|
|
fun updateMyListMedia() {
|
|
val myListMedia = StorageController.myList.map { listElement ->
|
|
AoDParser.mediaList.first {
|
|
listElement == it.link
|
|
}
|
|
}
|
|
|
|
adapter = MediaItemAdapter(myListMedia)
|
|
adapter.onItemClick = { media, _ ->
|
|
(activity as MainActivity).showMediaFragment(media)
|
|
}
|
|
|
|
recycler_my_list.adapter = adapter
|
|
}
|
|
} |