aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/xyz/adjutor/aniki/presentation/view/manga/DetailTopMangaActivity.kt
blob: 74f75958e12fea0b255b29bf0ba2e6c249b2a50a (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package xyz.adjutor.aniki.presentation.view.manga

import android.os.Bundle
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import xyz.adjutor.aniki.R
import xyz.adjutor.aniki.presentation.controller.manga.DetailTopMangaController
import xyz.adjutor.aniki.presentation.model.manga.MangaResponse

class DetailTopMangaActivity : AppCompatActivity() {

    lateinit var controller: DetailTopMangaController

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detail_top_manga)

        controller = DetailTopMangaController()
        controller.onStart(this)

        //used in the list
        val intentMangaTitle = "themangatitle"
        val intentMangaRank = "themangarank"
        val intentMangaScore = "themangascore"
        val intentMangaImageUrl = "themangaimageurl"

        //only used for the detail
        val intentMangaId = "themangaid"
        val intentMangaVolumes = "themangavolumes"
        val intentMangaStartDate = "themangastartdate"
        val intentMangaEndDate = "themangaenddate"
        val intentMangaUrl = "themangaurl"

        val mangaTitle = intent.getStringExtra(intentMangaTitle)
        val mangaRank = intent.getStringExtra(intentMangaRank)
        val mangaScore = intent.getStringExtra(intentMangaScore)
        val mangaImageUrl = intent.getStringExtra(intentMangaImageUrl)

        val mangaId = intent.getStringExtra(intentMangaId)
        val mangaVolumes = intent.getStringExtra(intentMangaVolumes)
        val mangaStartDate = intent.getStringExtra(intentMangaStartDate)
        val mangaEndDate = intent.getStringExtra(intentMangaEndDate)
        val mangaUrl = intent.getStringExtra(intentMangaUrl)

        val tvTitle: TextView = findViewById(R.id.tv_detail_title)
        val tvRank: TextView = findViewById(R.id.tv_detail_rank)
        val tvScore: TextView = findViewById(R.id.tv_detail_score)
        val ivImage: ImageView = findViewById(R.id.iv_detail_image)

        val tvId: TextView = findViewById(R.id.tv_detail_id)
        val tvVolumes: TextView = findViewById(R.id.tv_volumes)
        val tvStartDate: TextView = findViewById(R.id.tv_start_date)
        val tvEndDate: TextView = findViewById(R.id.tv_end_date)
        val tvUrl: TextView = findViewById(R.id.tv_url)

        tvTitle.text = mangaTitle
        tvRank.text = mangaRank
        tvScore.text = mangaScore
        Glide
            .with(this)
            .load(mangaImageUrl)
            .apply(RequestOptions().override(400))
            .into(ivImage)

        tvId.text = mangaId

        //using null as a string because it has been converted to a string before
        tvVolumes.text = if (mangaVolumes != "null") {
            mangaVolumes
        } else {
            fieldIsNull()
        }

        tvStartDate.text = mangaStartDate

        tvEndDate.text = if (mangaEndDate != "null") {
            mangaEndDate
        } else {
            fieldIsNull()
        }

        tvUrl.text = mangaUrl

        controller.launch(mangaId.toString())

    }

    fun showDetail(manga: MangaResponse) {
        //elements from MangaResponse
        val tvChapters: TextView = findViewById(R.id.tv_chapters)
        val tvSynopsis: TextView = findViewById(R.id.tv_synopsis)
        val tvBackground: TextView = findViewById(R.id.tv_background)

        tvChapters.text = if (manga.chapters != null) {
            manga.chapters.toString()
        } else {
            fieldIsNull()
        }

        tvSynopsis.text = manga.synopsis.toString()

        tvBackground.text = if (manga.background != null) {
            manga.background.toString()
        } else {
            fieldIsNull()
        }

    }

    fun showError(text: String) {
        Toast.makeText(this, text, Toast.LENGTH_LONG).show()
    }

    private fun fieldIsNull(): String {
        return "Unknown"
    }

}