diff options
| author | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-03-02 10:46:48 +0100 | 
|---|---|---|
| committer | Clyhtsuriva <aimeric@adjutor.xyz> | 2021-03-02 10:46:48 +0100 | 
| commit | 848c8bf1ba4f0f3ecf2eeae0b9be2d6a664db2b4 (patch) | |
| tree | 7bb4ae9a74d637364a19955bc44bff8811cdbe2e /app/src/main/java/xyz/adjutor/aniki/manga/topmanga | |
| parent | f9f079eea806454d49d6088089511d72e1c28f86 (diff) | |
Creating the APIs and the responses.
Diffstat (limited to 'app/src/main/java/xyz/adjutor/aniki/manga/topmanga')
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/manga/topmanga/DetailTopMangaActivity.kt | 34 | ||||
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaAdapter.kt | 1 | ||||
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaApi.kt | 2 | ||||
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt | 19 | ||||
| -rw-r--r-- | app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaResponse.kt (renamed from app/src/main/java/xyz/adjutor/aniki/manga/topmanga/RestTopMangaResponse.kt) | 6 | 
5 files changed, 32 insertions, 30 deletions
| diff --git a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/DetailTopMangaActivity.kt b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/DetailTopMangaActivity.kt index c7b6317..fc10e89 100644 --- a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/DetailTopMangaActivity.kt +++ b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/DetailTopMangaActivity.kt @@ -18,13 +18,13 @@ 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 +import xyz.adjutor.aniki.manga.MangaResponse  import java.lang.reflect.Type  class DetailTopMangaActivity : AppCompatActivity() {      private var baseUrl = "https://api.jikan.moe/" -    var sharedPreferences: SharedPreferences? = null +    private lateinit var sharedPreferences: SharedPreferences      private val gson = GsonBuilder()          .setLenient()          .create() @@ -95,7 +95,7 @@ class DetailTopMangaActivity : AppCompatActivity() {          tvUrl.text = mangaUrl -        val manga: RestMangaResponse? = getDataFromCache(mangaId.toString()) +        val manga: MangaResponse? = getDataFromCache(mangaId.toString())          if (manga != null) {              showDetail(manga)          } else { @@ -105,13 +105,13 @@ class DetailTopMangaActivity : AppCompatActivity() {      } -    private fun getDataFromCache(mangaId: String): RestMangaResponse? { -        val jsonManga: String? = sharedPreferences?.getString(mangaId, null) +    private fun getDataFromCache(mangaId: String): MangaResponse? { +        val jsonManga: String? = sharedPreferences.getString(mangaId, null)          return if (jsonManga == null) {              null          } else { -            val type: Type = object : TypeToken<RestMangaResponse>() {}.type +            val type: Type = object : TypeToken<MangaResponse>() {}.type              gson.fromJson(jsonManga, type)          }      } @@ -126,14 +126,14 @@ class DetailTopMangaActivity : AppCompatActivity() {          val service = retrofit.create(MangaApi::class.java)          val call = service.getMangaData(mangaId) //based on the id -        call.enqueue(object : Callback<RestMangaResponse> { +        call.enqueue(object : Callback<MangaResponse> {              override fun onResponse( -                call: Call<RestMangaResponse>, -                response: Response<RestMangaResponse> +                call: Call<MangaResponse>, +                response: Response<MangaResponse>              ) {                  if (response.isSuccessful && response.body() != null) { //if the code returned is >= 200 and < 300 AND the the body ain't empty -                    val manga = response.body() //getting the RestMangaResponse fields +                    val manga = response.body() //getting the MangaResponse fields                      saveList(manga)                      showDetail(manga!!) @@ -142,15 +142,15 @@ class DetailTopMangaActivity : AppCompatActivity() {                  }              } -            override fun onFailure(call: Call<RestMangaResponse>, t: Throwable) { +            override fun onFailure(call: Call<MangaResponse>, t: Throwable) {                  showError("API ERROR : onFailure")              }          })      } -    private fun showDetail(manga: RestMangaResponse) { -        //elements from RestMangaResponse +    private 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) @@ -179,12 +179,12 @@ class DetailTopMangaActivity : AppCompatActivity() {          return "Unknown"      } -    fun saveList(manga: RestMangaResponse?) { +    fun saveList(manga: MangaResponse?) {          val jsonString: String = gson.toJson(manga)          sharedPreferences -            ?.edit() -            ?.putString(manga?.mal_id.toString(), jsonString) -            ?.apply() +            .edit() +            .putString(manga?.mal_id.toString(), jsonString) +            .apply()      }  }
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaAdapter.kt b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaAdapter.kt index 626f34e..d0c56f7 100644 --- a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaAdapter.kt +++ b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaAdapter.kt @@ -62,6 +62,7 @@ class TopMangaAdapter(private val mangaList: List<TopManga>) :              val currentMangaEndDate = "themangaenddate"              val currentMangaUrl = "themangaurl" +            //intent is used to pass data to another activity              val intent: Intent =                  Intent(holder.itemView.context, DetailTopMangaActivity::class.java).apply {                      putExtra(currentMangaId, currentManga.mal_id.toString()) diff --git a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaApi.kt b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaApi.kt index 278c3e1..629fe02 100644 --- a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaApi.kt +++ b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaApi.kt @@ -6,6 +6,6 @@ import retrofit2.http.GET  interface TopMangaApi {      @GET("v3/top/manga") -    fun getTopMangaData(): Call<RestTopMangaResponse> +    fun getTopMangaData(): Call<TopMangaResponse>  }
\ No newline at end of file diff --git a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt index ce9b1c6..b35bcdd 100644 --- a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt +++ b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaPage.kt @@ -26,7 +26,7 @@ import java.lang.reflect.Type  class TopMangaPage : Fragment() { -    var sharedPreferences: SharedPreferences? = null +    private lateinit var sharedPreferences: SharedPreferences      val gson: Gson = GsonBuilder()          .setLenient()          .create() @@ -53,7 +53,7 @@ class TopMangaPage : Fragment() {      private fun getDataFromCache(): List<TopManga>? {          //the value of the mangaList json, if nothing is found, return null -        val jsonManga: String? = sharedPreferences?.getString("jsonMangaList", null) +        val jsonManga: String? = sharedPreferences.getString("jsonMangaList", null)          //if it's null, well, return null          return if (jsonManga == null) { @@ -92,6 +92,7 @@ class TopMangaPage : Fragment() {          recyclerView.setHasFixedSize(true)          recyclerView.layoutManager = LinearLayoutManager(view.context)          recyclerView.adapter = TopMangaAdapter(mangaList) +        (recyclerView.adapter as TopMangaAdapter).notifyDataSetChanged()      }      private fun makeApiCall(view: View, BASE_URL: String) { @@ -104,10 +105,10 @@ class TopMangaPage : Fragment() {          val service = retrofit.create(TopMangaApi::class.java)          val call = service.getTopMangaData() -        call.enqueue(object : Callback<RestTopMangaResponse> { +        call.enqueue(object : Callback<TopMangaResponse> {              override fun onResponse( -                call: Call<RestTopMangaResponse>, -                response: Response<RestTopMangaResponse> +                call: Call<TopMangaResponse>, +                response: Response<TopMangaResponse>              ) {                  if (response.isSuccessful && response.body() != null) { //if the code returned is >= 200 and < 300 AND the the body ain't empty @@ -124,7 +125,7 @@ class TopMangaPage : Fragment() {                  }              } -            override fun onFailure(call: Call<RestTopMangaResponse>, t: Throwable) { +            override fun onFailure(call: Call<TopMangaResponse>, t: Throwable) {                  showError()              } @@ -135,9 +136,9 @@ class TopMangaPage : Fragment() {          val jsonString: String = gson.toJson(mangaList)          sharedPreferences -            ?.edit() -            ?.putString("jsonMangaList", jsonString) -            ?.apply() +            .edit() +            .putString("jsonMangaList", jsonString) +            .apply()      }      private fun showError() { diff --git a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/RestTopMangaResponse.kt b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaResponse.kt index 87c5cfb..8577050 100644 --- a/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/RestTopMangaResponse.kt +++ b/app/src/main/java/xyz/adjutor/aniki/manga/topmanga/TopMangaResponse.kt @@ -2,12 +2,12 @@ package xyz.adjutor.aniki.manga.topmanga  import com.google.gson.annotations.SerializedName -class RestTopMangaResponse { +class TopMangaResponse {      @SerializedName("top") -    var top: List<TopManga>? = null +    private lateinit var top: List<TopManga>      fun getResults(): List<TopManga> { -        return top!! +        return top      }  }
\ No newline at end of file | 
