aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/xyz/adjutor/aniki/presentation/view/manga/TopMangaPage.kt
blob: 98eb0ddf2d2b0e72ef3f0b24079a092b39a71a94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package xyz.adjutor.aniki.presentation.view.manga

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.google.android.material.snackbar.Snackbar
import xyz.adjutor.aniki.R
import xyz.adjutor.aniki.presentation.controller.manga.TopMangaController
import xyz.adjutor.aniki.presentation.model.manga.TopManga

//view
class TopMangaPage : Fragment() {

    lateinit var controller: TopMangaController

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        val view = inflater.inflate(R.layout.top_manga_page, container, false)

        controller = TopMangaController()
        controller.onStart(this, view)

        return view

    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        //button to return to the home page
        view.findViewById<Button>(R.id.button_home).setOnClickListener {
            findNavController().navigate(R.id.action_TopMangaPage_to_HomePage)
        }
        view.findViewById<Button>(R.id.button_prev).setOnClickListener {
            controller.onButtonPrevClick()
        }
        view.findViewById<Button>(R.id.button_next).setOnClickListener {
            controller.onButtonNextClick()
        }

        //refresh when swiping down at the top of the page
        val swipeRefresh: SwipeRefreshLayout = view.findViewById(R.id.swiperefresh)
        swipeRefresh.setOnRefreshListener {
            controller.updateList()
            swipeRefresh.isRefreshing = false
        }

    }

    //display the recyclerview
    fun showList(view: View, mangaList: List<TopManga>) {
        val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view)
        recyclerView.setHasFixedSize(true)
        recyclerView.layoutManager = LinearLayoutManager(view.context)
        recyclerView.adapter = TopMangaAdapter(mangaList)
        (recyclerView.adapter as TopMangaAdapter).notifyDataSetChanged()
    }

    fun showError() {
        Snackbar.make(
            requireView(),
            "API ERROR : Verify your internet connection.",
            Snackbar.LENGTH_LONG
        )
            .setAction("Action", null).show()
    }

    fun showText(text: String) {
        Snackbar.make(
            requireView(),
            text,
            Snackbar.LENGTH_SHORT
        )
            .setAction("Action", null).show()
    }

}