aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/xyz/adjutor/aniki/presentation/view/anime/DetailTopAnimeActivity.kt
blob: b8cf505c3c03cabc9fadd005f209e454531112b7 (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
package xyz.adjutor.aniki.presentation.view.anime

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.anime.DetailTopAnimeController
import xyz.adjutor.aniki.presentation.model.anime.AnimeResponse

class DetailTopAnimeActivity : AppCompatActivity() {

    lateinit var controller: DetailTopAnimeController

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

        controller = DetailTopAnimeController()

        val intentAnimeId = "theanimeid"
        val intentAnimeTitle = "theanimetitle"
        val intentAnimeRank = "theanimerank"
        val intentAnimeScore = "theanimescore"
        val intentAnimeImageUrl = "theanimeimageurl"

        val intentAnimeEpisodes = "theanimeepisodes"
        val intentAnimeStartDate = "theanimestartdate"
        val intentAnimeEndDate = "theanimeenddate"
        val intentAnimeUrl = "theanimeurl"

        val animeId = intent.getStringExtra(intentAnimeId)
        val animeTitle = intent.getStringExtra(intentAnimeTitle)
        val animeRank = intent.getStringExtra(intentAnimeRank)
        val animeScore = intent.getStringExtra(intentAnimeScore)
        val animeImageUrl = intent.getStringExtra(intentAnimeImageUrl)

        val animeEpisodes = intent.getStringExtra(intentAnimeEpisodes)
        val animeStartDate = intent.getStringExtra(intentAnimeStartDate)
        val animeEndDate = intent.getStringExtra(intentAnimeEndDate)
        val animeUrl = intent.getStringExtra(intentAnimeUrl)

        val tvId: TextView = findViewById(R.id.tv_detail_id)
        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 tvEpisodes: TextView = findViewById(R.id.tv_episodes)
        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)

        tvId.text = animeId
        tvTitle.text = animeTitle
        tvRank.text = animeRank
        tvScore.text = animeScore
        Glide
            .with(this)
            .load(animeImageUrl)
            .apply(RequestOptions().override(400))
            .into(ivImage)

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

        tvStartDate.text = animeStartDate

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

        tvUrl.text = animeUrl

        controller.onStart(this, animeId.toString())

    }

    fun showDetail(anime: AnimeResponse) {
        //elements from AnimeResponse
        val tvSynopsis: TextView = findViewById(R.id.tv_synopsis)

        tvSynopsis.text = anime.synopsis.toString()

    }

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

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

}