blob: 152fe4a68b8d3f0f482f8cf679cbff9f59f0d4c6 (
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
123
124
125
126
127
|
package xyz.adjutor.aniki.topmanga
import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.google.gson.GsonBuilder
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import xyz.adjutor.aniki.R
import xyz.adjutor.aniki.manga.MangaApi
import xyz.adjutor.aniki.manga.RestMangaResponse
class DetailTopMangaActivity : AppCompatActivity() {
var base_url = "https://api.jikan.moe/"
val gson = GsonBuilder()
.setLenient()
.create()
var manga: RestMangaResponse? = null
private val mangaId = "themangaid"
private val mangaTitle = "themangatitle"
private val mangaRank = "themangarank"
private val mangaScore = "themangascore"
private val mangaImageUrl = "themangaimageurl"
private val mangaVolumes = "themangavolumes"
private val mangaStartDate = "themangastartdate"
private val mangaEndDate = "themangaenddate"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detail_top_manga)
val mangaId = intent.getStringExtra(mangaId)
val mangaTitle = intent.getStringExtra(mangaTitle)
val mangaRank = intent.getStringExtra(mangaRank)
val mangaScore = intent.getStringExtra(mangaScore)
val mangaImage = intent.getStringExtra(mangaImageUrl)
val mangaVolumes = intent.getStringExtra(mangaVolumes)
val mangaStartDate = intent.getStringExtra(mangaStartDate)
val mangaEndDate = intent.getStringExtra(mangaEndDate)
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 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)
tvId.text = mangaId
tvTitle.text = mangaTitle
tvRank.text = mangaRank
tvScore.text = mangaScore
Glide
.with(this)
.load(mangaImage)
.apply(RequestOptions().override(400))
.into(ivImage)
tvVolumes.text = mangaVolumes
tvStartDate.text = mangaStartDate
tvEndDate.text = mangaEndDate
makeApiCall(base_url)
}
private fun makeApiCall(BASE_URL: String) {
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
val service = retrofit.create(MangaApi::class.java)
val call = service.getMangaData()
call.enqueue(object : Callback<RestMangaResponse> {
override fun onResponse(call: Call<RestMangaResponse>, response: Response<RestMangaResponse>) {
if(response.isSuccessful && response.body() != null){ //if the code returned is >= 200 and < 300 AND the the body ain't empty
manga = response.body() //getting the RestMangaResponse fields
showDetail(manga!!)
} else {
showError("API ERROR : is not successful")
}
}
override fun onFailure(call: Call<RestMangaResponse>, t: Throwable) {
showError("API ERROR : onFailure")
}
})
}
private fun showDetail(manga: RestMangaResponse) {
//elements from RestMangaResponse
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 = manga.chapters.toString()
tvSynopsis.text = manga.synopsis.toString()
tvBackground.text = manga.background.toString()
}
fun showError(text: String) {
Toast.makeText(this, text, Toast.LENGTH_LONG).show()
}
}
|