From f4d8a9c6fa8f805a9dedb626ef343aa37943c079 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Thu, 18 Feb 2021 19:42:15 +0100 Subject: Implementing API calls for the top mangas. Test and Debug with snackbar : ok Adding internet access. Removing useless News class. --- .../main/java/xyz/adjutor/aniki/TopMangaPage.kt | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt') diff --git a/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt b/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt index ac585c7..9496053 100644 --- a/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt +++ b/app/src/main/java/xyz/adjutor/aniki/TopMangaPage.kt @@ -9,6 +9,13 @@ import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.google.android.material.snackbar.Snackbar +import com.google.gson.GsonBuilder +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory class TopMangaPage : Fragment() { @@ -22,6 +29,10 @@ class TopMangaPage : Fragment() { // Retrieves data from mangasource val mangaList = MangaSource(view.context).getMangaList() + + makeApiCall(base_url) + + val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view) recyclerView.setHasFixedSize(true) recyclerView.layoutManager = LinearLayoutManager(view.context) @@ -37,4 +48,44 @@ class TopMangaPage : Fragment() { } } + + fun makeApiCall(BASE_URL: String) { + val gson = GsonBuilder() + .setLenient() + .create() + val retrofit = Retrofit.Builder() + .baseUrl(BASE_URL) + .addConverterFactory(GsonConverterFactory.create(gson)) + .build() + val service = retrofit.create(TopMangaApi::class.java) + val call = service.getTopMangaData() + call.enqueue(object : Callback { + override fun onResponse(call: Call, response: Response) { + if(response.isSuccessful && response.body() != null){ + val topMangaResponse = response.body() + Snackbar.make(requireView(), "HA? YOU THOUGHT IT WAS AN ERROR !? BUT IT WAS I, API !", Snackbar.LENGTH_LONG) + .setAction("Action", null).show() + } else { + showError() + } + } + + override fun onFailure(call: Call, t: Throwable) { + showError() + } + + + } + ) + } + + private fun showError() { + Snackbar.make(requireView(), "HA? YOU THOUGHT IT WAS AN API !? BUT IT WAS I, ERROR !", Snackbar.LENGTH_LONG) + .setAction("Action", null).show() + } + + companion object { + var base_url = "https://api.jikan.moe/" + } + } \ No newline at end of file -- cgit v1.2.3